<?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>Lemon Team &#187; Blog</title>
	<atom:link href="http://www.lemonteam.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lemonteam.com</link>
	<description>Game Development &#38; Porting</description>
	<lastBuildDate>Tue, 26 Feb 2013 09:39:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Welcome to Windows 8</title>
		<link>http://www.lemonteam.com/game-development/welcome-to-windows-8/</link>
		<comments>http://www.lemonteam.com/game-development/welcome-to-windows-8/#comments</comments>
		<pubDate>Mon, 21 Jan 2013 16:18:53 +0000</pubDate>
		<dc:creator>Miguel Villar</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Lemon Team]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://www.lemonteam.com/?p=488</guid>
		<description><![CDATA[So finally, we jumped into the Windows 8 platform! Today, Mahjong Travel is also available on Windows 8 Store, for both x86/x64 PCs as well as ARM devices. Coming soon, the game will be also available on Windows Phone We&#8217;ve learnt a lot from this new platform, and starting today we want to share our<p><a href="http://www.lemonteam.com/game-development/welcome-to-windows-8/">More &#8594;</a></p>]]></description>
			<content:encoded><![CDATA[<p>So finally, we jumped into the Windows 8 platform!</p>
<p>Today, <a href="http://apps.microsoft.com/windows/app/mahjong-travel/fc736767-a5fa-428c-9749-7a495e687d65" target="_blank">Mahjong Travel is also available on Windows 8 Store</a>, for both x86/x64 PCs as well as ARM devices. Coming soon, the game will be also available on Windows Phone <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>We&#8217;ve learnt a lot from this new platform, and starting today we want to share our know-how experience with our clients for their upcoming projects. Interested in porting some existing title to W8? Don&#8217;t hesitate to contact us and we&#8217;ll take care of all the technical stuff, certification process and policy issues!</p>
<p>Now, enjoying <strong>Mahjong Travel</strong> on your new W8 tablet is a pleasure, but playing on my 30 inch flat panel desktop (Full HD graphics!) isn&#8217;t a worse experience either <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemonteam.com/game-development/welcome-to-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mahjong Travel: It is a beautiful world</title>
		<link>http://www.lemonteam.com/android/mahjong-travel-it-is-a-beautiful-world/</link>
		<comments>http://www.lemonteam.com/android/mahjong-travel-it-is-a-beautiful-world/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 17:09:02 +0000</pubDate>
		<dc:creator>Miguel Villar</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Lemon Team]]></category>

		<guid isPermaLink="false">http://www.lemonteam.com/?p=470</guid>
		<description><![CDATA[We made it. Finally Lemon Team released its first IP ever, Mahjong Travel. Despite that the production values aren&#8217;t very high (it is just a mahjong-based game), it&#8217;s been a hard process to make it real, and honestly we&#8217;re proud of the final result. Mainly it goes for iPad and Android tablets (more platforms in<p><a href="http://www.lemonteam.com/android/mahjong-travel-it-is-a-beautiful-world/">More &#8594;</a></p>]]></description>
			<content:encoded><![CDATA[<p>We made it. Finally Lemon Team released its first IP ever, <a href="http://www.lemonteam.com/app/mahjong-travel/" target="_blank">Mahjong Travel</a>. Despite that the production values aren&#8217;t very high (it is just a mahjong-based game), it&#8217;s been a hard process to make it real, and honestly we&#8217;re proud of the final result. Mainly it goes for iPad and Android tablets (more platforms in the future!), and it&#8217;s been localized into 8 languages! If you like traveling as well as playing board/puzzle/mahjong based games, this game is for you! Seriously!!! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>From a technical standpoint, since it&#8217;s meant to run on many platforms (Android, iOS, Windows 8 and Windows Phone, PS Vita and Sony certified devices) and considering we haven&#8217;t used any third-party multi-platform engine, it hasn&#8217;t been easy at all.</p>
<p>But the most challenging part of developing Mahjong Travel has been content creation for sure. The idea behind the game was to create a classic mahjong-solitaire experience while giving players the opportunity to discover amazing places all over the world, feeling as they were traveling during the board resolution.</p>
<p>At the beginning we were just about to include 50 localizations, however we soon found out that amount wasn&#8217;t gonna be close enough. In our research trying to find the most beautiful and enigmatic places around the globe, we understood that not even 1000 places would be enough. There are literally dozens of worth-seen spots on every country, and as we couldn&#8217;t be able to include all of them, we finally decided to include 100 instead of just 50. We tried to add all continents but then we saw we had to remove some. The excluded ones were Australia and the Antarctica, though they&#8217;ll be added as a separate board-pack if the game is a success, which we hope so! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>And specially, it was very hard to look at those beautiful pictures and didn&#8217;t imagine being really there <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  We did realize how much beautiful the world can be. Sadly, looks like we human beings aren&#8217;t able to think about it more frequently! Looks like we are willing to destroy every piece of nature no matter what&#8230; <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>At least, we hope the game serves to raise awareness regarding taking care of the planet, because it&#8217;s the only one we have, it&#8217;s unique in the whole universe and it&#8217;s the one our children will have to live and enjoy. So please, let&#8217;s start taking care of it!</p>
<p>Finally, I would like to thank everybody involved in the game development, directly or indirectly. All of them (programmers, artists, translators, musicians, testers, researchers/travelers) have done a pretty good job! Also, I would like to thank the enormous community of photographers &amp; travelers dedicated to show the most beautiful parts of the world, no matter where they hide, and of course all those sites/blogs that actively render that beauty across the internet every day (below I present some of them, from where we retrieved our list of &#8220;better spots&#8221; for the game).</p>
<p>Thank you travelers and wish us good luck! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://blog.minube.com/" target="_blank">http://blog.minube.com</a> - @minube</li>
<li><a href="http://elpachinko.com/" target="_blank">http://elpachinko.com</a> - @elPachinko</li>
<li><a href="http://lugares1001.blogspot.com.es/" target="_blank">http://lugares1001.blogspot.com.es</a> - @alaxandra</li>
<li><a href="http://www.asaltodemata.com/" target="_blank">http://www.asaltodemata.com</a> - @asaltodemata</li>
<li><a href="http://www.yokmok.com" target="_blank">http://www.yokmok.com</a> - @YokmoK</li>
<li><a href="http://viajes.chavetas.es/" target="_blank">http://viajes.chavetas.es</a> - @viajeschavetas</li>
<li><a href="http://www.ignacioizquierdo.com/blog/" target="_blank">http://www.ignacioizquierdo.com/blog</a></li>
<li><a href="http://destinosactuales.com/" target="_blank">http://destinosactuales.com</a> - @destinoactuales</li>
<li><a href="http://www.diariodelviajero.com" target="_blank">http://www.diariodelviajero.com</a> - @diarioviajero</li>
<li><a href="http://www.buscounviaje.com" target="_blank">http://www.buscounviaje.com</a> - @buscounviaje</li>
<li><a href="http://elpixelviajero.com/" target="_blank">http://elpixelviajero.com</a></li>
<li><a href="http://www.elproximoviaje.com/" target="_blank">http://www.elproximoviaje.com</a> - @elproximoviaje</li>
<li><a href="http://blog.nomaders.com/" target="_blank">http://blog.nomaders.com</a> - @nomaders</li>
<li><a href="http://hombrelobo.com" target="_blank">http://hombrelobo.com</a> - @hombrelobo</li>
<li><a href="http://mecastroseiros.blogspot.com.es" target="_blank">http://mecastroseiros.blogspot.com.es</a></li>
<li><a href="http://www.missviajes.com" target="_blank">http://www.missviajes.com</a> - @missviajes</li>
<li><a href="http://www.pasaporteblog.com/" target="_blank">http://www.pasaporteblog.com</a> - @pasaporteblog</li>
<li><a href="http://www.tremendoviaje.com" target="_blank">http://www.tremendoviaje.com</a> - @tremendoviaje</li>
<li><a href="http://flapyinjapan.com/" target="_blank">http://flapyinjapan.com</a> - @Flapy</li>
<li><a href="http://www.viajablog.com/" target="_blank">http://www.viajablog.com</a> - @viajablog</li>
<li><a href="http://www.viajarsinbrujula.es" target="_blank">http://www.viajarsinbrujula.es</a></li>
<li><a href="http://www.viajealatardecer.com" target="_blank">http://www.viajealatardecer.com</a> &#8211; @viajeatardecer</li>
<li><a href="http://blog.viajesrockyfotos.com" target="_blank">http://blog.viajesrockyfotos.com</a> &#8211; @jalvarogonzalez</li>
<li><a href="http://www.laviajeraempedernida.com" target="_blank">http://www.laviajeraempedernida.com</a> &#8211; @LaViajeraBlog</li>
<li><a href="http://viajandoporahi.com" target="_blank">http://viajandoporahi.com</a> - @viajandoporahi</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lemonteam.com/android/mahjong-travel-it-is-a-beautiful-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lemon Team celebrates its 4th anniversary!</title>
		<link>http://www.lemonteam.com/lemon-team/lemon-team-celebrates-its-4th-anniversary/</link>
		<comments>http://www.lemonteam.com/lemon-team/lemon-team-celebrates-its-4th-anniversary/#comments</comments>
		<pubDate>Tue, 04 Sep 2012 10:11:20 +0000</pubDate>
		<dc:creator>Miguel Villar</dc:creator>
				<category><![CDATA[Lemon Team]]></category>

		<guid isPermaLink="false">http://www.lemonteam.com/?p=403</guid>
		<description><![CDATA[Hi you all! At the end of August &#8211; beginning of September of 2008, Lemon Team started its professional career as a real established company. Looks like it was yesterday, but many things have happened since then. Almost 90% of spanish start-ups die during their first 3 years of existence. Since we were reaching the<p><a href="http://www.lemonteam.com/lemon-team/lemon-team-celebrates-its-4th-anniversary/">More &#8594;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Hi you all!</p>
<p>At the end of August &#8211; beginning of September of 2008, Lemon Team started its professional career as a real established company. Looks like it was yesterday, but many things have happened since then.</p>
<p>Almost 90% of spanish start-ups die during their first 3 years of existence. Since we were reaching the 4th year we thought it would be a good idea to refresh some aspects of the company, starting from the external side, our website. As you may note, it&#8217;s been completely redesigned, and it is now fully compatible with smartphones and tablets, as well as PC browsers of course. We must congratulate Germán Gonzalez for making such a great work!<br />
But the website renewal is not the unique surprise, as new announcements are coming very soon!!! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-403"></span></p>
<p>But in a day like this we can&#8217;t forget all the individuals who make this project (and a dream!) a reality. We started as a small studio of 3 which eventually became 9 at the summer of 2010, and during all these years a lot of people has contributed exceptionally well to the company. We would like to present all of them (hope we don&#8217;t miss anyone!) sorted in alphabetical order:</p>
<ul>
<li>Belén Albeza</li>
<li>Carlos Montiel</li>
<li>David Soriano</li>
<li>Esteban Platero</li>
<li>Germán González</li>
<li>Juan Escudero</li>
<li><strong>Julio Gorgé</strong> (co-founder)</li>
<li>Juan Luis Gutiérrez</li>
<li>Jose Manuel Fernández</li>
<li>Juan Manuel García</li>
<li>Miguel Ángel Ortuño</li>
<li><strong>Miguel Villar</strong> (co-founder)</li>
<li>Natasha Moskalenko</li>
<li>Pablo Pérez</li>
<li>Renato Grottesi</li>
</ul>
<p>Besides the above ones, we would also thank the collaboration of external individuals, such as Juan Pablo Ferreira, Russell Carroll, James Smith and Damon Jones (from Reflexive Entertaiment), Iosu Palacios (freelance illustrator), David Serrano (freelance music composer), Manuel Villar and Encarna Gutiérrez (investors).</p>
<p>And of course, we can&#8217;t omit  the support of our closest. Everyone running a startup will agree that family support is undoubtedly a key factor for the future success of a company.</p>
<p>Thank you everyone, and please don&#8217;t stop playing video games <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>~ Lemon Team</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemonteam.com/lemon-team/lemon-team-celebrates-its-4th-anniversary/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Including Ads in your mobile games</title>
		<link>http://www.lemonteam.com/android/hello-world/</link>
		<comments>http://www.lemonteam.com/android/hello-world/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 12:53:45 +0000</pubDate>
		<dc:creator>Miguel Villar</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.lemonteam.com/new/?p=1</guid>
		<description><![CDATA[A couple of weeks ago we released Airport Mania: First Flight XP for free. It has passed “ages” since the original release, so Reflexive Entertainment (the copyright owner) decided that it might be a perfect time to let it go free for everyone Taking advantage of the situation they thought it could be a great<p><a href="http://www.lemonteam.com/android/hello-world/">More &#8594;</a></p>]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago we released <a href="http://itunes.apple.com/us/app/airport-mania-first-flight/id393889949?mt=8">Airport Mania: First Flight XP for free</a>. It has passed “ages” since the original release, so Reflexive Entertainment (the copyright owner) decided that it might be a perfect time to let it go free for everyone <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Taking advantage of the situation they thought it could be a great opportunity to get in touch with “in-game advertising”. In the end, people would decide whether it would be better playing for free + ads or just the original experience for one buck.</p>
<p><span id="more-1"></span></p>
<p>So we as developers had to think how to integrate the ads into the game. There was several assumptions to be considered:</p>
<ol>
<ol>
<li>Between each level we should show a screen with 2 ads simultaneously, a small banner at the top plus another bigger on the middle of the screen. The bottom side would be reserved for a Continue/Resume button. It was important (not critical though) that users had to wait X seconds on this screen, or what it is the same, do not allow them to skip the ads. We shouldn’t be naive at this point because although the main goal consisted in experimenting with in-game advertising, earning some coins out of the ad prints was also in everybody’s mind. The following screenshot shows what I tried to explain:
<div class="clear"></div>
<div class="space"></div>
<p><img title="amxp_ads" src="http://www.lemonteam.com/wp-content/uploads/2012/07/amxp_ads.jpg" alt="" width="480" height="320" /></li>
<li>After each X levels, we should show a full-screen-ad or a movie-ad instead of the regular small banners mentioned above.</li>
<li>In the case that it isn’t possible to retrieve ad-contents (by any reason) we should show offline/custom ads included within the game assets.</li>
<li>Be independent of the ad-network, so that we could easily change it in the future.</li>
<li>Supporting both iOS &amp; Android since the game run on those platforms.</li>
</ol>
</ol>
<p><a href="http://www.mobyaffiliates.com/blog/the-best-mobile-advertising-networks-2012/">Choosing the best ad-network</a> wasn’t our work. We just had to think the best way to integrate it into the game. One of the things you learn when entering the problem is that you can either use an integrated “all-in-one” solution (which basically is “platform” that allows advertisers, publishers and developers work altogether) or you can use the specific tools that each ad-network provide to developers directly. In practice, the latter involves that if you implement your in-game ads with an specific SDK and you want to move to another ad-network in the future, you will have to re-write some good code with the new SDK to support it. Even although most of these SDKs are very similar in terms of usage, it doesn’t look like a good idea… <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>So we decided we wanted to look at the first option. How many “integrated” solutions were at our disposal ? What of them were supposed to be the best? Honestly, we don’t know what’s the best. There are a lot of solutions and you can assume each of them has its positive and negative points. These are just a few examples, not necessarily the best, but they’re quite well known: <a href="http://www.admarvel.com/">AdMarvel</a>, <a href="https://www.adwhirl.com/">adwhirl</a>, <a href="http://www.mobclix.com/">mobclix</a>, <a href="http://www.inmobi.com/">InMobi</a>, <a href="http://www.smaato.com/">smaato</a>, …</p>
<p>As a developer integrating the all-in-one solution, you should consider the following issues:</p>
<div class="list-set type-1 list-blue">
<ul>
<li><strong>Ad-networks</strong>: How many ad-networks will I be able to use?</li>
<li><strong>Reliability</strong>: Is it capable of feeding ad-content anytime &amp; anywhere? If it’s not the case, you could at least take advantage of the situation and prepare yourself to show offline ad-content (aka custom ads). Those could be ads presenting other titles of your company or whatever. The lack of ad-content usually depends on the ad-network, but the all-in-one solution may play its part too, so be aware of that!</li>
<li><strong>Features</strong>: Does it support Android? iOS? Windows Phone? Is it able to provide custom-sized ads and full-screen ads? And movie ads? The control panel (server side) is up to the task and easy to use and setup?</li>
<li><strong>Friendly API</strong>: If I want to write some behavior not initially planned on the SDK, or I want to support some specific type of ad that only a few ad-networks provide, does the API help me doing so or it just does the opposite? (putting things harder than they should)</li>
<li><strong>Tech Support</strong>: Do I have a phone number or an e-mail for technical support? Are the company behind the all-in-one solution fast and efficient answering my questions? If I have an specific problem with the ad-network that I’ve chosen to provide the ads, does the technical support get in touch with them to solve the issue faster?</li>
</ul>
</div>
<p>Finally, we ended up using the <strong>AdMarvel</strong> platform, plus <strong>millennialmedia</strong> (aka Millennial) as the ad-network. AdMarvel is an Opera Software company, so we expected a good SDK free of issues, though it wasn’t the case <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> .</p>
<p>And here’s our brief experience using AdMarvel (I will be telling only the negative points since I don’t think the positive are worth telling now):</p>
<div class="list-set type-1 list-yellow">
<ul>
<li>You cannot simply set MAX and MIN banner sizes within your app or set the appropriate sizes in real-time. Sizes are fixed prior to app initialization and they cannot be modified/scaled later, even if you get access to the banner view. This means that whether you receive a banner that is wider than you expected it will show shrinker, or stretched otherwise.</li>
<li>If you want to add a custom effect to the banner, like for example glowing it up while pressing with the finger (as it was a regular button in the game) you will find yourself into serious trouble. You need to figure out the view’s hierarchy in order to retrieve the proper banner view, then its position and size in screen coordinates.</li>
<li>The lack of useful callbacks makes your life harder. There are a lot of events you cannot control because of that.</li>
<li>You have no control over the movie ads. For example, you cannot force users to see the whole video. Barely you can’t interact with them in any way.</li>
<li>There’s no way to know when a Millennial’s fullscreen ad has been closed (note that fullscreen ads are also know as “Interstital”).</li>
<li>On iOS, fullscreen ads are surprisingly slow to render :-S</li>
<li>The SDK documentation is mostly useless from a developer point of view.</li>
<li>And there are surely more things that I’m missing right now…</li>
<li>All the above means that AdMarvel still has a lot of room for improvement, but in the end it worked out <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<div></div>
</div>
<p>And finally, if you have had better experiences using other solutions, drop a comment and let us know!</p>
<p>Thanks in advance!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemonteam.com/android/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Flash in mobile game development now?</title>
		<link>http://www.lemonteam.com/game-development/using-flash-in-mobile-game-development-now/</link>
		<comments>http://www.lemonteam.com/game-development/using-flash-in-mobile-game-development-now/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 09:51:44 +0000</pubDate>
		<dc:creator>Miguel Villar</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Lemon Team]]></category>

		<guid isPermaLink="false">http://www.lemonteam.com/new/?p=91</guid>
		<description><![CDATA[Back in november when Adobe released Flash 11 + AIR 3 I didn’t pay too much attention to it. I have to admit I was too busy to look at it closely (we were pretty focused on “Simplz: Zoo” and other things), but now while moving into new projects I decided to begin a little research on this. I<p><a href="http://www.lemonteam.com/game-development/using-flash-in-mobile-game-development-now/">More &#8594;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Back in november when Adobe released <strong>Flash 11</strong> + <strong>AIR 3</strong> I didn’t pay too much attention to it. I have to admit I was too busy to look at it closely (we were pretty focused on “<em>Simplz: Zoo</em>” and other things), but now while moving into new projects I decided to begin a little research on this. I got an intern lately so it was a great opportunity to have someone really focused in reviewing the technology.</p>
<p><span id="more-91"></span></p>
<p>Flash technology has been flying around for the last few months. Since the official release of Flash 11 + AIR 3, Adobe did show his cards to actually play a main role in the video games industry as a middleware provider. Even big actors like <strong>Epic Games</strong> (UDK) or<strong>Unity Technologies</strong> (Unity 3) have added to the cause. But even though, it’s difficult to realize that we may be using Flash technology as an standard basis in the future. CPU &amp; GPU (mostly the latter) performance has always been the bottleneck on every game development. The more content you present on screen, the worse the performance and Flash has never played well on that field. So what happened with Flash 11? Did Adobe improve things in there?</p>
<p>On a first sight, nobody can ignore that Flash has been installed in almost every computer out there. This means that if you create a game in Flash, “theoretically” everybody will be able to play it. As I said, performance has never been a WIN on Flash, however Adobe claims that Flash 11 definitively supports hardware accelerated rendering (which represents ~90% of the CPU effort of any Flash-based game/web), meaning that things should have improved hugely…</p>
<p>In 2008, when we started the company, Flash wasn’t an option because of the performance. Not even other “better” considered options (like <strong>Unity</strong>) were up to the task. Either low-mid range PC CPUs or high-end mobile CPUs (ARMv6-based architectures) were actually too “slow”. And what it’s more important, Flash player didn’t run on iPhone (and it hasn’t made it so far). Because of all that plus other technical constraints, we knew C++ was our only choice. It has worked reasonably well for the last 4 years and neither portability (PC + Mac + iOS + Android) nor performance have “never” been compromised. We managed ourselves to build our own engine which worked pretty well until the projects started to grow more and more, the number of devices (considering both iOS and Android) we had to support increased too, and finally we realized we were going to have just one person 100% dedicated to engine+tools development, which we couldn’t afford. Remember? We’re still a small company! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Far from being more comfortable developing in suites/engines such as Unity or Adobe Flash, what you really get is a solid software support across platforms from both the company in charge and the active developer community. If, in addition to that you note that your source code will be considerably smaller, easier to comprehend and easier to fix, then we can forget all the rest. In the end, we just want to develop a game once, ignore the portability issues as much as possible and deploy it everywhere (web browsers, iOS, Android, smart-TVs and future platforms) while having fun <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Even though, it is clear that if you want to create the next state-of-the-art game at 60 FPS, forget about all those commodities and go back to C/C++ against low-level based libraries such as OpenGL, and this applies not only for mobiles devices but for high-end PCs and consoles as well.</p>
<p>That said, let’s now focus on Flash technology more seriously <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> . I won’t enter into many technical details (this is not supposed to be a tutorial), but I will highlight what I think is important from a developer/programmer point of view. Also, I would like to say I’ll be focusing in 2D rendering exclusively, since I’m not interested in 3D at all right now.</p>
<p>First off, the last version of Flash is 11.1 and the last version of AIR is 3.2, now supporting full-hardware accelerated graphics upon OpenGL ES 2.0, including both vertex and pixel shaders. Of course, this is still ways behind DX11 or OpenGL 3.0 (shader model 5.0), but if you aren’t going to create the last AAA title for next-gen consoles, you shouldn’t worry about <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> . Also, when we say “Flash 11″ in the context of mobile devices, we shall ignore the Flash Player at all. Adobe itself declared that they were finally stopping Flash Player development for handheld devices. So…how the hell a game done in Flash can now be executed on iOS or Android? And this question brings us to the second part of the equation, who is called <strong>AIR</strong>. This basically acts as a “plugging” for Flash that is in charge of generating a native application instead of the regular “.swf” for the Flash Player. It can generate both “.ipa” (iOS) and “.apk” (Android) application bundles. But you should know that those are not real native applications; in fact, if you compare performance between 2 apps (let’s say identical), one programmed in Action Script 3.0 (Flash) and the other in pure C++, the latter is going to be always faster.</p>
<p>Okay, so the deployment side of things it’s been solved by Adobe, at last <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Even those interested in full 3D graphics should know that AIR 3.2 is ready for the task as well, though still in beta. Now let’s focus on Flash technology when it comes to game development in self. I’m going to quickly pass throughout all the technical layers (graphics, input, audio, physics and network) in order to understand the whole picture.</p>
<p><strong>Graphics</strong><br />
First thing we realized was that apparently, nothing changed compared to previous versions of Flash. Both vectorial and bitmap based data can be used, along with the common movie clips every Flash designer is familiarized with. But we just wanted a way to draw sprites fast (just as we do with our own engine in C++ and OpenGL), and we saw there was a class to do that, called “Stage” (there’s also a 3D version of the class, named “Stage3D”). Adobe ensures that all you put through the Stage will be sent almost directly to the GPU, which is great news <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . However, as the technology stands upon OpenGL ES 2.0, it means you don’t have the typical “fixed function pipeline”, so it requires you to write almost everything from the scratch using shaders <strong>O_o</strong>. But…is there any point in writing your own graphics engine for Flash? (I guess not)<br />
As you can see, the first contact with the graphics layer wasn’t good for sure! For some kind of games with very simple mechanics Flash tools may be more than enough, nonetheless you normally need full freedom to control the transitions of dialog &amp; menus, the animation of your characters, the spacial transformations of your screen elements such us particles or any sort of special effect, customized blending effects and so on…</p>
<p><strong>Events &amp; Input</strong><br />
Operative System events and touch-based input is easily handled by Flash &amp; AIR. With just a few lines of Action Script you have everything working, from single taps to complicate gestures using multiple fingers.</p>
<p><strong>Audio</strong><br />
It is pretty easy to playback sounds and music. Sounds must be in WAV-PCM uncompressed format while soundtrack in MP3 compressed format. Those who are used to play OGG files may need to study other options…</p>
<p><strong>Physics</strong><br />
By default, there’s no physics engine/library in Flash 11. Hopefully we have some alternatives for both 2D and 3D. For 2D specifically we got <strong>Box2D</strong> which is pretty well known by most developers out there.</p>
<p><strong>Network</strong><br />
Action Script core libraries are ready to deal with online communication issues such as sending data to a server script, downloading data from a server, working with binary or XML socket connections, TCP/UDP packets, etc. But this isn’t really important for us, since we all know that the most difficult part in any online/multiplayer game is the server side. Using <strong>FMS</strong> (Flash Media Server) is always a possibility, but it looks like there’s other and better options as for example <strong>SmartFoxServer</strong>. These kind of services abstract you from the server side and provide high performance plus scalable architecture that you don’t need to worry about.</p>
<p>In general, the context is pretty good although we cannot ignore the lack of a decent/already-built graphics engine. Luckily though, there are <a title="Adobe's recommended engines" href="http://www.adobe.com/devnet/games/gaming_engines.html" target="_blank">several options</a> we can consider. In our humbled opinion, the following couple of options are the only ones to consider at the moment (2D specific):</p>
<p><a href="http://gamua.com/starling/" target="_blank">Starling</a>: It is a pretty solid company-driven open-source engine. The API is very well structured and easy to understand, plus the documentation actually rocks. It is updated frequently and enjoys from a lot of community supporting it on a daily basis (dedicated forums, books, video tutorials, etc). As a proof of reliability, Rovio Entertainment just built one of its last projects with this engine. Actually, this is the reason why the game will not see the light in Windows Phone <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  (not yet supported by Flash 11 &amp; AIR 3).</p>
<p><a href="http://www.nulldesign.de/" target="_blank">ND2D</a>: Cutting-edge 2D graphics engine driven by a single person (Lars Gerckens), featuring physics integration through Box2D and Napoleon, awesome particle systems, fullscreen fragment shaders, etc. Both official documentation and community support can hardly compete with Starling. Moreover, it’s not “frequently” updated.</p>
<p>Our tests with Starling went really smooth, so we have decided it will be our first candidate. Not that it is much better than ND2D, but overall we liked it more. Maybe ND2D is a bit more optimized but in the end the official support and the more active community weights much more than anything else.</p>
<p>I hope this helps everyone to consider Flash technology when developing their next cross-platform games, now also on mobiles phones and tablets and coming soon everywhere! <img src='http://www.lemonteam.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ready to give it a try?</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.lemonteam.com/game-development/using-flash-in-mobile-game-development-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
