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

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).

Simple Messaging System with Redis and Node.js

Hey all, been a while since I posted anything constructive, I’ve been so busy wasting my time creating games for Facebook Instant Games Messenger (I will do a proper write up with my analysis and final findings / thoughts on this very soon). Not all has been lost working on Instant Games however. Two of my games required an instant messaging system that enables me to send real-time messages between players which ironically the Instant Games SDK doesn’t cater for. So I created one using Node.js and Redis (these two bad boy pieces of tech together are like sweet music). You can grab the code from Github here.

Note that you will need to install this to your own server, I like to run most of my node modules using PM2. So to get the messaging system up and running just run pm2 msys. The server looks to the /msys endpoint, but you can change this in msys.js if you need it to go elsewhere. No, I don’t answer questions on how to set up servers and mess with Apache config files because I hate all that junk, it gets in the way of my actual coding which I do enjoy :). If you cannot do this stuff yourself then you probably should be paying someone else do this for you.

Oh word of warning, any messages sent will time out after 7 days (this is to keep Redis memory usage down), but you can extend this to whatever time limit you like. Messages are queued, when you collect the pending messages it collects them all and deletes them from the database.

Ok, how to use client side? Here is a simple class (erm I mean collection of functions) with an awesome original name that I ripped out of one of my games for you guys to use:

[sourcecode language=”js”]
var Backend = {};

Backend.SendMessage = function(data, done_callback)
{
var url = "https://yourdomain.com/msys?c=s&t=<your token>";
url += "&g=1";
url += "&u=" + data.to_id;
url += "&d=" + encodeURIComponent(JSON.stringify(data));
b5.Utils.SendGetRequest(url, function(response) {
if (done_callback !== undefined)
done_callback(response);
})
}

Backend.SendMessageMulti = function(recipients, data, done_callback)
{
var users = "";
var len = recipients.length;
for (var t = 0; t < len; t++)
{
users += recipients[t];
if (t < (len – 1))
users += "_";
}
var url = "https://yourdomain.com/msys?c=s&t=<your token>";
url += "&g=1";
url += "&m=" + users;
url += "&d=" + encodeURIComponent(JSON.stringify(data));
b5.Utils.SendGetRequest(url, function(response) {
if (done_callback !== undefined)
done_callback(response);
})
}

Backend.GetMessages = function(done_callback)
{
var url = "https://yourdomain.com/msys?c=g&t=<your token>";
url += "&g=1";
url += "&u=" + Social.GetPlayerID();
b5.Utils.SendGetRequest(url, function(response) {
if (response.status == 200)
{
var data = decodeURIComponent(response.responseText);
var obj = JSON.parse("[" + data + "]");

if (done_callback !== undefined)
done_callback(obj);
}
else
{
if (done_callback !== undefined)
done_callback();
}
})
}
[/sourcecode]

There are a few functions in here that you will need to implement yourself:

  • Social.GetPlayerID() – Replaced with your players user ID, if you are using Facebook Instants SDK then use FBInstant.player.getID()
  • b5.Utils.SendGetRequest() – Performs a GET request, e.g:

[sourcecode language=”js”]
b5.Utils.SendGetRequest = function(url, callback)
{
var req = new XMLHttpRequest();
req.onreadystatechange = function()
{
if (callback != undefined && req.readyState == 4)
callback(req);
}
req.open("GET", url, true);
req.send();
}
[/sourcecode]

Anyway, that’s it, hope you find more useful than I did. Happy coding :).

Big List of Popular Flash, HTML5 and Unity 3D Web Gaming Portals

Big list of web game portals / sites that accept games mainly from Flash, HTML5 and Unity 3D developers:

Facebook Alexa rank 3
Y8 Alexa rank 761
Kongregate Alexa rank 1375
Miniclip Alexa rank 1750
Kizi Alexa rank 1816
Newgrounds Alexa rank 2624
Poki Alexa rank 2985
itch.io Alexa rank 3449
Armor Games Alexa rank 3472
A10 Alexa rank 4164
Pogo Alexa rank 4955
Big Fish Games Alexa rank 5113
AGame Alexa rank 6009
Addicting Games Alexa rank 6657
Paco Games Alexa rank 8024
Girls Go Games Alexa rank 9280
Zepak Alexa rank 9516
Ninja Kiwi Alexa rank 10681
io Games Space Alexa rank 11295
NotDoppler Alexa rank 14516
Games Games Alexa rank 15194
Yepi Games Alexa rank 21526
Nitrome Alexa rank 24779
KHBG Games Alexa rank 24690
Game House Alexa rank 28541
Free Online Games Alexa rank 28628
Games Freak Alexa rank 35802
MAD Alexa rank 36964
Box10 Alexa rank 43227
One More Level Alexa rank 48128
Mouse Breaker Alexa rank 52226
Games 2 Girls Alexa rank 54837
io-games Alexa rank 56104
Fun Brain Alexa rank 57127
Frip Alexa rank 60455
Puff Games Alexa rank 65496
Crazy Monkey Games Alexa rank 68705
Flash Games 247 Alexa rank 72799
Game Gape Alexa rank 76718
Mind Jolt Alexa rank 78550
Bubble Box Alexa rank 80294
Cool Games Alexa rank 90502
Zapak Alexa rank 95136
GameZ Hero Alexa rank 109726
Spil Games Alexa rank 152091
Game Garage Alexa rank 1295785

* Alexa rank accurate as of 2nd October 2017