{"id":1461,"date":"2012-12-04T21:31:51","date_gmt":"2012-12-04T20:31:51","guid":{"rendered":"http:\/\/www.frozax.com\/blog\/?p=1461"},"modified":"2015-04-04T19:43:52","modified_gmt":"2015-04-04T19:43:52","slug":"developed-released-mobile-game-45-hours","status":"publish","type":"post","link":"https:\/\/www.frozax.com\/blog\/2012\/12\/developed-released-mobile-game-45-hours\/","title":{"rendered":"How I developed and released a mobile game in 45 hours"},"content":{"rendered":"<p><a href=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/icon_96_transparent.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/icon_96_transparent.png\" alt=\"icon_96_transparent\" title=\"icon_96_transparent\" width=\"96\" height=\"96\" class=\"alignleft size-full wp-image-1472\" \/><\/a>Developing a game always takes longer than expected. I made an experiment and tried to develop a simple but descent game quickly, while keeping tracks of time spent on each feature. I also wanted short development times to see if I can make a profitable game, even if I were paid for it (I&#8217;m not doing this for a living, just for fun).<br \/>\nThis experiment ended with the game <strong>Hashi Puzzles: Bridges &amp; Islands<\/strong>, available right now for <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.frozax.hashipuzzles\">Android<\/a> and <a href=\"https:\/\/itunes.apple.com\/app\/hashi-puzzles-bridges-islands\/id581613569\">iPhone\/iPad<\/a> (free download).<\/p>\n<h3>Simple design<\/h3>\n<p>In order to release the game quickly, I had to have a safe design, without too much risks. I therefore came up with the idea of implementing a game of <em>Hashiwokakero<\/em> (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Hashiwokakero\">Wikipedia<\/a>), a logic game made by the inventors of sudoku. I know the &#8220;gameplay&#8221; has already been tried and it&#8217;s fun: I won&#8217;t need to spend time iterating or tweaking the design.<br \/>\nAs I&#8217;m not an artist, this is also a good choice because it is graphically simple. I initially planned to do all the art myself, but my brother (<a href=\"http:\/\/www.vincentguibert.fr\/\">Vincent<\/a>) nicely offered his help when I gave him an early build of the game. He therefore made the game icon and logo. He also worked with a tight deadline (1 day).<br \/>\nTo have a complete and polished game, I added levels, level packs, hints and a progression (inspired by the great game Flow (<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.bigduckgames.flow\">Google Play<\/a>, <a href=\"https:\/\/itunes.apple.com\/us\/app\/flow-free\/id526641427?mt=8\">AppStore<\/a>)).<br \/>\nI also integrated ads that are removed when the player purchases any of the six purchasable level packs. Purchases are made with in-app payments.<br \/>\nThe game has no music, and only very basic sound in the menu (actually, the code used to play the validation sound in the mainmenu is in my framework so it was faster to keep it than to remove it).<br \/>\nThe game is translated in French and English. [<em>By the way, if you can speak any other language, feel free to contact me as I&#8217;d love to port the game in other languages. The game has very few texts, as you can see on the <a href=\"https:\/\/docs.google.com\/spreadsheet\/ccc?key=0AmBR6gXb6JO0dDJ2MDhMTWFkRkRfeVR2bGpnWk9zOFE\">editable texts sheet<\/a>, and a simple description on the stores<\/em>].<br \/>\nWith the design in place, experience gained from a released mobile game (<a href=\"http:\/\/www.frozax.com\/dftt\">Don&#8217;t Feed the Trolls<\/a>), and an engine ready (<a href=\"http:\/\/www.cocos2d-x.org\">cocosd-x<\/a>), I can start the actual development of the game.<\/p>\n<h3>45 hours<\/h3>\n<p>I worked on the project part-time, mostly in the evening when my kids are sleeping ;).<br \/>\nThe android version of the game was made and released after 45 hours of work distributed in 11 days. I don&#8217;t count the time spent thinking about it in the shower, though \ud83d\ude42<br \/>\nI then spent another 5 hours to port, build and submit the iOS version. In addition to creating the project, I added a feature on iOS that I didn&#8217;t implement in my previous game: the ability to use <a href=\"http:\/\/advertising.apple.com\/\">iAd<\/a> as well as <a href=\"http:\/\/www.admob.com\">AdMob<\/a> as advertising sources.<br \/>\nIt also took 5 hours for the Amazon App Store Kindle version (it&#8217;s in review right now and should be available in a few days). It was the first time I implemented the in-app API for Amazon, that&#8217;s why it took a bit longer than it should have.<br \/>\nMy brother spent a total of 5 hours on the art (on the last day).<\/p>\n<h3>Total breakdown per feature and sub-feature<\/h3>\n<p><strong>Here is the time spent per feature:<\/strong><br \/>\n<a href=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/feature.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/feature.png\" alt=\"feature\" title=\"feature\" width=\"424\" height=\"302\" class=\"alignnone size-full wp-image-1473\" \/><\/a><br \/>\nI included everything in this chart : my work, the artist&#8217;s work and the ports to iOS and Amazon. This is a total of about 60 hours. We can see the distribution is quite even between each feature.<br \/>\n<strong>It&#8217;s more interesting to see a sub-feature breakdown:<\/strong><br \/>\n<a href=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/subfeature.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.frozax.com\/blog\/wp-content\/uploads\/2012\/12\/subfeature.png\" alt=\"subfeature\" title=\"subfeature\" width=\"457\" height=\"383\" class=\"alignnone size-full wp-image-1474\" \/><\/a><br \/>\nA few comments about this chart:<\/p>\n<ul>\n<li>I develop as much as possible on Windows, with Android being my main real device test target. Therefore, I grouped together windows and android in a platform specific category because most of the specific behavior is done on windows if possible (portrait orientation for instance).<\/li>\n<li>The tutorial took quite some time to implement but it was done twice. After the first playtest with my wife, I realized the tutorial was not understandable at all and I changed it entirely.<\/li>\n<li>Optim is performance optimization so that the game can run on lower end devices. I first made everything working, and then optimized it, mostly by reducing draw calls with the techniques I describe in <a href=\"http:\/\/www.frozax.com\/blog\/2012\/05\/optimizing-graphics-performance-ios-android-cocos2dx\/\">this article<\/a>.<\/li>\n<li>Most of the time was spent building the UI of the menus. I have three screens:\n<ul>\n<li>the main menu with three buttons<\/li>\n<li>the pack selection screen with a vertical smooth scrolling<\/li>\n<li>a level selection screen with horizontal scrolling with pages<\/li>\n<\/ul>\n<p> I already did these kind of menus in my previous game, but it still required some work to put it all together correctly in Hashi Puzzles.<\/li>\n<li>In the core gameplay section, the longest part was obviously the level generation part. In order to have only interesting levels, I had to tweak the level generation for some time. I also had to develop a solver to help the generation. However, the puzzle solver allowed me to develop the &#8220;hints&#8221; feature very quickly.<\/li>\n<\/ul>\n<h3>Conclusion \/ Tips<\/h3>\n<p>Developing this game was very intersting and I (objectively? :)) think the game is good even if it was developed in only 45 hours. There are a few features that I did not implement to save time, and that I might implement later on:<\/p>\n<ul>\n<li>Different theme\/colors (<em>estimation: 1h30<\/em>)<\/li>\n<li>Player statistics <em>(estimation: 0h30<\/em>)<\/li>\n<li>Improved art (<em>estimation: 3h<\/em>)<\/li>\n<li>&#8220;Smart hints&#8221; (hints are currently just brining attention to specific islands, I could be way better with text explaining the hint) (<em>estimation: 2h30<\/em>)<\/li>\n<li>Detection of isolated islands to tell the player (<em>estimation: 2h<\/em>)<\/li>\n<\/ul>\n<p>I will probably make an article about the revenue of the game in a month or two.<br \/>\nPlease try the game (<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.frozax.hashipuzzles\">Android<\/a>, <a href=\"https:\/\/itunes.apple.com\/app\/hashi-puzzles-bridges-islands\/id581613569\">iOS<\/a>), share it with your friends and rate it if you like it!<br \/>\nFeel free to comment here or on <a href=\"http:\/\/twitter.com\/Frozax\">twitter<\/a> if you have any questions about the game or the experiment!<\/p>\n<div class=\"addtoany_share_save_container addtoany_content_bottom\"><div class=\"a2a_kit a2a_kit_size_32 addtoany_list a2a_target\" id=\"wpa2a_1\"><a class=\"a2a_button_twitter\" href=\"http:\/\/www.addtoany.com\/add_to\/twitter?linkurl=https%3A%2F%2Fwww.frozax.com%2Fblog%2F2012%2F12%2Fdeveloped-released-mobile-game-45-hours%2F&amp;linkname=How%20I%20developed%20and%20released%20a%20mobile%20game%20in%2045%20hours\" title=\"Twitter\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_button_facebook\" href=\"http:\/\/www.addtoany.com\/add_to\/facebook?linkurl=https%3A%2F%2Fwww.frozax.com%2Fblog%2F2012%2F12%2Fdeveloped-released-mobile-game-45-hours%2F&amp;linkname=How%20I%20developed%20and%20released%20a%20mobile%20game%20in%2045%20hours\" title=\"Facebook\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_button_google_plus\" href=\"http:\/\/www.addtoany.com\/add_to\/google_plus?linkurl=https%3A%2F%2Fwww.frozax.com%2Fblog%2F2012%2F12%2Fdeveloped-released-mobile-game-45-hours%2F&amp;linkname=How%20I%20developed%20and%20released%20a%20mobile%20game%20in%2045%20hours\" title=\"Google+\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_button_reddit\" href=\"http:\/\/www.addtoany.com\/add_to\/reddit?linkurl=https%3A%2F%2Fwww.frozax.com%2Fblog%2F2012%2F12%2Fdeveloped-released-mobile-game-45-hours%2F&amp;linkname=How%20I%20developed%20and%20released%20a%20mobile%20game%20in%2045%20hours\" title=\"Reddit\" rel=\"nofollow\" target=\"_blank\"><\/a>\n<script type=\"text\/javascript\"><!--\nwpa2a.script_load();\n\/\/--><\/script>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Developing a game always takes longer than expected. I made an experiment and tried to develop a simple but descent game quickly, while keeping tracks of time spent on each feature. I also wanted short development times to see if I can make a profitable game, even if I were paid for it (I&#8217;m not&hellip; <a class=\"more-link\" href=\"https:\/\/www.frozax.com\/blog\/2012\/12\/developed-released-mobile-game-45-hours\/\">Continue reading <span class=\"screen-reader-text\">How I developed and released a mobile game in 45 hours<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,10,12],"tags":[71,77,110,114],"_links":{"self":[{"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/posts\/1461"}],"collection":[{"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/comments?post=1461"}],"version-history":[{"count":1,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/posts\/1461\/revisions"}],"predecessor-version":[{"id":1665,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/posts\/1461\/revisions\/1665"}],"wp:attachment":[{"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/media?parent=1461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/categories?post=1461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.frozax.com\/blog\/wp-json\/wp\/v2\/tags?post=1461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}