Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

15. July 2012


Here at, we have run a number of guides on how to create games but nothing on how to actually make money off them.  The following is a guest post by Ben Chong, an HTML5 game developer and founder of

The advice, views and opinions expressed below are not necessarily those of


It’s been 6 months since the last guide about monetization was written. Considering how fast things are moving with HTML5 games, it’s timely to write a new one. Please note, this guide chooses the path of least resistance to the money.

Chrome Web Store

Probably the easiest to begin with. Host your game, run ads on it. Two ad networks to trust are

  • Google Adsense - variable rates, but it depends a lot on what’s on your game page. Try inserting HTML5 related keywords, because companies are spending more money on HTML5-related ads. You’ve probably seen countless “Ludei ❤ HTML5 “ and “CocoonJS” ads. Capitalize on this, and make sure some of that ad spend trickles into your pocket.
  • Ad4Game - this network displays pure game ads. You’ll be promoting other games from large game studios. eCPMs of about $1.50 - 2.00, and they do very timely NET30 Paypal payments. Contact Angelica, tell her that your game’s on the Chrome Web Store. She’ll be delighted to set you up.

If you’re feeling brave, try out Google’s In-App Payments API. It might take an hour to figure out and a few more to integrate with your game. That is, assuming that your game actually functions well with in-app purchases.

Being featured matters a lot in the Web Store.

A normal featured game fetches about 1000 plays/day. A game featured on the front page of the games section, right at the top gets about 60,000 plays/day, or 60x.

Google loves it when you showcase what their engineers have built. If you want to get your game featured, remember to integrate some of Google’s APIs: WebGL, Chrome Fullscreen, Web Audio, etc. You can’t obviously integrate all of them, but having a few will give you a boost over other game devs. Once you’re ready, start pitching playable games to Google developer advocates. You can find them all here.

Costs: your server hosting fees, integration time and pitching time

iOS and Android

Deploy your game using one of the many wrapper tools out there, like appMobi, Ludei’s CocoonJS, GameClosure and Spaceport.

Ludei seems to be the only one publicly telling the world how great their engine is. They’ve got the entire monetization suite ( iAds and in-app purchases ), which is always a bonus for developers.

The upside is, once you manage to successfully master one of the tools above, you get access to virtually 100% of the mobile app market. Whether people will actually download your game is an entirely different topic.

Before launching your game, remember that you have only one shot at this. If your game flops in the App Store, you might be able to save it by doing free-app-a-day promotions/price manipulations. However, the download spikes you get from promotions do not last. Your game will be piled under 1000 new games being published each day. Find your niche, and market wisely via developer forums like TouchArcade. Don’t forget to pitch to blogs like Kotaku, they always enjoy a good story.


  • appMobi charges $99 for a game dev toolkit.
  • Spaceport takes 10% of anything you earn.
  • CocoonJS and GameClosure are free, but you need to personally contact the companies.
  • hours in learning how to use the tools and integrating with your game.
  • iOS dev account costs $99/year.
  • Google Play account costs $25/year.


Facebook canvas games don’t get the attention they deserve, but they’re still wildly profitable if done right. The virality from game invites/activities are what you should be focusing on when designing a Facebook game.

Ads and virtual goods (Facebook Credits) work well here. Note that Facebook doesn’t allow google ads running, so you need to look for other game-focused ad partners like Ad4Game.

Another caveat: not all HTML5 games will work perfectly on Facebook, because they still have a percentage of users that have older browsers. What to do? Your best bet is to politely ask them to download and use Chrome, or the Google Chrome Frame plugin.


  • server hosting fees
  • integration time with Facebook APIs

Mac App Store

Not as popular as the iOS App Store, but worth a shot. One of the earliest HTML5 games we noticed here was Onslaught Arena.

Google+ Games

Google is a bit picky when it comes to selecting partners, on grounds of maintaining the user experience. You need to have a reputation and a hit game to be considered ( think Triple Town ).

Intel App Up Store

Intel gives you access to the PC app market. No hard numbers on revenue, but they run a small fund to encourage developers.

Pokki Store

Pokki gives you access to the desktop games market. Wrap your game inside their SDK and deploy! We don’t have hard numbers of how well their games monetize. Last we know, they ran a HTML5 games contest which proved lucrative.

Mozilla App Marketplace

Should launch in late Q3 2012. Firefox has about 25-28% of the browser market. Putting your games here should theoretically produce similar revenue numbers to that of the Chrome Web Store. Mozilla has bigger plans ahead, particularly in mobile. Would be interesting to see if this ties in well with the App Marketplace.

Sell distribution rights

An increasing number of publishers are looking to pepper their own game portals with fresh HTML5 content.

These publishers are looking to license games that run on the web and mobile ( yes, games that run on the mobile safari/android). There are a few ways you can capitalize on this:

  • sell exclusive rights for a high price ( $1500 - 2000+ ) to one publisher/
  • sell non exclusive rights for $500+, to multiple publishers.
  • sell distribution rights to publishers, and take 60-80% from all ad/virtual goods revenue generated

You are free to negotiate any type of deal with publishers. Most developers prefer upfront payments, but if you think the publisher has impressive reach, doing a revenue split from ads/virtual goods might be a smart move. A top developer recently made 4 figures a month from Google ads alone.


  • time to optimize your game for the mobile web.
  • time to integrate your game with the publisher’s APIs ( if required ).

How do I find these publishers?
  • Our startup, marketJS connects HTML5 game developers with publishers. It’s free to use, and we’ve got a good database of publishers hungry for games. Upload a game, and start negotiating!

So many choices

There’s no single best option to monetize your games. Build a team, adopt a shotgun approach, analyze results and seek advice from other developers.

Can I go full-time making HTML5 games?

Yes, you can make a high 5 figures/year by making HTML5 games. This excludes development contracts and funded projects. Snag a few of those, and you might even hit 6 figures.

Pick your battles, test each market, and keep polishing. The games industry is very competitive, but extremely fulfilling.

General ,

blog comments powered by Disqus

Month List

Popular Comments

August 2012
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

31. August 2012


It’s 300+ pages of how-to, tips, tricks and what have you, about all things art.  Ryan Hawkins is an industry veteran with experience working with Blizzard, Pixologic, Vigil Games and more.  Plus, he brought along friends, Tor Frick, John Park as well as people from Blizzard and Naughtyimage Dog.  That’s some pretty heavy caliber talent sharing their art talents.  Topics include sculpting, texturing, concept art, color theory and more.



Oh yeah, for free.



It’s a 216MB e-book and, well….



So, I might recommend you try a torrent instead.


Of course, you can read more at this website.  I actually managed to download using the US mirror without issue.


Very cool work guys.


30. August 2012


In celebration of their 40th anniversary, Atari has re-released a number of their classic games as HTML5 in their newly launched web arcade.  Each of the titles has received a facelift, and the list includes:

  • Asteroids
  • Centipede
  • Combat
  • Lunar Lander
  • Missile Command
  • Pong
  • Super Breakout
  • Yar’s Revenge



As you can see, the games have received a facelift:





Yar’s Revenge:





The project is a team up between Atari, CreateJS and Microsoft.  The Microsoft connection is Internet Explorer 10, which allows you to view the arcade ad free.  Atari is releasing an SDK for publishing on their arcade, the download and documentation page is currently down, so details are a bit sparse right now.  Their quick start pdf is currently available and gives a glimpse into the process. Presumably the arcade would work on a revenue sharing scheme, but that is just guesswork at the moment.


The library used to create all the games is called CreateJS, and is a bundling of HTML5 libraries including:

EaselJS – a HTML5 Canvas library with a Flash like API

TweenJS – a chainable tweening library

SoundJS – a HTML5 audio library

PreLoadJS – an asset loading and caching library


Plus the newly added tool, Zoe.  Zoe is a tool that takes SWF Flash animations and generates sprite sheets.



I look forward to looking in to Atari’s new API once their documentation page is back online.  Atari has also created a GitHub repository to support the project, but it is currently a little sparse.  In their own words:


Welcome to the Atari Arcade SDK.

This is the initial release of the SDK, which we hope to evolve over the next few weeks, adding
* more documentation
* examples
* updates

This repository contains
* Atari Arcade SDK classes in scripts/libs
* scripts necessary to run the SDK locally, in scripts/min
* API documentation and a quick start guide in docs/
* A test harness page to bootstrap and launch games



All told, a pretty cool project.  At the very least, check out the arcade, it’s a great deal of fun.


General ,

29. August 2012


As the title says, I have inserted a new book into the Unity book list, 3D Games Monetization with Unity and Leadbolt. I do however use the word book in the loosest terms possible, as it is in electronic format only and it weighs in at a mere 37 pages.


That said, it also weights in at a mere 3$, so there is that…


I will admit, before discovering this book, I had never heard of Leadbolt. they are a mobile ad provider in the vein of adMob, but with a world more options than simple banners.



Ads can be added at the application entry point, while running and at the exit point.


I personally HATE ads in mobile games, and gladly pay a premium for an ad free version ( which sadly most developers do not embrace, at least not on Android ), but perhaps ads in a different format will make a difference.


Anyways, if you are a Unity developer and are interested in monetization, you have a new book to check out.


It is my intention to keep the list as comprehensive as possible, so if I have missed a title or you are the author of an upcoming title, please let me know.

General ,

28. August 2012


Cocos2D-html is an HTML5 port of the popular Cocos2d-x library, enabling you to make games that run in a browser, using a syntax that works virtually unchanged on a number of platforms.Cocos2dHTML5


You can download the source as a zip right here.


The project is also available on GitHub.



In anticipation of this release, the Cocos2D tutorials on this site where all updated to the new API, so should work unchanged.  There were some pretty major changes in the API as detailed here.



Finally, there have been a series of Cocos2D related books published that could prove helpful in puzzling things out. ( Of course, start with the tutorials! Winking smile ).


28. August 2012


This guide will run through the process of creating and building an Android host for use with Moai.


There are a number of installs and configurations you need to perform before you can build Moai for Android.  If you need details on any of the individual steps, click the link to jump to more details on that part of the process.  If you think it seems like quite a list… you are right, it is!  Fortunately you only have to do it once!


In order to build the Android host you need to:


Install and configure all of those items before continuing these instructions.  Seriously, you need everything above, so install and perform every configuration step or the following is guaranteed to fail!



Creating an Android Host


Open a cygwin terminal

Change directory to where you want to install the Moai source code.  I am going to install to C:\, which under cygwin is /cygdrive/c, so:

cd /cygdrive/c

Now run git to download the newest Moai source code, enter:

git clone git://

Let git run, it will download and clone the most recent source code to the folder c:\moai-dev.  Make a cup of coffee, it might take a few minutes.



Now we want to build our Android host, to do so, change into the folder c:\moai-dev\ant\ and run the script  You pass in the name of the  package you want created in Java form ( reverse url, com.yourdomain.yourappname ) like so:

cd /cygdrive/c/moai-dev/ant

./ –p com.gamefromscratch.moai

It should run and complete without issue.  Should being the operative word, in my case I was actually getting a permission denied error on one the library files.  A quick chmod 644 permission setting on the file fixed that issue.  Once the script completes, it will have created a directory in the /ant folder called untitled-host.



In untitled-host, locate and edit the file, locate the the line android_sdk_root and edit it to match the path to your android sdk ( note, SDK not NDK! ), mine looks like:


Then scroll down to the section src_dirs and set it to the directory containing your Lua project, such as:

src_dirs=( "cygdrive/c/luasource" )

Save your changes and exit.


Now optionally edit  Most importantly, locate the line:

requires=( "miscellaneous" "adcolony" "google-billing" "chartboost" "crittercism" "facebook" "google-push" "tapjoy" )

and change it to just:

requires=( "miscellaneous"  )


Unless you specifically need to include those libraries.  Tapjoy and Facebook are currently broken though, so if you include them, you will have trouble later!  You can optionally set your app name, version number, icon names, etc at this point. (Actually, this part seems to be ignored anyways…)

Save and exit.


Not type ( in the untitled-host folder ) :



So long as you didn’t get any errors, your project should now have been created. 


Loading and running the generated project in Eclipse


Fire up Eclipse.

Select the menu File->Import…

Select General->Existing Project into Workspace, like so:



Click Next.


Check Select root directory and navigate to c:\moai-dev\ant\untitled-host\build\project like so:



Click Finish.


As you can see, even though you said you didn’t want them, Facebook and Tapjoy are still included, and are still broken.




Right click and choose Delete for each one.


Once those are removed ( or you can optionally find and fix the external libraries they depend on instead of removing them. ), your application should build just fine.  Make sure your Android device is plugged in and has debugging enabled ( in the settings on the device ).  Right click your project, select Run As… Android Application



A few seconds later, your application should appear on your device.


The actual lua code for your application will be located in the lua folder within the assets folder.




Happy Androiding!



If these instructions don’t work for you, do not be surprised.


1- Moai is under active development

2- The whole Java build system is horrifically complex and exceedingly fragile

3- Eclipse is the devil




Installing Cygwin


Cygwin is a unix like environment for windows and is critical to successfully building the Android hosts with Moai.  First thing download setup.exe from here (direct link to exe).  Your browser may fight you a bit about downloading an executable directly.


Once downloaded, run setup.exe, saying yes to any security prompts.


Select Download from Internet.


Click Next.


Pick whatever directory you want to install to, I kept the default of c:\Cygwin. 


Click Next.


Next you need to pick the directory to download to, again I just went with the defaults:


Click Next.


Defaults again unless there is something odd about your internet connection:


Click Next.


Select the download location that is closest to you, then click Next:




The downloader will run for a few seconds.  You may get a prompt saying this is the first time you have installed Cygwin and be sure to check the documentation.  Simply click OK.  At this point, you will get a window asking you to select the packages to install, like so:




Install the devel selection of tools, simply click the icon beside the Devel tree and it will switch from Default to Install, like this:


NOTE: *** You don’t actually need the entire Devel tree and this process will take a really long time to complete ( two hours on my laptop ) if you select the full Devel tree.  However, selecting all developer tools guarantees that you get everything required as part of the build process.  You can experiment with selecting individual packages if you wish.


Click Next.


You will most likely get a prompt about resolving dependencies, like so:



This is normal, click Next.



Setup will now download all of the packages you have selected:





This process is not… short.  Have patience, lots of patience.  Have you considered picking up a new hobby?  Knitting perhaps?  Go for it!  You have plenty of time.


Cygwin installation is now complete.





You can always run setup.exe again if you want to enable or remove features in the future.


Cygwin is now configured.


Installing the Android NDK


Head over to the Android NDK page and download the appropriate file. I went with, but this will obviously change in version name over time.


Once downloaded, open the archive and extract the folder inside to somewhere on your drive.  In my case the folder was called android-ndk-r8b and I extracted it to c:\.  After it is extracted, rename it to android-ndk.  There are 17,000+ files in that archive, so expect it to take a while to extract.


Later in the process, Moai will need to know the location of the NDK, specifically ndk-build.  The easiest way to make this file discoverable is to add it to your path environment variable, this can be configured via the command line:


setx PATH ‘%PATH;c:\android-ndk’.


The NDK is now installed.



Installing the Java JDK and set the JAVA_HOME environment variable


You need to have a Java JDK installed and configured.


Download the JDK from this website.  Chose whichever version you want, it shouldn’t matter.  There are some annoyances with using Android tools with Java 7 ( 1.7 ), so Java 6 may be the best choice for now.


Once downloaded and installed, be sure that JAVA_HOME is set to your install directory.  Mine for example is c:\Program Files\Java\jdk1.7.0_03


Once again, you can set this environment variable from the command line using the setx command.




Installing Apache Ant


Go here to the Apache Ant download page and download the zip file.  I selected

Open the archive and extract the folder (apache-ant-1.8.4 in this case ) to a location on your drive.  I went with c:\ again.


Set the environment variable ANT_HOME and point it to this directory ( c:\apache-ant-1.8.4 in my case), you can do this from the command prompt with the command:

setx ANT_HOME c:\apache-ant-1.8.4

Like so:



Ant is now configured.



Installing the Android SDK, Eclipse and the Android Plugins


You can download the Android SDK here, which full instructions here.  Be sure to install at least the Android 2.2 ( Platform 10 ) platform as described here.


The first half of this guide covers the installation process for installing Eclipse.  You need to install Eclipse as well as the Google ADT to complete this process. Eclipse 3.7 or 3.8 will work, although might require a minor change during the install process.

Programming , ,

Month List

Popular Comments