{"id":719,"date":"2011-12-30T12:36:00","date_gmt":"2011-12-30T12:36:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/android-game-postmortem-arkdroid-development.html"},"modified":"2012-10-31T00:56:16","modified_gmt":"2012-10-30T22:56:16","slug":"android-game-postmortem-arkdroid","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html","title":{"rendered":"Android Game Postmortem &#8211; ArkDroid Development"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left\">Hello guys,<\/p>\n<p>As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating <a href=\"http:\/\/jcgstudios.com\/\">JCG Studios<\/a>, an independent mobile game studio based on Athens, Greece.<\/p>\n<p>JCG here stands for Just Cool Games, it is our other acronym, except for <a href=\"http:\/\/www.javacodegeeks.com\/\">Java Code Geeks<\/a> of course.<\/p>\n<p>Our platform of choice is Android and our first attempt of developing a game from scratch resulted in the creation of <a href=\"http:\/\/jcgstudios.com\/games\/arkdroid\/\">ArkDroid<\/a>. As its name suggests, <a href=\"http:\/\/jcgstudios.com\/games\/arkdroid\/\">ArkDroid<\/a> is an Arkanoid clone for Android. It is what we would like to call &#8220;Brick Breaker Evolved&#8221;.<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/2.bp.blogspot.com\/-mPL03ZUDSd8\/TiWuH8EMcII\/AAAAAAAAAEo\/KEyF4RBhGBE\/s1600\/logo_jcgstudios.jpg\"><img decoding=\"async\" border=\"0\" height=\"153\" src=\"http:\/\/2.bp.blogspot.com\/-mPL03ZUDSd8\/TiWuH8EMcII\/AAAAAAAAAEo\/KEyF4RBhGBE\/s640\/logo_jcgstudios.jpg\" width=\"640\" \/><\/a><\/div>\n<p>ArkDroid features cinematic story line, appealing visual effects, deep space music themes, campaign and free play modes and sophisticated weaponry system among others. We would love it if you took a look at it and let us know what you think about it.<\/p>\n<p>Having finished the development of ArkDroid a while ago, I would like to share some of the experiences I gathered while being a member of the development team. Consider this as a basic game postmortem, similar to the ones you might have read if you have some experience in game programming.<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/4.bp.blogspot.com\/-VNIhXA3xsNY\/TiWuqQEDXXI\/AAAAAAAAAEw\/4SyfOXkL8Zw\/s1600\/arkdroid_log_big.jpg\"><img decoding=\"async\" border=\"0\" height=\"312\" src=\"http:\/\/4.bp.blogspot.com\/-VNIhXA3xsNY\/TiWuqQEDXXI\/AAAAAAAAAEw\/4SyfOXkL8Zw\/s640\/arkdroid_log_big.jpg\" width=\"640\" \/><\/a><\/div>\n<p>Let&#8217;s begin with a short overview of the game creation. The development team consisted of two people, <a href=\"http:\/\/www.linkedin.com\/pub\/byron-kiourtzoglou\/22\/ab2\/530\">Byron<\/a> and <a href=\"http:\/\/www.linkedin.com\/in\/iliastsagklis\">me<\/a>. The development lasted about 4 months, each of us dedicating about 15 hours per week during that period. It was actually a side project running along with our regular jobs and <a href=\"http:\/\/www.javacodegeeks.com\/\">Java Code Geeks<\/a>. We followed the usual approach of creating both a <a href=\"https:\/\/market.android.com\/details?id=com.jcgstudios.android.arkdroid\">full version<\/a> and a <a href=\"https:\/\/market.android.com\/details?id=com.jcgstudios.android.arkdroidlite\">lite version<\/a>.<\/p>\n<p>Following are some insights regarding game programming in general and more specifically about programming for the Android platform.<\/p>\n<p><u>R.T.F.M. (Read The Fine Manual)<\/u><br \/>\nDo yourself a favor and make sure you have a good grasp of the Android fundamentals before embarking on the journey of making an Android game. Check out the <a href=\"http:\/\/developer.android.com\/guide\/index.html\">developer&#8217;s guide<\/a> and make sure to bookmark the <a href=\"http:\/\/developer.android.com\/reference\/packages.html\">Javadoc pages<\/a>. These are also available in the <a href=\"http:\/\/developer.android.com\/sdk\/index.html\">Android SDK<\/a> for offline browsing. It would be quite easy to get started if you have previous experience into making games, but make sure you dedicate the appropriate time before delving into the magic world of Android game programming. Our <a href=\"http:\/\/www.javacodegeeks.com\/?tag=android-tutorial\">Android tutorials<\/a> could be of help for this. We also recently introduced <a href=\"http:\/\/www.javacodegeeks.com\/2011\/06\/android-game-development-tutorials.html\">Android Game Development Tutorials<\/a>.<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/1.bp.blogspot.com\/-Qfu0I22qnUQ\/TiWvdDF21iI\/AAAAAAAAAE0\/KUJuMQmpWPg\/s1600\/multiple_blastball_1.jpg\"><img decoding=\"async\" border=\"0\" height=\"320\" src=\"http:\/\/1.bp.blogspot.com\/-Qfu0I22qnUQ\/TiWvdDF21iI\/AAAAAAAAAE0\/KUJuMQmpWPg\/s320\/multiple_blastball_1.jpg\" width=\"213\" \/><\/a><\/div>\n<p><u>Collaborate Efficiently<\/u><br \/>\nCollaboration is critical when a distributed team is involved. Don&#8217;t worry, nothing fancy is required. For our online communication, we used <a href=\"http:\/\/www.skype.com\/\">Skype<\/a> and for a loose &#8220;project management&#8221; we played with <a href=\"https:\/\/docs.google.com\/\">Google Docs<\/a>. A text document and a spreadsheet should be more than enough for two people in order to track bugs and assign new features. Regarding the code itself, a versioning system goes without saying. We decided to go with good-old <a href=\"http:\/\/subversion.tigris.org\/\">Subversion<\/a>, since this is what we have the most experience with, but any modern source management tool would be fine. There are also a bunch of sites that provide private repositories, do your search.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><u>Rev up your engine<\/u><br \/>\nResist falling victim of the &#8220;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Not_Invented_Here\">Not Invented Here<\/a>&#8221; syndrom and embrace the power that a game engine can give you. When starting development, we evaluated some of the available Android game engines and we decided to go with the very nice <a href=\"http:\/\/code.google.com\/p\/andengine\/\">AndEngine<\/a>. <a href=\"http:\/\/code.google.com\/p\/andengine\/\">AndEngine<\/a> is quite mature, provides an abundance of features and shortcuts and I guarantee that it will help you kick-start your project in no time. It should definitely be noted tha <a href=\"http:\/\/code.google.com\/p\/libgdx\/\">libgdx<\/a> was a close second and we decided to skip it because it is a bit low level for us. We decided in favour of the lower development time that AndEngine ensures. That being said, if performance is critical to your game&#8217;s success, <a href=\"http:\/\/code.google.com\/p\/libgdx\/\">libgdx<\/a> is a no-brainer. As an added bonus, <a href=\"http:\/\/code.google.com\/p\/libgdx\/\">libgdx<\/a> is cross-platform, meaning that it can be used to write both desktop and mobile (Android) games.<\/p>\n<p><u>Know thy engine<\/u><br \/>\nAs stated above, <a href=\"http:\/\/code.google.com\/p\/andengine\/\">AndEngine<\/a> was used to provide the core framework for building our game. Before writing a single line code however, we made sure to got through all the <a href=\"http:\/\/code.google.com\/p\/andengineexamples\/\">available tutorials<\/a>. Unfortunately, there are no Javadocs (weird) so you will have to rely only on the <a href=\"http:\/\/code.google.com\/p\/andengineexamples\/\">examples<\/a> and the <a href=\"http:\/\/www.andengine.org\/forums\">public forums<\/a>. And hey, you got the <a href=\"http:\/\/code.google.com\/p\/andengine\/source\/checkout\">source code<\/a> available, right?<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/1.bp.blogspot.com\/-6bED6hRKhAE\/TiW2x9i6MTI\/AAAAAAAAAFA\/HhhvCbdzOaI\/s1600\/multiple_blastball.jpg\"><img decoding=\"async\" border=\"0\" height=\"320\" src=\"http:\/\/1.bp.blogspot.com\/-6bED6hRKhAE\/TiW2x9i6MTI\/AAAAAAAAAFA\/HhhvCbdzOaI\/s320\/multiple_blastball.jpg\" width=\"213\" \/><\/a><\/div>\n<p><u>Hit that device<\/u><br \/>\nOne of the most major issues we had during development was the <a href=\"http:\/\/www.google.com\/search?q=android+emulator+slow\">ridicuslouly slow time<\/a> that the applications take in order to be deployed into the SDK&#8217;s emulator. I mean come on, I have a cutting edge laptop and it takes forever (ok about a minute and so) to redeploy the game on it. For this reason, Byron and I made sure to purchase real devices for ourselves and perform the majority of debugging and testing on them instead of the emulator.<\/p>\n<p><u>Test, test, test<\/u><br \/>\nAnd yes, as you might have guessed, I mean test in the real device. You have to test the game in every possible way. Act as a non-experienced mobile user. Provide random input and witness how your game is going to react on that. Make sure that all corners are covered. Be warned, due to the nature of games, it might be difficult to even reproduce a bug, let alone debug the game and fix it.<\/p>\n<p><u>Cover the spectrum<\/u><br \/>\nAndroid fragmentation is a real thing and it can be a major <a href=\"http:\/\/en.wiktionary.org\/wiki\/pain_in_the_ass?rdfrom=Pain_in_the_ass\">PITA<\/a>. Different resolutions, screen sizes, CPU powers and the list goes on. So, if you are thinking of Android game programming in a more professional way, you will have to get more that one device in order to cover all bases, from low-end to the high-end devices.<\/p>\n<p><u>GC is your enemy<\/u><br \/>\nGood games provide first of all a smooth experience to their players. You have to avoid hiccups during game play and as you might have guessed, hiccups are caused by Garbage Collections in Android. It is really a &#8220;stop the world&#8221; procedure which unfortunately gets noticed by the users. The best advice on this is to make absolutely sure that you do not create unnecessary objects. Your game consists actually of a main loop, that is executed multiple times per second, so this makes things worse. The resources are rather scarce in the mobile world, so proceed with big caution.<\/p>\n<p><u>Be Patient<\/u><br \/>\nYou probably have heard all those stories about creating a &#8220;game&#8221; in a weekend or a &#8220;few hours&#8221; time. Yeah, right&#8230; Let me warn you, creating a non-trivial game requires a great amount of effort and above all, patience.<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/4.bp.blogspot.com\/-Tf0tHS5171I\/TiW05-st1xI\/AAAAAAAAAE8\/xp1FDXktINY\/s1600\/multiple_blastball_laser.jpg\"><img decoding=\"async\" border=\"0\" height=\"320\" src=\"http:\/\/4.bp.blogspot.com\/-Tf0tHS5171I\/TiW05-st1xI\/AAAAAAAAAE8\/xp1FDXktINY\/s320\/multiple_blastball_laser.jpg\" width=\"214\" \/><\/a><\/div>\n<p><u>Assets? What is this?<\/u><br \/>\nOk, Byron and I are programmers at heart. Hardcore. Creating &#8220;art&#8221; sounds a bit bizarre to us. I believe that the term <a href=\"http:\/\/www.urbandictionary.com\/define.php?term=programmer+art\">programmer&#8217;s art<\/a> is a very successful and representative one. If you can afford to hire someone to create your graphics and sound, do it without thinking twice. Otherwise, you will have to make the most out of the available tools. We used <a href=\"http:\/\/www.gimp.org\/\">GIMP<\/a> for our image editing needs and I think that we actually managed to create some decent art work (mainly Byron).<\/p>\n<p><u>Beta testers wanted<\/u><br \/>\nWhen near the end of development, make sure to beta test your game. Find some friends or relatives and let them experiment with your game. Ideally, you should be around when they play with it. Watch them and see what they liked, what troubled them and what felt weird to them. This feedback is invaluable, trust me on that. We were lucky enough to have some great <a href=\"http:\/\/www.javacodegeeks.com\/2011\/05\/jcg-studios-arkdroid-beta-launch.html\">beta testers<\/a> which helped us track some bugs and gave helpful advice (thank you Pelagia, Eleftheria, Ben).<\/p>\n<p><u>Just ship<\/u><br \/>\nIt is quite common among developers to find unfinished projects. Applications that could have changed the world and games that could have written history, but instead they gather dust forgotten inside old hard disks. Fight all excuses and take the dive:<br \/>\n&#8211; I cannot ship yet, it is not done&#8230;<br \/>\n&#8211; Just ship&#8230;<br \/>\n&#8211; Hey, this function does not perform as well&#8230;<br \/>\n&#8211; Just ship!<br \/>\n&#8211; But I haven&#8217;t finished feature X&#8230;<br \/>\n&#8211; Just ship!!<br \/>\n&#8211; Yes, but my competition has feature Y&#8230;<br \/>\n&#8211; Just ship!!<br \/>\n&#8211; With only 100 levels?&#8230;<br \/>\n&#8211; Just ship!!!<br \/>\nJust ship the thing, get your user&#8217;s feedback and build on that.<\/p>\n<p><u>Don&#8217;t quit your day job just yet<\/u><br \/>\nThis is a very common advice but I would like to repeat it here. Don&#8217;t rush into making quick decisions like quitting your day job. Mobile market is a very strange beast and while it could make you a millionnaire, it could also leave you scratching your head as why your super-duper game does not make a damned sell.<\/p>\n<p><u>Game development is life changing<\/u><br \/>\nI personally come from a hardcore enterprise programming background (JEE to the max). You probably know the drill: persist some data, commit that transaction, generate some reports, move the data again, etc etc. This can get boring after a while. Game dev however is a totally refreshing change, a brave new world that I am happy to have found.<\/p>\n<p><u>Enjoy the game<\/u><br \/>\nFinally, make sure that you make something you actually like yourself. If you get bored by your very own game, it is almost certain that you will drop out midway&#8230; or that you will end up with a horrible game. We decided to start our endeavor with an all-time classic. Who does not love Arkanoid?<\/p>\n<p>So, that&#8217;s all folks&#8230; Don&#8217;t forget to share! And of course, do not forget to check out our new Android Game, <a href=\"http:\/\/jcgstudios.com\/games\/arkdroid\/\">ArkDroid<\/a>. You feedback will be more than helpful!<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/3.bp.blogspot.com\/-n99pqdxWzqM\/ThBFy-5CGmI\/AAAAAAAAABg\/LfSrtmW-RaQ\/s1600\/multiple_laser.jpg\"><img decoding=\"async\" border=\"0\" height=\"200\" src=\"http:\/\/3.bp.blogspot.com\/-n99pqdxWzqM\/ThBFy-5CGmI\/AAAAAAAAABg\/LfSrtmW-RaQ\/s200\/multiple_laser.jpg\" width=\"133\" \/><\/a><a href=\"http:\/\/1.bp.blogspot.com\/-sEqMxR7YZnY\/ThBGdHcIYnI\/AAAAAAAAABs\/S6iKs2lycyk\/s1600\/multiple_sticky.jpg\"><img decoding=\"async\" border=\"0\" height=\"200\" src=\"http:\/\/1.bp.blogspot.com\/-sEqMxR7YZnY\/ThBGdHcIYnI\/AAAAAAAAABs\/S6iKs2lycyk\/s200\/multiple_sticky.jpg\" width=\"133\" \/><\/a><a href=\"http:\/\/1.bp.blogspot.com\/-0dr410FpxAA\/TgdJc44bfvI\/AAAAAAAAADg\/GyMLvayT_rc\/s1600\/arkdroid_ingame.jpg\"><img decoding=\"async\" border=\"0\" height=\"200\" src=\"http:\/\/1.bp.blogspot.com\/-0dr410FpxAA\/TgdJc44bfvI\/AAAAAAAAADg\/GyMLvayT_rc\/s200\/arkdroid_ingame.jpg\" width=\"133\" \/><\/a><\/div>\n<p><strong><i>Related Articles :<\/i><\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/06\/jcg-studios-arkdroid-official-launch.html\">JCG Studios &#8211; ArkDroid official launch<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/06\/android-game-development-tutorials.html\">Android Game Development Tutorials<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an independent mobile game studio based on Athens, Greece. JCG here stands for Just Cool Games, it is our other acronym, except for Java Code Geeks of course. Our platform &hellip;<\/p>\n","protected":false},"author":3,"featured_media":46,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[651],"class_list":["post-719","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-games","tag-featured"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Game Postmortem - ArkDroid Development - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Game Postmortem - ArkDroid Development - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2011-12-30T12:36:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-30T22:56:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ilias Tsagklis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ilias Tsagklis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html\"},\"author\":{\"name\":\"Ilias Tsagklis\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\"},\"headline\":\"Android Game Postmortem &#8211; ArkDroid Development\",\"datePublished\":\"2011-12-30T12:36:00+00:00\",\"dateModified\":\"2012-10-30T22:56:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html\"},\"wordCount\":1603,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"keywords\":[\"featured\"],\"articleSection\":[\"Android Games\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html\",\"name\":\"Android Game Postmortem - ArkDroid Development - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"datePublished\":\"2011-12-30T12:36:00+00:00\",\"dateModified\":\"2012-10-30T22:56:16+00:00\",\"description\":\"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/12\\\/android-game-postmortem-arkdroid.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/android\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Android Games\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/android\\\/android-games\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Android Game Postmortem &#8211; ArkDroid Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\",\"name\":\"Ilias Tsagklis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"caption\":\"Ilias Tsagklis\"},\"description\":\"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.\",\"sameAs\":[\"http:\\\/\\\/www.iliastsagklis.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/iliastsagklis\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ilias-tsagklis\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Game Postmortem - ArkDroid Development - Java Code Geeks","description":"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html","og_locale":"en_US","og_type":"article","og_title":"Android Game Postmortem - ArkDroid Development - Java Code Geeks","og_description":"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an","og_url":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2011-12-30T12:36:00+00:00","article_modified_time":"2012-10-30T22:56:16+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","type":"image\/jpeg"}],"author":"Ilias Tsagklis","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ilias Tsagklis","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html"},"author":{"name":"Ilias Tsagklis","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e"},"headline":"Android Game Postmortem &#8211; ArkDroid Development","datePublished":"2011-12-30T12:36:00+00:00","dateModified":"2012-10-30T22:56:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html"},"wordCount":1603,"commentCount":6,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","keywords":["featured"],"articleSection":["Android Games"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html","url":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html","name":"Android Game Postmortem - ArkDroid Development - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","datePublished":"2011-12-30T12:36:00+00:00","dateModified":"2012-10-30T22:56:16+00:00","description":"Hello guys, As you might have noticed, we have recently delved into the world of mobile game programming. This was done after creating JCG Studios, an","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2011\/12\/android-game-postmortem-arkdroid.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Android","item":"https:\/\/www.javacodegeeks.com\/category\/android"},{"@type":"ListItem","position":3,"name":"Android Games","item":"https:\/\/www.javacodegeeks.com\/category\/android\/android-games"},{"@type":"ListItem","position":4,"name":"Android Game Postmortem &#8211; ArkDroid Development"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e","name":"Ilias Tsagklis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","caption":"Ilias Tsagklis"},"description":"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.","sameAs":["http:\/\/www.iliastsagklis.com\/","https:\/\/www.linkedin.com\/in\/iliastsagklis"],"url":"https:\/\/www.javacodegeeks.com\/author\/ilias-tsagklis"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=719"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/719\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/46"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}