Talking about Construct, Game development, HTML5, Javascript and Monetize.
About a week ago I blogged about the experiment to monetize a game in the post MochiMedia era, and my experiment continues trying to get my HTML5 game Whack a Creep using one of the oldest services for game monetization: FGL which is also my favourite service.
You should already about FGL opportunity for HTML5 games, I also blogged about it in the post FGL will pay IN ADVANCE up to $200 for your HTML5 games.
You only have to download the API from the official page and use them in your game. There is a really simple yet complete documentation about the whole process, as well as a real world example with a Fruit Ninja game.
Unfortunately, if you made your game with Construct2 (like I did), there isn’t a plugin to easily add the API in the game, so I had to edit something here and there.
I am going to show you what I did in order to have ads, cross promotion and leaderboards in my Constrcut2 game.
First, you have to make some small changes to the index.html
file generated when you publish your game: you can find them highlighted
<!DOCTYPE html> <html manifest="offline.appcache"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Whack a Creep</title> <!-- Allow fullscreen mode on iOS devices. (These are Apple specific meta tags.) --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <link rel="apple-touch-icon" sizes="256x256" href="icon-256.png" /> <meta name="HandheldFriendly" content="true" /> <!-- Chrome for Android web app tags --> <meta name="mobile-web-app-capable" content="yes" /> <link rel="shortcut icon" sizes="256x256" href="icon-256.png" /> <!-- All margins and padding must be zero for the canvas to fill the screen. --> <style type="text/css"> * { padding: 0; margin: 0; } body { background: #000; color: #fff; overflow: hidden; -ms-touch-action: none; } canvas { touch-action-delay: none; touch-action: none; -ms-touch-action: none; } </style> </head> <body> <div id="fb-root"></div> <script> // Issue a warning if trying to preview an exported project on disk. (function(){ // Check for running exported on file protocol if (window.location.protocol.substr(0, 4) === "file") { alert("Exported games won't work until you upload them. (When running on the file:/// protocol, browsers block many features from working for security reasons.)"); } })(); </script> <!-- The canvas must be inside a div called c2canvasdiv --> <div id="c2canvasdiv"> <!-- The canvas the project will render to. If you change its ID, don't forget to change the ID the runtime looks for in the jQuery events above (ready() and cr_sizeCanvas()). --> <canvas id="c2canvas" width="640" height="960"> <!-- This text is displayed if the visitor's browser does not support HTML5. You can change it, but it is a good idea to link to a description of a browser and provide some links to download some popular HTML5-compatible browsers. --> <h1>Your browser does not appear to support HTML5. Try upgrading your browser to the latest version. <a href="http://www.whatbrowser.org">What is a browser?</a> <br/><br/><a href="http://www.microsoft.com/windows/internet-explorer/default.aspx">Microsoft Internet Explorer</a><br/> <a href="http://www.mozilla.com/firefox/">Mozilla Firefox</a><br/> <a href="http://www.google.com/chrome/">Google Chrome</a><br/> <a href="http://www.apple.com/safari/download/">Apple Safari</a><br/> <a href="http://www.google.com/chromeframe">Google Chrome Frame for Internet Explorer</a><br/></h1> </canvas> </div> <!-- Pages load faster with scripts at the bottom --> <!-- Construct 2 exported games require jQuery. --> <script src="jquery-2.0.0.min.js"></script> <script type="text/javascript" src="fgl.js"></script> <!-- The runtime script. You can rename it, but don't forget to rename the reference here as well. This file will have been minified and obfuscated if you enabled "Minify script" during export. --> <script src="c2runtime.js"></script> <script> fgl.create(document.getElementById("c2canvas")); // Size the canvas to fill the browser viewport. jQuery(window).resize(function() { cr_sizeCanvas(jQuery(window).width(), jQuery(window).height()); }); // Start the Construct 2 project running on window load. jQuery(document).ready(function () { //Create new runtime using the c2canvas fgl.onReady(function(){ cr_createRuntime("c2canvas"); }) }); // Pause and resume on page becoming visible/invisible function onVisibilityChanged() { if (document.hidden || document.mozHidden || document.webkitHidden || document.msHidden) cr_setSuspended(true); else cr_setSuspended(false); }; document.addEventListener("visibilitychange", onVisibilityChanged, false); document.addEventListener("mozvisibilitychange", onVisibilityChanged, false); document.addEventListener("webkitvisibilitychange", onVisibilityChanged, false); document.addEventListener("msvisibilitychange", onVisibilityChanged, false); </script> </body> </html>
Look how I changed the default file generated by Construct2:
Line 78: calling the javascript library you can find in the zipped file available in the official page
Line 87: API initialization
Lines 98-100: I am running the game only once the API is ready
This is all you need to code at the moment.
Now, a brief look at the Construct2 splash screen sheet:
Don’t mind about the two “On start of layout” events: I am just keeping them separated during debug process to easily activate/deactivate some actions.
This allows me to easily add both ads and cross promotion in the splash screen
Obviously this won’t automatically allow me to make money out of this game… now I have to submit it for approval, then sit, wait and hope – while making next game.
Stay tuned.
Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.