Booty5 v1.8.5b out now – Cached rendering and Marmalade SDK Audio Support

Well the proof is in the eating and not the making. I’ve spent some time putting together a small game using Booty5 called Leapo that I will eventually distribute as an example of how to use Booty5. Whilst developing this game I have come across various issues or missing features, hence this update.

Booty5 game engine changes:

  • Added new Actor setPositionPhysics() and setRotationPhysics() to set associated physics body position and rotation directly
  • Added new utils class that contains utility functions
  • Fixed actor and scene sorting using new sorting method in Utils called sortLayers()
  • Added new property to TheApp called use_marm which should be set to true if deploying to mobile using the Marmalade SDK
  • Added new property to Sound constructor called reuse which can be used to force the sound effect to be reused (only useful for short sound effects at may not play if one is already playing)
  • Added new stop / pause methods to Sound class, only usable with reusable sounds
  • Sound class will now use the powerful Marmalade audio system instead of standard, if its available
  • Added new method TheApp.parseAndSetFocus(scene_name) which parses xoml JSON and sets the named scene as the current scene
  • TimelineManager.add() now returns the timeline that was added
  • Scene.addActor() now returns the added actor
  • Actor.addActor() now returns the added actor
  • TheApp.addScene() now returns the added scene
  • ParticleActor.addParticle() now returns the added particle
  • Main loop timer replaced with requestAnimationFrame for smoother rendering
  • TheApp now measures average frame rate via avg_fps property
  • TheApp has new property called adaptive_physics which will run physics update multiple times within a single frame if frame rate falls considerably outside target frame rate
  • Actors can now all be cached by setting cache property to true. When cached the actor will be rendered only once to an off screen canvas, subsequent rendering will be of the cached version. note that the Size of the actor as specified by its properties will determine the size of the cached canvas area. In the case of unfilled actors, the allocated size will be slightly larger to allow for stroke thickness. Note that shadows and composite operations are not cached

Booty5 game editor changes:

  • ExportName Scene property is now saved and restored correctly
  • Load scene property now cloned correctly
  • Target frame rate now exported
  • Fixed main.js for Marmalade SDK export, also now copy wb.js over from SDK into build folder
  • Marmalade native audio will be used in place of standard audio if available
  • Added new property to Sound resource called reuse
  • Added new project property called Adaptive Physics which can be used to run physics multiple times per game update
  • Unfilled rounded rects with corner radius now render properly
  • Actors can now be marked as cached which causes them to be rendered once to an off screen canvas
  • Added new measure button next to size property in properties panel, this will set the actors size to the extents of any attached geometry
  • Exported main.js will now wait until resources are loaded before starting TheApp

Whilst all of the above changes are a positive, one of the more important changes includes caching of actors for rendering. HTML5 is not particularly fast (especially on mobile) at rendering things like gradients and shapes. Actors can now be marked as cached which will force them to be rendered once to an off-screen surface, subsequent renders will render the cached version. When deployed via Marmalade Web I am seeing a good 30-60 fps frame rate for Leapo on an iPhone 5C.

You can download Booty5 HTML5 game maker for free from here

Goji Editor v1.8.4b out now

The Goji editor has had a new update today, mainly to bring the features more in line with Booty5. Changes include:

  • Added Support for ALT Tab to switch between previous / last resource
  • Added image preview to Icon background property
  • You can now select most resources directly in the object properties panel
  • Added shape editor
  • Added shape shape bitmap tracer and mesh optimiser
  • Concave fixtures are now exported as multiple convex fixtures
  • Changed code editor font to fixed size
  • Fixed actor insert crash bug
  • Fixed script / image auto reload
  • Fixed main canvas scaling
  • Fixed various export options
  • Fixed geometry not updating correctly bug
  • Fixed auto shut down of editor when clicking close button on are you sure dialog
  • Fixed deployment with Marmalade free license
  • Main changes relate to usability / productivity, just making things a little easier to use. Also the addition of the shape editor makes it possible to create physics shapes and geometries within Goji, avoiding the need for an additional shape editor.

    You can download a free copy of the Goj Game Editor here

    Booty5 v1.3 the free open source HTML5 game engine now available

    More happy coding evenings and weekends for me means more juicy features for you. Well, that’s a bit of a fib, the latest version 1.3 is more of a tidy up and documentation phase. I’ve spent a few hours each evening this week putting together the Booty5 introduction and the Booty5 API reference and along the way I ended up tidying up the source code. By the way, did I mention that the minified version of Booty5 without Box2D functionality is only 50k!

    v1.3 changes:

    • Added more comments
    • Actor setters now only dirty transform if a change is made
    • Actor.findActorDeep() removed
    • Actor.findActor() has additional parameter that allows recursive searching
    • Actor.sendToBack() added
    • Actor.addFixture() now returns the created fixture
    • Actor.addJoint() now returns the created joint
    • Scenes now active property which can be used to pause processing
    • Scenes will now still be processed when not visible
    • Scene.findActorDeep() removed
    • Scene.findActor() has additional parameter that allows recursive searching
    • Scene.sendToBack() added

    I’m hoping to have full support for Booty5 in the up and coming next beta release of the Goji Editor, so watch this space.

    Booty5 the free open source HTML5 game engine has big update

    That’s right, I’ve been busy coding away like a mad man to bring you a huge update to Booty5 the free open source HTML5 game engine which is available for download on Github.

    Changes include:

    v1.2 Changes:
    * GSAP dependency removed
    * JQuery dependency removed
    * Support for actor hierarchies added
    * Support for physics joints added to actors
    * Opacity for actors and scenes added
    * Actors now support 3D depth property
    * Actors now have support for onCreate and onDestroy event handlers
    * Actors now support box, circle and polygon shaped fixtures
    * Fixtures can now be marked as sensors
    * Actors and Scenes can now clip their children against box, circle and polygon clipping shapes
    * Actors and Scenes now have separate active and visible states
    * Actors now have a simple physics system that is used on Actors that are not under control of Box2D
    * Actors can be docked to the edged of the display as well as to the edges of canvas actors
    * Actors can now ignore scene camera movement
    * Actors now support onCollisionStart and onCollisionEnd events
    * Child actors can now bubble events up to parents
    * Scene camera can track actors
    * Scenes now support touch panning
    * New actor types added:
    * ArcActor – Displays arcs / circles
    * CanvasActor – A UI actor that can arrange, scroll around and dock its content
    * ParticleActor – An actor that is a particle system
    * Polygon Actor – An actor that displays polygon shapes
    * RedctActor – An actor that displays rectangle shapes
    * Support for timeline key frame based tween animations added
    * Support for various types of resources added on a global or scene local level, including:
    * Shapes – Used by clipping and physics systems
    * Geometries – Used by rendering system to render geometries
    * Brushes – Used to create sprite atlases / bitmap animation
    * Sounds – used to play back audio
    * Materials – Used to define physics materials
    * Full support for the Goji Editor added, including XOML loader

    I’ve also started documenting the engine and API at

    Goji game editor for Marmalade 1.7.2b now available

    Latest version of the free Marmalade compatible game IDE the Goji Editor is now available for free download

    Changes include:

    • Added New Project dialog with support for creating wireframe projects
    • Update to AppEasy Core to work with Marmalade SDK v7.4
    • Fixed export of extra app.icf settings
    • Fixed missing app_id for Facebook extension when deploying device builds

    Goji Editor the game IDE update

    Just a quick heads up on the direction of the Goji Editor. With the news of a free Marmalade SDK license becoming available, I am going to rework Goji to integrate much more tightly with the Marmalade SDK. This will include features such as:

    • Integration into the Marmalade build and deployment system, enabling deployment to all Marmalade supported platforms
    • Test / debug using the more capable Marmalade simulator
    • Development using C++ as well as Lua and XOML
    • Deployment to device from the editor
    • In depth publishing options which enable you to set up all of the different Marmalade deployment options more easily
    • Marmalade code snippets / help / tutorials to aid development
    • Code samples / tutorials section
    • EDK builder to assist in the creation of Marmalade extensions

    Other game development systems such as Corona and Gideros will still be supported for now. If you strongly want to keep support for Corona / Gideros then let me know

    ShinAnimals the Android, iPhone, iPad and iPod game lives!

    And my latest creation is now live, ShinAnimals a fun Yorkshire themed arcade puzzle game made using AppEasy> (Powered under the hood by the Marmalade SDK) and the Goji Editor. You can download from Google Play at:

    Word of warning, this game is highly addictive and will put you on the edge of your seat!

    Animals ShinAnimals, no longer content with grazing and lounging around all day the animals at the Yorkshire farm are bored to tears and have demanded that the farmer provide them some fun. The farmer has decided to arrange some mild entertainment by constructing 40 puzzles for the animals to crack. Can you help the animals crack all 40 puzzles?

    The aim of the game is to crack each puzzle by stacking piles of animals ever higher, the higher the stack the more points the animals score. To beat a puzzle the farm animals must beat the target score set by the farmer. Puzzles start out simple, but soon become difficult including swinging crates, springy bridges, unstable constructions, traps, footballs and more.

    Features include:

    • Normal and hard (Yorkshire) game modes
    • 40 unique levels
    • Hi-score tables
    • Pickups, traps and other dangers
    • Cheat system to help pass difficult levels
    • FREE to play
    • Can be enjoyed by kids and adults alike
    • Yorkshire sound effects!

    Made in Yorkshire by Yorkshire people, absolutely no Yorkshire animals were harmed during its making.

    Made with Goji Editor games Shuffle Match and Shuffle Match for Kids now on iPhone, iPad and BlackBerry

    Pocketeers has announced the release of two of its new memory game titles aimed at adults and children, Shuffle Match and Shuffle Match for Kids. Both titles were created using the Goji Editor game IDE and the AppEasy cross platform game engine.

    Shuffle Match is a fun endless challenge memory game that starts out with an easy two grid and progresses up to a ten grid over time, ramping up the difficulty the longer you play, guaranteeing a great memory workout. Features include:

    * Endless challenge, go as far as your memory will take you
    * Easy and hard play modes
    * Track your progress
    * Play up to 10 x 10 memory grid in hard mode
    * Very colourful graphics
    * Great sound track
    * NO IAP so no chance of kids running up huge bills

    Shuffle Match for Kids is a version of Shuffle match that is optimised for children and has been tested on children of different age groups to optimise grid sizes and round times to ensure that the game does not become too difficult too quickly. 3 game modes are available based on age range, including younger than 6, 7 to 10 year old’s and 11+. Features include:

    * Designed for 3 age ranges (6 and younger, 7 to 10 year old’s and 11 and over)
    * Very colourful graphics
    * Perky sound track
    * Your child can track their progress to see how they improve
    * NO IAP so no chance of children running up huge bills

    Both titles are also available on Android, Blackberry PlayBook and BlackBerry 10 phones and tablets.

    Shuffle Match and Shuffle Match for Kids were created using the Goji Editor which is a powerful game and app creation IDE that is compatible with AppEasy, Marmalade Quick, Corona and Gideros engines.

    Shuffle Match – Made with the Goji Editor

    I’ve just released a new game for Android called Shuffle Match that is entirely created with the Goji game editor exported to AppEasy. Its currently available on Google Play and will be available on other stores sooonish, including Apple. I will be releasing the entire project for this game in the near future, so that others can learn from it.

    The game was inspired by my youngest daughter, who likes to play matching games.

    Heres a few details about the game:

    Put your memory through a fun workout that starts with an easy warm up and progresses to a gruelling challenge worthy of any memory master.

    • Endless challenge, go as far as your memory will take you
    • Easy and hard play modes
    • Track your progress
    • Play up to 10 x 10 memory grid in hard mode
    • Very colourful graphics
    • Great sound track
    • NO IAP so no chance of kids running up huge bills
    • Compatible with phone and tablet

    Game play is simple and casual, remember the numbers on the left board then shuffle the board and find them on the right board. Earn big bonuses by chaining guesses together. Track your stats from game to game to see how you improve.

    Goji Editor 1.4 is now available – Corona support added

    The newest shiny version of Goji Editor the game IDE is now available for download, now with support for Corona, Gideros, Marmalade Quick and AppEasy.

    Changes include:

    • Export and test support for Corona added
    • New property added called Object that enables you to specify the tag or object type that is exported for Gideros and AppEasy
    • Gideros and Quick now export shapes and geometries as tables
    • Named joints are now exported if a name is specified
    • Added collision events to Gideros export
    • Fixed Gideros “Show” action
    • Fixed SVG import crash
    • Fixed docking issue
    • AppEasy circle shape radius was double what it should have been
    • XOML files with XML extension are now recognised as XOML files when imported
    • Fixed various issues with goji lua engine

    More info and tutorials etc can be found at