TODAY Facebook Instant Game
Finally released my latest Facebook Instant Games offering to IG and Google Play.
What is TODAY? Have you heard of Nametests or OMG? Well its an app very similar to those with the exception that it does actually contain game elements. It was developed not in HTML / CSS but as an actual game. Why when surely HTML5 / CSS would have been much easier? Well a) I don’t like too easy and b) When you play TODAY you will discover that is very different to the likes of Nametests and OMG. Everything animates, questions open up in a dialog instead of shunting you back to the top of the page and shuffling up all the questions (that I hate, it confuses the hell out of me). But best of all it has actual games, games that encourage user interaction on their Facebook timelines as well as arcade mini-games.
How is it performing on Facebook Instant Games? Well, its tanked like every other game that isn’t being pushed by something. The likes of Nametests and OMG have upwards of 150 million monthly active users (MAU), why not TODAY? My theory is that apps like OMG need to be pushed by something, maybe a well known web site or Facebook page or some other social mechanism. Its easy to spot with Nametests because its been around for a long time, has millions of Facebook followers and a well established click bait web site. However OMG user acquisition is still a mystery to me. If anyone finds out how they are doing it then please let me know .
Anyway, I had a Google Play version up and running immediately thanks to the IGX SDK which takes my game from Facebook Instant Games and gets it running on web and mobile. An absolute god send, because deploying to mobile these days just isn’t really worth the effort of filling in the app store listing . Seriously that is how bad it now is if you don’t have any marketing spend. Don’t believe me? Deploy an app to Google Play or the Apple AppStore and listen to the crickets .
You can play the games here:
TODAY on Facebook Instant Games
TODAY on Google Play
I may release an iOS version, who knows.
Funny story actually about the Google Play version and their review team. The app was suspended almost immediately after I published it because it has a picture of two bodybuilding twin guys with their shirts off. Google Play stated that it was pornographic . I literally fell off my seat with laughter. Luckily I managed to get it re-instated. This is not my first run in with the Google Play review team and probably won’t be my last.
TODAY like all of my Facebook Instant Games was developed using the Booty5 game engine and editor. I really need to change the name of Booty5 to something a bit better.
It has been a long while since I released an update of Booty5, but at last it is here. A good fellow over at Droidscript got in touch to let me know that they had added a plugin for their awesome app (check it out to see what I mean by awesome) which enables developers to develop games using the Booty5 API directly on an Android device and / or via a desktop browser, which to me is coolness of a higher degree. I had planned a release of Booty5 to push out the latest changes to the engine as well as support for texture packer trimmed bitmaps amongst other things so I went ahead and interfaced the Booty5 editor directly with the Droidscript app allowing games to be sent directly to Droidscript and played on the device. This provides a very rapid development environment directly on device.
The changes for this release include:
- By setting the host in project settings to the wifi address supplied to you by the Droidscript app and checking the Droidscript checkbox, you can run your projects directly on a connected Android device
- Updated to the very latest Booty5 engine which includes support for features like tasks, events and smaller exported scene data
- Open in IDE no longer opens in WebStorm by default, instead Visual Studio Code is used
- Projects no longer deploy separate source files, instead booty5_debug.js or booty5_min.js are deployed
- Socket.io can now be exported with projects
- New export location added to project properties that allows you to specify where deployed files will go when running / testing
- Host project property added which allows deployed projects to launch a specific host url when running / testing
- Added two new canvas fit modes, Fit Greatest / Fit Smallest
- Added Body and Head properties to project properties, additional html can be added here to be exported in the body and head sections of the html file
- Added nodejs command prompt button
- Fixed crash bug when creating a label with no font
- Added animation sets to brushes
- Removed animation frames, start frame and playback speed from actors, you now specify the animation name to play as default
- Get actor size will now get brush size if no geometry attached
Note that the Booty5 plugin for Droidscript is currently in beta (see the beta group for more details.)
The manual and API documentation have also been updated so please don’t forget to view / grab them.
The changes to the Booty5 engine v1.5.2 include:
- Added support for events and event notification (see b5.EventsManager)
- Added support for tasks (see b5.TasksManager)
- Added support to brushes for animation sets
- Added support to actors for working with brush animation sets (see b5.Actor.playAnim)
- Bitmap based actors now support trimmed atlas images
- Image based actors that use an atlas will use the size of the atlas frame, can be overridden by setting ignore_atlas_size to true
- Removed support for web Marmalade
- All booty5 scene data is now loaded into the b5.data space instead of window
- Xoml data property names have been minified to greatly cut down Xoml datas format storage size
- Added polyfill for RequestAnimationFrame to support older browsers
- Some examples have been updated to fix various issues
Happy coding, don’t forget to leave feedback and report issues on Facebook / Google+ etc…
Support for the Web Audio API has been added offering better control over audio playback. Using it is s simple case of ticking support for it in the projects properties (on by default).
Full list of changes include:
Game Editor v1.9.2b:
- Added new use web audio export option to project settings
- Added new auto play property to sounds which cause sound to automatically start playing once loaded
- Added new export option force_round which will force all exported actors to use pixel rounding
- Fix: Project property smoothing is now applied in exported code
- Fix: Canvas centering on some mobile devices
Game Engine v1.4.8 and 1.4.9:
- b5.Xoml.loadJSON now accepts 4th parameter which can be used to stipulate loaded data should be returned as binary buffer
- b5.App.use_web_audio property added which can be used to switch on support for Web Audio if it is supported
- b5.Xoml.loadJSON moved to b5.Utils.loadJSON
- b5.Xoml.loadJS moved to b5.Utils.loadJS
- Added support for web audio API to sound (default is enabled). To disable Web Audio set b5.App.use_web_audio to false. If web audio is not supported then it will fallback to HTML5 Audio
- b5.App constructor now accepts a second parameter which enables / disables web audio support
- Added b5.Sound.auto_play property to enable auto playback of sounds after they are loaded
- JSDoc documentation added
- b5.App.canvas_fill_window removed
- Modified how the render scaling and canvas resizing works to make it easier to use.
Download the latest version of Booty5 HTML5 Gama Maker.
Booty5 the HTML5 Game Maker v1.9.1b is now available for free download.
- Scale and angle are now affected in multiple actor selections
- Editor export properties now supports smoothing property that will enable / disable anti-aliasing during rendering
- Added support for rounding pixels to actors, if disabled then pixel coordinates will be rounded to integer values, can improve performance but at a cost of lower precision rendering
- Removed some currently unused options from sprite and label
- Font size and face separated in labels
- Font weight added to label
- Editor now shows text preview
- Exported collision flags are now used by engine
- Added vertices snap to shape editor
- Added new Collision Flags example
- Fix: Convex shapes were not exporting correctly
- Fix: Some properties such as actor scale were not exporting correctly with an export precision of 0
- Added new property to Actor called round_pixels, when set to true vertices will be rounded to integer which can speed up rendering significantly
- Added support for collision flags to physics fixtures (category, mask and group index)
The Booty5 HTML5 game manual ebook has also been updated.
Booty5 the HTML5 Game Maker v1.9.0b is now available for free download. Support for tile map rendering has been added to the engine, whilst support for tile map editing has been added to the game maker. A quick screen shot of the new tile map editor is shown below:
Booty5 HTML5 tile map editor
Full list of changes include:
Game Engine v1.4.6:
- Added new actor type called MapActor which can render tiled maps
- Support added to Xoml for loading Booty5 game editor exported tile maps
- Fix: Actor.vr wasn’t updating transform
Game Editor v1.9.0b:
- Added support for tile maps (any sprite actor can now be changed to a tile map by changing RenderAs type to Tile Map)
- Added pretty print export options that will export JSON in a tidy readable format
The Booty5 HTML5 game manual ebook has also been updated.
You will also need to replace all examples which can be downloaded from Github.
The first version of the Booty5 HTML5 Game Maker Manual e-book is now available for free download. Find out more on the Booty5 free e-book page.
The latest version of Booty5 the free HTML5 game maker now has support for creating Flash like animations, enabling web developers to create Flash like games across mobile and desktop browsers using an easy to use WYSIWYG game editor. A screen shot of the editor in actions is shown below:
Booty5, the HTML5 Flash Like Game Maker
View a demo that was creating in less than 30 minutes here.
More details about this release of Booty5 and to download go here.
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
Booty5 is a free HTML5 game maker, for more information visit the Booty web site
Been very busy since the last update extending the features of Booty5 to bring more HTML5 specific features into the editor. The editor changes for this release include:
- Added mouse wheel joint type to list of joint types
- Added new property called ExportName to Scene, this changes the name of the scene, but not its exported file name
- Added support for corner radius to rects enabling rounded rects
- Added support for none filled polygons, arcs, rects and labels
- Added support for stroke colour and thickness
- Layers are now exported and used by engine
- Added support for shadows to all actor types
- Added support for composite operations
- Added support for Scene OnKeyPress, OnKeyDown and OnKeyUp events
- Added new gradient brush type and gradient editor
- Actors can now render gradient brushes at any angle
- Added support for wheel joint
- Added panning property to Scene to determine when the scene is being touch panned
- Box2D begin and end contact callbacks now call both objects that were affected
- Added corner_radius property to rectActor to render rounded rects
- Added support for stroke colour and thickness to rect, arc, polygon and label actors
- Added support for scene and actor layer ordering. Set layer via _layer property and not layer variable to ensure that re-sorting takes place
- Added new shadow properties all actor types (shadow, shadow_x, shadow_y, shadow_colour, shadow_blur)
- Added support for composite operations to actors
- Added support for Scene onKeyPress, onKeyDown and onKeyUp events
- Added new Gradient class that handles gradient brushes
- Rect, Arc and Polygon actors can now render gradient brushes at any angle, angle is specified by new grad_rotation property
- Added new demos keys, mouse joint, bitmap animation, shapes and gradients
The idea is with this last crop of changes is to bring in more HTML5 and SVG style specific features such as support for keys, gradient brushes, rounded rects, shadows amd so on. Here are a couple of screen shots showing some of the new features:
Booty5 HTML5 gradient editor
Booty5 HTML5 shapes example
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!
- 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.