<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bitongo &#187; Games</title>
	<atom:link href="http://blog.bitongo.com/index.php/category/games/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bitongo.com</link>
	<description>iOS development and mobile games</description>
	<lastBuildDate>Sat, 02 Aug 2014 20:17:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>What&#8217;s going on with Bitongo and Soctics</title>
		<link>http://blog.bitongo.com/index.php/2014/07/whats-going-on-with-bitongo-and-soctics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=whats-going-on-with-bitongo-and-soctics</link>
		<comments>http://blog.bitongo.com/index.php/2014/07/whats-going-on-with-bitongo-and-soctics/#comments</comments>
		<pubDate>Sat, 26 Jul 2014 14:29:24 +0000</pubDate>
		<dc:creator>Gable</dc:creator>
				<category><![CDATA[App]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[idevblogaday]]></category>
		<category><![CDATA[Indie Life]]></category>

		<guid isPermaLink="false">http://blog.bitongo.com/?p=801</guid>
		<description><![CDATA[I was shocked when I realized the last blog post we published here is more than a year old. Time does fly when you are busy! We are alive and well, in case you were wondering. We&#8217;ve decided last year &#8230; <a href="http://blog.bitongo.com/index.php/2014/07/whats-going-on-with-bitongo-and-soctics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was shocked when I realized the last blog post we published here is more than a year old. Time does fly when you are busy! We are alive and well, in case you were wondering. We&#8217;ve decided last year to balance client work and own product development. It&#8217;s a precarious balancing act at times but it seems to be working out very well so far for us.</p>
<p><span id="more-801"></span></p>
<p>We create all kinds of mobile and web apps for clients; we are not talking about games here but business / utility apps. As clients usually want a &#8216;mobile&#8217; app and not an iOS app anymore, we decided to go cross platform with Xamarin. It&#8217;s a great choice as it gives you the ability to still publish native apps on different devices instead of dealing with HTML5-based &#8216;solutions&#8217;.</p>
<p>We are also creating our new game in Unity which means finally we are going cross-platform with games as well! Stay tuned for that, it&#8217;s coming soon!</p>
<p>So many of you have been asking about the Android version of Soctics.. believe me, nothing would make me happier than having it already available. We&#8217;ve started the porting actually a long time ago but for various reasons we are always hitting one wall or another..</p>
<p>However, we haven&#8217;t given up on bringing Soctics to the world outside iOS. We&#8217;ll port it with Unity and hopefully still this year a significantly bigger audience can enjoy our competitive turn based football game <img src='http://blog.bitongo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After the Unity port is complete, we&#8217;ll be able to introduce some new stuff in Soctics but it will have to wait for now. Mostly we are talking about some iterative changes and probably some cosmetics, nothing that would re-shape the game. We are pretty satisfied with how the game feels at the moment.</p>
<p>That&#8217;s it folks!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitongo.com/index.php/2014/07/whats-going-on-with-bitongo-and-soctics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How We Used UIWebView along with LaunchRock to Engage Mobile Users</title>
		<link>http://blog.bitongo.com/index.php/2012/09/how-we-used-uiwebview-along-with-launchrock-to-engage-mobile-users/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-we-used-uiwebview-along-with-launchrock-to-engage-mobile-users</link>
		<comments>http://blog.bitongo.com/index.php/2012/09/how-we-used-uiwebview-along-with-launchrock-to-engage-mobile-users/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 22:11:39 +0000</pubDate>
		<dc:creator>f3r3nc</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[idevblogaday]]></category>

		<guid isPermaLink="false">http://blog.bitongo.com/?p=693</guid>
		<description><![CDATA[This is another guest post by Ferenc, about how LaunchRock was modified to show up nicely on a UIWebView. If you&#8217;ve ever wanted built a landing page or had the need for one, you&#8217;ve provably heard of LaunchRock. If not, have &#8230; <a href="http://blog.bitongo.com/index.php/2012/09/how-we-used-uiwebview-along-with-launchrock-to-engage-mobile-users/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is another guest post by Ferenc, about how LaunchRock was modified to show up nicely on a UIWebView.</p>
<p>If you&#8217;ve ever wanted built a landing page or had the need for one, you&#8217;ve provably heard of <a href="http://launchrock.com">LaunchRock</a>. If not, have a quick look. LaunchRock makes an extremely good job at making it super easy to build a landing page. No HTML knowledge is needed. Among many features, the page lets your future customers share about your idea / app / future venture on Twitter, Facebook and LinkedIn. This is a great way to collect emails of possible futures customers as well as starting to build up the buzz about it.</p>
<p><span id="more-693"></span>When we decided to create a new app of <a href="http://soctics.com">Soccer Tactics Multiplayer</a> instead of doing an update, it was clear that we had to use cross promotion to get our existing players know about our new product. For this, we built a LaunchRock site to collect the emails of our fans. Although, we have built a way to talk to them via <a title="Our Customer Communication Tools" href="http://blog.bitongo.com/index.php/2012/09/our-customer-communication-tools/">Message Of The Day and feedback</a>, about which I wrote last week, it was just a simple way of putting out text in front of the players.</p>
<p><img class="alignleft size-full wp-image-694" title="AlertInterested" src="http://blog.bitongo.com/wp-content/uploads/2012/09/AlertInterested.png" alt="AlertView" width="279" height="175" /></p>
<p>We did try this first by simply showing the url, but only our most active and addicted players would take the effort to actually read the url and then open Safari and then fill the form. Not very effective and also, it turned out later, the mobile representation of the LaunchRock site was not that nice as it was on the desktop.</p>
<p>Since we wanted to extend our internal <a title="Our Customer Communication Tools" href="http://blog.bitongo.com/index.php/2012/09/our-customer-communication-tools/">Message Of The Day service</a> for long time, in a way that it can show media rich content, it was the time to do so. Instead of showing a default UIAlertView, we modified it to be able to show web content in a UIWebView. This is great, because we can now open pictures, videos if we liked, not just UIAlertViews.</p>
<p>The rich MOTD looked exactly like the one on the right. We are still hosting it <a title="Soctics LaunchRock" href="http://soctics.com/launch.html">http://soctics.com/launch.html</a>. If you have look, there are a few things to notice.</p>
<p><a style="color: #ff4b33; line-height: 24px; font-size: 16px;" href="http://blog.bitongo.com/wp-content/uploads/2012/09/motd_launch1.png"><img class="alignright size-full wp-image-716" title="MOTD Launch1" src="http://blog.bitongo.com/wp-content/uploads/2012/09/motd_launch1.png" alt="motd_launch1" width="320" height="480" /></a></p>
<p>There are two teasing pictures on the top of this screen so big that it actually won&#8217;t fit into the whole screen. This was good thing for two reasons:</p>
<ol>
<li>We hoped, both pictures were eye catchy and it would engage our previous game&#8217;s players and</li>
<li>LaunchRock part takes some time to load at the bottom and while it gets loaded hopefully players are still watching the second picture.</li>
</ol>
<p>Once LaunchRock loaded, it turned out that it wasn&#8217;t looking nice on a mobile screen. The font size was too small and the whole page could be scrolled sideways. Although LaunchRock&#8217;s support was quick and friendly saying they are working on the mobile version, we did not have time to wait so did our own way <img src='http://blog.bitongo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It included a quite easy change within the relevant <a title="launch.css" href="http://soctics.com/launch.css">launch.css</a> and another one to duplicate the email form.</p>
<p>The first part in the css is about to fit LaunchRock nicely on an iPhone. (We only targeted those customers. Like 90% of Soccer Tactics games was played on an iPhone). Adjusting the text in the middle and making it bigger so it&#8217;s easy to read without pinch-zooming.</p>
<p>The second part, to duplicate the email entry form, was done to maximize the likelihood of the conversion. On a mobile device, only some part of the page is visible and we wanted the form to appear two times.</p>
<p>If you have a look at the source of the html how it was done, there is some nasty things going on. (I must admit, I get dirty when it comes to html <img src='http://blog.bitongo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>Here is the relevant part:</p>
<pre class="brush: jscript; title: ; notranslate">
 var count=0;
 function addSignup() {
 count++;
 if (count==14) {
 var y = $('#signupform-8M3HZA8H');
 var x = y.clone(true,true);
 x.attr(&quot;id&quot;,&quot;signupform2-8M3HZA8H&quot;);
 x.prependTo('#inviteform8M3HZA8H');&lt;/code&gt;

$(&quot;#signupform2-8M3HZA8H &gt; #email-8M3HZA8H&quot;).change(function(){
 $(&quot;#signupform-8M3HZA8H &gt; #email-8M3HZA8H&quot;).attr(&quot;value&quot;,this.value);
 })
 }
 }

head.js(
 &quot;http://launchrock-ignition.s3.amazonaws.com/ignition.1.1.js&quot;);
 head.ready( function() {
 $('#launch').bind('DOMNodeInserted', function(event) {
 addSignup();
 });
 });
</pre>
<p>There are a few things going on here.</p>
<ol>
<li>There is a &lt;div&gt; in the html body with id=launch.</li>
<li>The content along with the id of that div will be modified once the ignition part is downloaded.</li>
<li>Before that modification, the addSignup() function is added to that div&#8217;s DOMNodeInserted event to catch when the div is being modified to contain the LaunchRock part.</li>
<li>The addSignup function simply clones and puts to the right place the signup form. It also changes the cloned form&#8217;s id otherwise the the sign up form would be moved not copied.</li>
<li>addSignup only clones for the 14th time the div is modified. After some trial and error it turned out that after the 14th  DOM modification, the sign up part could be cloned. (I am a bit surprised this code still works).</li>
</ol>
<p>Okay, was it worth it? Well, a nice thing about LaunchRock is that is shows you analytics about the conversions  That showed that it was 3x less likely that a visitor would sign up but since it got delivered so many times it ended up being 8x more sign up than before.</p>
<p>There was one more (sneaky) thing we did while delivered our MOTD but it will be another post.</p>
<p>If you are interested in our MOTD module as a service, feel free to sign up for it&#8217;s LaunchRock site: <a href="http://motd.bitongo.com/">motd.bitongo.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitongo.com/index.php/2012/09/how-we-used-uiwebview-along-with-launchrock-to-engage-mobile-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme App Makeover: The Evolution of Soctics</title>
		<link>http://blog.bitongo.com/index.php/2012/05/extreme-app-makeover-the-evolution-of-soctics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=extreme-app-makeover-the-evolution-of-soctics</link>
		<comments>http://blog.bitongo.com/index.php/2012/05/extreme-app-makeover-the-evolution-of-soctics/#comments</comments>
		<pubDate>Thu, 31 May 2012 17:17:01 +0000</pubDate>
		<dc:creator>Gable</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[idevblogaday]]></category>
		<category><![CDATA[Indie Life]]></category>

		<guid isPermaLink="false">http://blog.bitongo.com/?p=600</guid>
		<description><![CDATA[We originally debuted Soccer Tactics in 2009 on the App Store and a year later we introduced online multiplayer in it. Our users really liked the game but we felt there was so much more in the game we haven&#8217;t &#8230; <a href="http://blog.bitongo.com/index.php/2012/05/extreme-app-makeover-the-evolution-of-soctics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/05/Small-Icon.png"><img class="alignleft size-full wp-image-590" title="Small Icon" src="http://blog.bitongo.com/wp-content/uploads/2012/05/Small-Icon.png" alt="" width="57" height="57" /></a>We originally debuted Soccer Tactics in 2009 on the App Store and a year later we introduced online multiplayer in it. Our users really liked the game but we felt there was so much more in the game we haven&#8217;t explored yet. Last year in November we started out to create a mega-update with a total app overhaul, here is what happened.<span id="more-600"></span></p>
<p>We gathered the numerous user feedback we received during the years and we discussed them about how we could incorporate the changes suggested by the users. Although we haven&#8217;t implemented everything, we used their feedback a lot during building our new features list. The original game was iPhone-only and we wanted to introduce an iPad version as well so we decided to create a separate binary for the iPad and keep the original for the iPhone. This is the historic reason behind not going universal.</p>
<p>We decided we lack on the following major fronts:</p>
<ul>
<li>lack of customization of team colors</li>
<li>poor graphics</li>
<li>poor sounds</li>
<li>online mode is not deep enough</li>
<li>AI not challenging enough</li>
</ul>
<p>The first two points got handled by our new graphics design team. Have a look at thebefore / after images below <img src='http://blog.bitongo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/05/mza_2239977378065746143-e1338483980454.png"><img class="alignleft size-full wp-image-580" title="soctics_classic_shot1" src="http://blog.bitongo.com/wp-content/uploads/2012/05/mza_2239977378065746143-e1338483980454.png" alt="" width="290" height="435" /></a></p>
<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/05/iphone_1_ingame-e1338483918406.jpg"><img class="alignleft size-full wp-image-585" title="iphone_1_ingame" src="http://blog.bitongo.com/wp-content/uploads/2012/05/iphone_1_ingame-e1338484036123.jpg" alt="" width="290" height="435" /></a></p>
<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/05/mza_3466851513732414897.png"><img class="alignleft size-full wp-image-578" title="soctics_classic_shot3" src="http://blog.bitongo.com/wp-content/uploads/2012/05/mza_3466851513732414897-e1338484287467.png" alt="" width="295" height="442" /></a></p>
<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/05/iphone_3_lobby.jpg"><img class="alignleft size-full wp-image-587" title="iphone_3_lobby" src="http://blog.bitongo.com/wp-content/uploads/2012/05/iphone_3_lobby-e1338484346890.jpg" alt="" width="295" height="442" /></a></p>
<p>Graphics aside, the sounds proved to be another big task as well. We implemented an AI for the crowd that would react to events during the match, like a big goal save, a nice pass, etc. This increases the ambience atmosphere tremendously but it is not a simple thing to implement properly!</p>
<p>The online mode got re-written from the ground up using Erlang. F3r3nc is supposed to write about his experience with this system soon. Right now we provide our own matchmaking for friendly matches and official, &#8216;league&#8217; matches as well. Implementing our own solution has the multiplatform support advantage over simply just using Game Center, although we did integrate GC as well for achievements and for friendly challenges.</p>
<p>We also started experimenting with new gameplay changes:</p>
<ul>
<li>kick-off mode</li>
<li>new player types</li>
<li>improved control mechanisms</li>
<li>ball prediction: show where the ball lands at the end of the turn</li>
</ul>
<p>The final result is essentially such a changed game that we had to release it as a separate product because our original Soccer Tactics players wanted to keep the &#8216;classic&#8217; version alive and intact as well.</p>
<p>Especially the new feature called Binocular which predicts ball movement seemed to be a game changer. The feature is great as it gives players more control over their attacks but we did not want to upset the balance in the game. We decided to limit the number of binoculars to be used during the matches. These binoculars are consumable items that players can receive when they are playing online and there is an option to purchase them as well. We put emphasis on the mechanics of receiving / spending binoculars so it is not mandatory to use the IAP options at all.</p>
<p>We now look at Soctics League as the evolution of Soccer Tactics, putting our experience and feedback into the successor and making a superior product in all sense. We are very proud of it and can&#8217;t wait to meet you all online! <img src='http://blog.bitongo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can check out our official website for <a title="Officail Soctics League Website" href="http://www.soctics.com">Soctics</a> for the trailer and the download links.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitongo.com/index.php/2012/05/extreme-app-makeover-the-evolution-of-soctics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Competitive Mobile Gaming</title>
		<link>http://blog.bitongo.com/index.php/2012/05/competitive-mobile-gaming/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=competitive-mobile-gaming</link>
		<comments>http://blog.bitongo.com/index.php/2012/05/competitive-mobile-gaming/#comments</comments>
		<pubDate>Wed, 02 May 2012 22:45:57 +0000</pubDate>
		<dc:creator>Gable</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[idevblogaday]]></category>

		<guid isPermaLink="false">http://blog.bitongo.com/?p=543</guid>
		<description><![CDATA[I believe that smartphones and FB are the primary catalysts for casual games becoming truly mainstream. However, these games are usually frown upon by hardcore gamers who prefer skill-based, competitive games. Quake, Counter Strike, Starcraft are all great examples of &#8230; <a href="http://blog.bitongo.com/index.php/2012/05/competitive-mobile-gaming/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.bitongo.com/wp-content/uploads/2012/03/trophy.png"><img class="alignleft size-full wp-image-544" title="trophy" src="http://blog.bitongo.com/wp-content/uploads/2012/03/trophy.png" alt="" width="99" height="88" /></a>I believe that smartphones and FB are the primary catalysts for casual games becoming truly mainstream. However, these games are usually frown upon by hardcore gamers who prefer skill-based, competitive games. Quake, Counter Strike, Starcraft are all great examples of such games and the list is long for desktop, but what about the mobile scene?</p>
<p><span id="more-543"></span></p>
<p>The iOS market is more than 300 million strong and although competitive gaming is a niche, in such a big market it is now a reasonable market segment to target. Think about the successes of Deadlock or Hero Academy and it&#8217;s clear that multiplayer-focused games are not limited to desktop anymore.</p>
<p>We are in the final stages of creating our competitive game ourselves. We decided to create a Mac + iOS game where you can play against anyone with a Mac / iPhone / iPod Touch / iPad. As we are blending mobile gaming with desktop gaming here, we had to consider the priorities. We decided to treat the game as a mobile game in essence. I would like to share with you the decisions we made during the development:</p>
<ol>
<li><strong>brand new game</strong>: as we were building on our previous game Soccer Tactics, we originally planned to introduce the new gameplay and competition system as a monster-update. However, existing players really liked the original version and our new version completely changes the whole gameplay experience. Finally we decided to go with a totally new game</li>
<li><strong>skill matters</strong>: although luck can never be ruled out from any game / sport / competition, statistically speaking a good player should beat a weak player more often than not. This might seem trivial at first but balancing a game where a beginner still has chance to win against a seasoned player while retaining the importance of experience and practice is very time consuming!</li>
<li><strong>elegant gameplay</strong>: we were trying to keep our ruleset small and give the players the ability to practice and hone devious skills and strategies in our game space. We provide a practice mode where the player can focus on preparing different strategies</li>
<li><strong>no prolonged games</strong>: this is a very important aspect when we are in the context of mobile games. The majority of our matches finishes under 15 minutes.</li>
<li><strong>Game Center only for fun</strong>: when we started development, the Mac did not support GC at all. Now we know that Mountain Lion finally integrates this great feature and we might consider moving towards GC in the future. For now, players can only play friendly games with each other via GC and our league system is served by our own multiplayer server.</li>
<li><strong>Own Multiplayer Service</strong>: as we couldn&#8217;t use GC on all our target platforms and we already had a pretty good multiplayer backend with our previous version of Soctics, we decided to roll our own multiplayer service. This gives us the freedom of staying totally platform-agnostic which might come very handy later as well.</li>
<li><strong>connect players</strong>: to help the growth of our community, we wanted to implement chat in our game. As we had mixed experience with having chat in a game before, we decided to implement an &#8216;offending player report&#8217; system along with the possibility to &#8216;parent lock&#8217; the chat feature. We are considering an official forum as well to further facilitate player-to-player communication</li>
<li><strong>periodic tournaments</strong>: this is a feature we are very excited about. We will run tournaments for specific periods of time. This can be used for several purposes, from giving out great prizes to pure ego-boosting challenges! Multiplayer in general is great for user retention, organizing tournaments is an even stronger feature!</li>
<li><strong>Skill based rankings: </strong>We are using the ELO ranking methodology for ranking players in our tournaments. It is a great system and I advise to read about it if you are not familiar with it. Basically as people keep playing more and more, their ranking will display their relative strength within their league more and more accurately.</li>
<li><strong>Deal with cheaters: </strong>Multiplayer games have their share of cheaters all the time. As we want to keep the league system as clean as possible from cheaters, we decided to make it difficult and very time-consuming to game the ranks and to cheat our league system.</li>
</ol>
<p>As you can see there are many different aspects you have to take into consideration. It is also a good warning for anyone who plans to implement multiplayer / competitions in their game. It really blows up your scope! You can expect to spend at least as much time with the multiplayer mode as with all the rest of the game.</p>
<p>However, if you choose to move on and implement a strong competitive mode in your app, you will have one of the most powerful retention factors I have ever seen in a game. Our original Soccer Tactics game debuted in 2009, we introduced the multiplayer mode in 2010, and we have players who have been playing with the game ever since! How often do you get such loyal users in the mobile game space?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitongo.com/index.php/2012/05/competitive-mobile-gaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Games vs Building Engines (aka. Engineeritis)</title>
		<link>http://blog.bitongo.com/index.php/2012/01/building-games-vs-building-engines-aka-engineeritis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-games-vs-building-engines-aka-engineeritis</link>
		<comments>http://blog.bitongo.com/index.php/2012/01/building-games-vs-building-engines-aka-engineeritis/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 00:52:39 +0000</pubDate>
		<dc:creator>Gable</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[idevblogaday]]></category>
		<category><![CDATA[Indie Life]]></category>

		<guid isPermaLink="false">http://www.bitongo.com/?p=503</guid>
		<description><![CDATA[Recently I have been thinking more and more about the question: what am I really doing when I&#8217;m writing code? Sure, we have been developing iOS games since 2008 so the answer seems straightforward, but if I stop and take &#8230; <a href="http://blog.bitongo.com/index.php/2012/01/building-games-vs-building-engines-aka-engineeritis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I have been thinking more and more about the question: what am I really doing when I&#8217;m writing code? Sure, we have been developing iOS games since 2008 so the answer seems straightforward, but if I stop and take an honest look, the answer is pretty astonishing. Most of the time I&#8217;ve spent with coding has been spent with creating our own little &#8216;engines&#8217;, and then dropping in the gamecontroller classes, polishing them a bit, then release! If I could talk to my younger self, I would definitely talk him out of building engines, maybe even emphasize it with a slap or two, and here&#8217;s why.</p>
<p><span id="more-503"></span></p>
<p>In most of our 2D games we used OpenGL and you might know what that means:</p>
<ul>
<li>Creating your own framework for sprites, frames, entities, animations</li>
<li>(particle systems)</li>
<li>if your game is level-based, some kind of map data structure</li>
<li>map editor (it would preferrably be a separate product, easy to use etc.)</li>
</ul>
<p>What if you need some physics? Nothing fancy for sure, just some collision detections, maybe bouncing here and there&#8230; Oops another couple thousand lines? What? You&#8217;d like to have a stable physics which is not juttery, does not depend on frame rate and all that kind of small-text-details stuff you only recognize you need when you are already knee-deep in&#8230; your own physics engine code? Sure it&#8217;s almost done so lets finish it anyway! Oh, 1 month passed already? Wow!</p>
<p>The list could go on and on. It&#8217;s impossible to estimate properly how long writing your own engine will take if you don&#8217;t have considerable experience in it already, and do you really want to spend so much time on it? Every time you re-invent the wheel, you are wasting precious time of real game development! If it takes for you to develop a game in 4 months and during that period you were building an engine in the first 3 months, what were you really doing? Wouldn&#8217;t it have been better to learn to use existing tools in a couple of weeks and then focus on the game aspect for 3 months instead of 1? The real value is what the users will finally experience in the game, not the fancy code you have managed to create to solve mind-boggling low-level technical problems!</p>
<p>I have fallen into the building engine category too many times. I think too many people fall into this category. Maybe it is an engineer hubris, we take pride in our work, building something from scratch sounds great because we feel we are not depending on any middleware or already existing tool and we will be able to create the perfect little engine that our app needs. I do not believe that anymore. We are going to create limitations in our own engine no matter what and we will manage to accept those limitations happily.</p>
<p>Most of the devs are not supposed to be building engines but should use the existing ones and even if they would hit some limitations on the engine side (maybe this is more of just a simple fear than a real fact), it&#8217;s still quicker to find workarounds in an existing system.</p>
<p>So what&#8217;s my advice really?</p>
<ol>
<li>When problem-solving, stay as high-level as possible. When I&#8217;m talking about problem-solving, I am talking about creating prototypes. Best ones would be that would work on paper, just grab a pen and a scissor and start creating your game! If that&#8217;s not feasible, go with a language you are very comfortable with and can code very quickly!</li>
<li>When you have an amazingly solid game mechanism, choose an existing tool / engine that would cover the biggest subset of your requirements</li>
<li>The technology part is just 1 aspect of a game, it is not the game itself! Even if you hit a limit with a chosen engine, ask yourself the question: does this limit really affect my core gameplay? Is it crucial from a user experience point of view?</li>
<li>Don&#8217;t reinvent the wheel! I&#8217;m begging you! All the energy you&#8217;ve put in your own physics / rendering / sound engine should go into gameplay balance, elegance, rewarding systems, player immersion, storyline, character design etc!</li>
</ol>
<p>I am not saying there are no cases where writing everything from scratch is a bad idea. I am saying people usually overestimate their needs / underestimate existing tools and focus on things that are, essentially, a waste of time.</p>
<p>So which one are you? Are you an Engine Dev, or a Game Dev, really?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bitongo.com/index.php/2012/01/building-games-vs-building-engines-aka-engineeritis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
