Facebook Instant Game Tutorials Live

Spent some spare time over the last few weeks noting down information that I do not want to forget regarding Facebook Instant Games development. I’ve been away from it for a bit and plan to spend more time away from it so want a nice easy reference for when I return.

I decided to turn my notes into a bunch of Facebook Instant Game tutorials to help other budding game developers out there.

You can read the tutorials here.

The individual links to each are:

I will cover more topics when I return.

Facebook Instant Games gets its first hard core porn app!

Its well known in the Facebook Instant Game developer community that Facebook Instant Games is a bit of a wild west. In the beginning god created…, just kidding :D . In the beginning some developers were taking well known web games and just dumping them onto IG to earn a quick buck, eventually the copyright holders arrived to the platform and got many of them taken down.

After this phase of stupidity, along came blatant ripping off of well known IP such as Pokemon, Mario, PUBG, Minecraft etc.., this is still prevalent today. You would think this would be limited to just small developers that don’t have much to lose if sued, but unfortunately it is not. The top app on Facebook Instant Games is called OMG, with around 130 million users and it uses well known questionable imagery from many movies, stars and musicians. Facebook however adopt the position that it is ok to use copyrighted materials and will not remove games and apps that use them unless the copyright holders complain.

Today Facebook Instant Games took a new turn with the arrival of Huber, which is basically a hard core porn version of OMG. I’m not against porn, but I am against it ending up in the hands of young kids. The app should really be restricted to 18+ but a fellow developer confirmed that it is searchable from their child’s phone.

The big question is, how did a hard core porn app make it through the Facebook Instant Games review process without an 18 restriction slapped on it? Well, very little is known about the review process, we have no idea if the process is done by AI or humans so who knows. The issue with the Facebook Instant Games review process is you submit an app or game with relatively harmless material but can change the material after the review process. Many of these OMG style apps host the visual content on their server with the Facebook or Messenger app basically acting as a web browser. This enables the developer to change the content on their server at any point in time with no review process. So basically its very easy to circumvent the review process.

Hopefully Facebook pull up their socks and slap an 18+ on this app and any others like it so kiddies can’t get a hold of it.

How can this issue be resolved? It can be resolved very easily by blocking access to external imagery so that all imagery has to be included with the zip file when the app is submitted to Facebook Instant Games. In addition, app updates will likely have to be reviewed for new developers. Existing developers that have developed a level of trust should be able to bypass the update review process.

TODAY lands on Facebook Instant Games and Google Play

TODAY Facebook Instant Game

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 :D . 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 :D .

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 :D :D :D :D . 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.

Streaming League of Legends on Twitch.tv and Twitch extensions

Twitch.tv Logo

Twitch.tv Logo

Recently two family members have started streaming their gaming on Twitch.tv. They currently stream a game I love to play but am terrible at so prefer to watch :D . That game is League of Legends (I’m a lowly silver player, these guys are Diamond level players). if you like to watch gaming streams you should check them out, they’re pretty entertaining pair.

DDarkBlu on Twitch.tv (Support main)
Hastams on Twitch.tv (AD carry main)

I hang around in the streams and chat from time to time.

Anyway the point of this blog is to mention that it got me interested in streaming and streamers. I have discovered that Twitch.tv have an extensions API. I’m currently analysing the APi to find ways in which I can integrate it into the IGX SDK. This will enable developers to deploy their Facebook Instant Games straight to Twitch with little to no modification. Twitch.tv enables monetisation of your extensions via a currency called bits which seems interesting, so plenty of scope for earning money fellow developers.

The IGX SDK is a wrapper for the Facebook Instant Games SDK that enables you the developer to deploy your games and apps to web (mobile and Twitch.tv support coming soon) with little to no code changes, helping you maximise visibility and monetisation.

MEME arrives on Facebook Instant Games platform

So I got bored with writing games for Facebook Instant Games for a bit and decided to jump on the entertainment app (NO THEY ARE NOT GAMES :D ) train that seems to be doing well on Facebook Instant Games right now. I wrote a MEME generator / creator that lets users create their own MEME’s and share them to their timelines. The user can generate around 900 different MEME’s with over 500 different backgrounds. They can customise the text, text size, colour and even sign them. I don’t hold much hope out for it doing well, but its just something that I really wanted to create and really just a stepping stone to much larger more involved entertainment apps.

Coming to web and native mobile using the IGX SDK very soon.

Hello Instant Games X (IGX) SDK

Welcome to the web wrapper to wrap them all!



Hey fellow game developers. I’ve spent the best part of this last year researching, analysing and developing games for the Facebook Instant Games platform. Whilst it has been incredibly fun it has not been profitable, in fact I have lost a lot of money. Even so I still have faith in the platform and I do believe that one day it will come through for indie game developers trying to break through.

With this in mind, I’ve spent the best part of the last month working on something interesting and useful that I hope Facebook Instant Game (IG) developers and web developers alike find useful, hopefully encouraging more game and entertainment app developers to come to the platform, as well as give existing developers another way to monetise their instant games elsewhere.

Now I’ve explained the inspiration behind the creation, I will explain a little more about it.

I have created an open source layer called IGX. This is an SDK that has multiple purposes:

  • Bridges the gap between Facebook Instant Games and the web, allowing Facebook Instant Game developers to deploy their games to web and monetise them with little to no changes
  • Enables web game developers to include support for Facebook Instant Games before deploying to the platform
  • Enables all developers to use a common API which allows them to deploy their games across many web portals and provides common game services
  • Extend the IG platform, providing new features via other services

What is IGX? It is basically a complete replacement for the FBInstant object, so you can drop it into your code instead of linking to the FBInstant SDK CDN and your game should just run outside of the IG platform. IGX is based very heavily on two concepts, services and vendors. A service is a feature such as login, payments, ads etc, whilst a vendor is the provider of a particular service. For example, PayPal is a purchasing vendor. Note that some vendors provide many services, for example Xtralife provides user management, leaderboards, back-end storage etc..

You have some minimal setup to carry out depending upon which services and vendors you use, but once set up your game will deploy to that specific platform using all of its features.

Note that not all features of the Facebook Instant Games API are supported but most are. Take a look at the Github repo for more details. Also don’t forget to check out the Wiki.

Note that IGX is still very heavily in development so new services will be added over time. If you find a service that you would like adding then please get in touch with the details.

A new version of Booty5 the free HTML5 game editor will be released in due course with full support for IGX and easy deployment.

Join the IGX SDK community on Facebook.

CrazyGames launches new Developer Portal with revenue share options

Hey web game developers, just seen news regarding CrazyGames, they now have a new developer portal and offer revenue share options for your HTML5 games! Its great to see portals placing value on developers efforts like this.

Note that this also includes web versions of games exported from Unity / Unreal etc..

To celebrate the launch of the public beta version of the CrazyGames Developer Portal, they have organised a contest for game developers. Three independent game experts will choose the best games that have been uploaded between the 1st of October and the 30th of November. The winner will be awarded $2,000! Yes, I think I may be entering some of mine, so fingers crossed :) .

I have been looking for another potential avenue for earning money from my Facebook Instant Games so hopefully re-targeting them to general web gaming can be part of my new strategy.

There are however a couple of caveats that may put many off. You cannot earn revenue unless you satisfy these 3 conditions:

  • The game doesn’t contain advertisements.
  • The game doesn’t contain branding from another games portal.
  • The game has not been published on other portals before (Does NOT include Facebook Instant Games Portal).

Facebook Instant Games Category Analysis September 2018

I did an analysis of Facebook Instant Games categories nearly two months ago, lets take a look at the numbers to see where we are at today.

  • Action – 666 games (44780600 total MAU – average per game is 67238)
  • Puzzle – 1146 games (43072900 total MAU – average per game is 37585)
  • Sports – 310 games (42281800 total MAU – average per game is 136392)
  • Trivia & Word – 138 games (31242800 total MAU – average per game is 226397)
  • Simulation – 166 games (28493800 total MAU – average per game is 171649)
  • Board – 126 games (19552200 total MAU – average per game is 155176)
  • Runner – 299 games (14987000 total MAU – average per game is 50123)
  • Card – 76 games (9598200 total MAU – average per game is 126292)
  • Match 3 – 117 games (5194400 total MAU – average per game is 44396)
  • Role Playing – 86 games (5026800 total MAU – average per game is 58451)
  • Strategy – 78 games (4690700 total MAU – average per game is 60137)
  • MOBA – 5 games (2255000 total MAU – average per game is 451000)
  • Poker & Table – 35 games (1705500 total MAU – average per game is 48728)
  • Slots – 35 games (1367700 total MAU – average per game is 39077)
  • Bingo – 10 games (1268900 total MAU – average per game is 126890)
  • Card Battle – 7 games (682900 total MAU – average per game is 97557)
  • Builders – 16 games (631300 total MAU – average per game is 39456)

Last time Word and Trivia had a clear lead, but things appeared to have changed somewhat over the past few months with MOBA pushing way ahead. But, looks can be deceiving. There is only one game in that category which is called Tanks Battle and it is pulling the category average way higher than it should be. The other games in the MOBA category are doing incredibly badly. That said, it does show that there is room there for a good MOBA (hint hint).

So we are still left with Trivia and Word games leading which is astonishing considering most of these games are English language only.

Booty5 HTML5 Game Maker Update – Support for Facebook Instant Games Added

Facebook Instant Games Support

Finally released the latest version of Booty with support for Facebook Instant Games. Within the Booty5 engine you will find a new class called Instants which is a small wrapper around the Facebook Instants SDK. Games exported from Booty with Instants enabled in the settings will automatically initialise the Facebook Instants SDK and download all preloaded global resources, note that you will need to download any scene local resources yourself after the main download.

To make your project Facebook IG compatible simply tick the Facebook Instants check box in the projects settings then enter the local launch URL into the Host box in project settings, e.g:


Dragon Bones Animation Support

Unfortunately you cannot edit Dragon Bones animations within the Booty5 editor but you can add the associated PNG, skeleton and atlas JSON files that are exported from Dragon Bones to the editor as resources and access them from within code, e.g:

// Parse dragon bone data
var factory = dragonBones.b5Factory.factory;
var skel = JSON.parse(b5.Utils.resolveResource("my_skeleton", "raw").data);
var atlas = JSON.parse(b5.Utils.resolveResource("my_atlas", "raw").data);
factory.parseTextureAtlasData(atlas, b5.Utils.resolveResource("my_texture", "brush"));

// Create an actor containing the dragon bones armature and attach it to a parent actor
var dba = factory.buildArmatureDisplay("name");
dba.x = 0.0;
dba.y = 0.0;

I will in the near future wrap the above into the engine / editor to make it more readily accessible, as well as add the same support for Spine.

Other Stuff

The editor has had a whole host of bug fixes and additional changes to keep pace with the Booty5 game engine. See the Booty5 game engine for more details on those changes.

Upcoming Demos and Documentation

Over the next few days I will be releasing the full Booty5 projects for some of my recent Facebook Instant games so you can use these as a reference / starting point. These games cover many areas of the Facebook Instants SDK including displaying ads, using in-app purchases, submitting leaderboard scores, grabbing and displaying leaderboard entries, inviting other players to play, sharing progress, switching contexts and posting updates to Messenger.

The following full projects have been uploaded thus far:

You can grab the latest version of the Booty5 Game Maker from the Booty5 website.

I am still in the process of updating documentation, I will post details here once that is finished.

Booty5 HTML5 Game Engine Update out – Facebook Instant Games Support Added

It’s been a long long while since I put an update to Booty5 out so I thought it time. I have been playing around with Facebook Instant Games over the last few months so I added support for Facebook Instant Games to the Booty5 engine. You will find a new utility class called Instants that wraps up the Facebook Instants SDK. This has been tightly integrated into the loader for the Booty5 game editor. I will be releasing the updated version of the Booty5 editor with direct Facebook Instant Games export support very soon. Along with that I will be releasing the source to some of my games to help developers learn how to use the new features more easily. The complete list of Booty5 engine changes (v1.5.5) include:

  • New hit property added to Actors. If true then will be included in hit testing
  • New dock_screen property added to Actors. If true then docking will be to screen edge instead of scene edge
  • New padding property added to Actors. Text padding (used when caching)
  • New scale_method property added to Actors. Scale method used to fit actor to screen
  • New draw_reverse property added to Actors. If set to true children are drawn in reverse order
  • New _av property added to Actors. This will set active and visible states at the same time
  • New method removeAllActors added to Actor which removes all actors from the actors child list
  • New getSlot and moveToSlot methods added to Actor which allows you to query a child sort index and modify it
  • New overlapsRect method added to Actors which checks for a rect area overlapping the Actors rect area
  • New circleOverlaps method added to Actors which checks for a circular area overlapping the Actors circular area
  • New circleOverlapsRect method added to Actors which checks for a rect area overlapping the Actors circular area
  • New fullCircleOverlapTest method added to Actors which checks for a circular area overlapping the Actors circular area (taking into account transforms)
  • New stroke_filled property added to all Actor types which if true will cause stroke will be drawn
  • New line_height property added to LabelActor which specifies the height of a line of text
  • New _text property added to LabelActor which sets the labels text and updates its cached version if cached
  • New deactivate property added to Animations. When set to true deactivates and hides target actor when its done (default false), should only be used with actors
  • Many new easinng funnctions added to the animation system
  • App canvas_width and canvas_height now known as design_width and design_width
  • Fonts now added to the app as resources, the underlying font loaded uses the FontObserver lib to load fonts
  • Raw JSON resource type now added to the App
  • New started property added to the App which is a callback that will be called when the app starts
  • All App resource containers are now objecsts instead of arrays
  • App waitForResources now calls a supplied callback to alert the user of progress during loading
  • App main logic loop is now ran on requestAnimationFrame
  • New draw_reverse property added to Scenes. If set to true children are drawn in reverse order
  • New _av property added to Scenes. This will set active and visible states at the same time
  • Added new Task type called TaskQ which is a collection of tasks that are ran serial. Only the first task in the queue is ran, once that tasks is complete the next task in the queue is ran.
  • Resources now checked for load failure and attempt to reload a number of times before giving up
  • Value passed to Actor _atlas can be an atlas object or the name of an image atlas brush
  • Calling playAnim or playTimeline on an inactive or invisible Actor will make activate it and make it visible
  • Hit tests are no longer carried out on inactive Actors
  • Fixed Actor _scale property so that it now updates the main transform
  • Fixed virtual Actor margins
  • Action lists are now optional component and not included by default
  • Support for Facebook Instant Games added

Please note that this version of Booty5 may not be completely compatible with your existing code so back up before trying it!

The complete source to Booty5 is available on Github here.

I will update the game editor, documentation and e-book in the near future.

Oh I also have a Dragon Bones lib coming soon too.