tag:blogger.com,1999:blog-26270446866412461572024-03-14T04:08:39.535-07:00my gaming projectmygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.comBlogger63125tag:blogger.com,1999:blog-2627044686641246157.post-21507104849912464012014-04-11T13:21:00.000-07:002014-04-11T13:21:23.733-07:00Gameaweek #2: LubDubFollowing on from my first failed entry I have managed to finish the game this week based on the recently popular <a href="https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CDEQFjAA&url=https%3A%2F%2Fitunes.apple.com%2Fgb%2Fapp%2Flub-vs-dub%2Fid655342705%3Fmt%3D8&ei=IE1IU_aDM6Wd7QbD24C4DQ&usg=AFQjCNGTtJoP-9gtYNZzaosfG1q_IsoXcA&sig2=ZCbqcqY3c-E4pBoy6OhwfA&bvm=bv.64542518,d.ZGU" target="_blank">Lub v Dub</a> and <a href="https://itunes.apple.com/us/app/jump!-chump!/id796982321?mt=8" target="_blank">Jump Chump!</a>.<br />
<br />
The principal of the game is to make the coloured blocks jump the green and brown obstacles. Press "A" key to make the top block jump and the "Z" key to make the bottom one. The principal is to last as long as possible.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhVIv2lpbmQxjlZm6QY4rBgU-5e2DkUmifNq3bqWEgtJsr5khb0vf0hk28s4ZIt3hHwJjvsL5SaEd0VZ646zUt9lDCBDDJRiNiQvF_rJ1c6HdM-YQPNlWYrx-sF3jKNGhlMBZCghvgnIo/s1600/Screen+Shot+2014-04-11+at+21.16.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhVIv2lpbmQxjlZm6QY4rBgU-5e2DkUmifNq3bqWEgtJsr5khb0vf0hk28s4ZIt3hHwJjvsL5SaEd0VZ646zUt9lDCBDDJRiNiQvF_rJ1c6HdM-YQPNlWYrx-sF3jKNGhlMBZCghvgnIo/s1600/Screen+Shot+2014-04-11+at+21.16.35.png" height="199" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_CK0x_-Uh3Pbhu_RQjVu__jbTJDz5tvlrhsQtdl4iF5YBfNg_XpD5gLhWareoAxzS41vYDlVYPv75MNZjPs93EdpEPb0qRtwtt-ZhOS-iW0WBpzzQ73-2981l58iADRI7CuTzWmIqY8/s1600/Screen+Shot+2014-04-11+at+21.16.56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_CK0x_-Uh3Pbhu_RQjVu__jbTJDz5tvlrhsQtdl4iF5YBfNg_XpD5gLhWareoAxzS41vYDlVYPv75MNZjPs93EdpEPb0qRtwtt-ZhOS-iW0WBpzzQ73-2981l58iADRI7CuTzWmIqY8/s1600/Screen+Shot+2014-04-11+at+21.16.56.png" height="199" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF0Zhq3AwnfeXKL_eqobVRiXFhLg584Ho1Fx2kxymFfdvVamha9Vs1Dfrh98ruT0z6NFx3fIbsZQGGXehZc_uu5h1Iwrh9aAF2l4vpLqKPAM3lphkwP-O1eKI7wAuHzq8UpLHHt4GYDHo/s1600/Screen+Shot+2014-04-11+at+21.17.29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF0Zhq3AwnfeXKL_eqobVRiXFhLg584Ho1Fx2kxymFfdvVamha9Vs1Dfrh98ruT0z6NFx3fIbsZQGGXehZc_uu5h1Iwrh9aAF2l4vpLqKPAM3lphkwP-O1eKI7wAuHzq8UpLHHt4GYDHo/s1600/Screen+Shot+2014-04-11+at+21.17.29.png" height="200" width="320" /></a></div>
<br />
<br />
Please have a play at <a href="http://www.parachutingfrog.com/gaw/lubdub/lubdub.html">http://www.parachutingfrog.com/gaw/lubdub/lubdub.html</a> and feel free to leave comments below as to ways to improve and things you like and dont like about it. After all the purpose is to learn as much as possible from GAW.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com3tag:blogger.com,1999:blog-2627044686641246157.post-32143407460147398142014-04-03T13:22:00.001-07:002014-04-03T13:22:46.430-07:00Gameaweek #1: Unblock MeI read a <a href="http://ramiismail.com/2014/02/game-a-week/" target="_blank">fantastic article</a> a few weeks a go by the ever influential Rami Ismail who wrote about the importance of failure and how getting this experience is an important learning for any game developer.<br />
<br />
For those who have followed me over the years I have certainly struggled with an idea that grabbed me. I dabbled last year with a <a href="http://www.onegameamonth.com/" target="_blank">game a month</a> and got lucky with 1800 but at times I felt almost like that time was too long to be working on something that didn't interest me or too short to have something polished and marketable.<br />
<br />
As such I started this week off by following Rami's article to fail fast. Focus on something that I hadn't done before, cobble together something that just about worked and then from there see if I enjoyed working on it enough to pursue at a later date and build it into something bigger.<br />
<br />
To start off with I thought I would tackle an <a href="https://itunes.apple.com/gb/app/unblock-me-free/id315019111?mt=8" target="_blank">"Unlock Me"</a> type game. You have probably played this sort of game where you slide blocks around in order to get a designated block to escape the gaming arena.<br />
<br />
As always the game is written in Unity, Futile and C# and represents about 5 days of work. However for me 5 days is only about 12 hours. <br />
<br />
What interested me over this time is that I quickly become bored with working on it and the buzz of this concept disappeared just as soon as it had arrived. This for me was a lesson to not push through with something that I couldn't get passionate about because if I couldn't then how could I expect anyone else to.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0k-OVfrIj885JRIkq6qPWFxcFEP7FsSpGdjYHYLSTu7mm2CSfw2YdQQsssRQQ3zz3NvI4s0PiadRU6TbHLEBp-WT0wDtS6ZNpRIGqOsJfALbO-Y78PTCvA-mZkeEzX5T5NmIM4pFoqgw/s1600/Screen+Shot+2014-04-03+at+21.02.29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0k-OVfrIj885JRIkq6qPWFxcFEP7FsSpGdjYHYLSTu7mm2CSfw2YdQQsssRQQ3zz3NvI4s0PiadRU6TbHLEBp-WT0wDtS6ZNpRIGqOsJfALbO-Y78PTCvA-mZkeEzX5T5NmIM4pFoqgw/s1600/Screen+Shot+2014-04-03+at+21.02.29.png" height="314" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAPHKn-o3b-f_gC4ieNHSiQMLXefiFZxFZc_k4GI4o0y9KHyEXGA8yZVwn6tgU9SCwV-4pjHeTI1fQTGfW2jriPxhwwFrYNxBFj6sBx7_sUDnT6lzO2cUxwHDAgQQ4N6ISfvQ02gJ1V_0/s1600/Screen+Shot+2014-04-03+at+21.12.16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAPHKn-o3b-f_gC4ieNHSiQMLXefiFZxFZc_k4GI4o0y9KHyEXGA8yZVwn6tgU9SCwV-4pjHeTI1fQTGfW2jriPxhwwFrYNxBFj6sBx7_sUDnT6lzO2cUxwHDAgQQ4N6ISfvQ02gJ1V_0/s1600/Screen+Shot+2014-04-03+at+21.12.16.png" height="320" width="319" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It is a workable grid where all the blocks can be moved around but after this short period I have decided to abandon the project a couple of days ahead of time and to move on to something a little more fulfilling.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
On to week 2 :)</div>
<br />mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com2tag:blogger.com,1999:blog-2627044686641246157.post-44656804516036692212013-12-31T15:19:00.000-08:002013-12-31T15:19:28.944-08:00The project - 2 years onIts very common at the end of a year to look back and see what has been achieved over the previous 12 months and to look forward to the new year with vigour and positivity. For me it offered up a greater opportunity to not just look back on last year but also my "project" I have been on for 26 months.<br />
<br />
On the 9th October 2011 I kicked off a journey of writing games and hopefully turn it into a pursuit that would secure the financial future of my family while applying the <a href="http://en.wikipedia.org/wiki/Outliers_(book)" target="_blank">10,000 hour principle</a> to my dream. Back then <a href="http://mygamingproject.blogspot.co.uk/2011/10/project.html" target="_blank">I wrote a blog entry</a> that set out goals of which all going well as I sit here today I would be writing this blog as a full-time game developer and having secured at least a number one game.<br />
<br />
I knew when I wrote it (the blog) I was being incredibly ambitious and, in fairness, set myself some pretty unrealistic goals. Well the reality is I haven't hit any of my targets, in fact nowhere near, but nonetheless I am as involved and as motivated in the pursuit of writing games as I was when I penned the blog over 2 years ago.<br />
<br />
The best advice I got early on was getting your early apps out the way as quickly as possible. Strange advice you would think but hidden within that simple sentence was that you gain so much from each app you write there is no point dwelling nor seeking perfection nor never releasing but to take something from it and move on. Yet despite this so many people give up after their first game as they think they will make a load of money or its easier to do than it actually is.<br />
<br />
I know having completed <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> I really struggled for the second game not that <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> was any kind of success but difficult without the experience to know where to go next. What was a blessing was a concept called <a href="http://www.onegameamonth.com/" target="_blank">one game a month</a> (1GAM) which as it suggests sets focus on writing small games in iterations of a month. This really changed the focus for me and so I kicked off 2013 in quite a structured way.<br />
<br />
<b>January</b><br />
Kicking off the year I took quite a big decision to move from Corona SDK to Unity3D. At the time it was a very big decision because the little I did know I gained through learning the LUA programming language as well as writing for Android and iOS in Corona. However, the types of games I wanted to move on to in 2013 were hampered by the lack of progress the Corona platform was making and while Cocos2D was a consideration I felt Unity3D would cover off most scenarios I could come up with. As this was a big shift for me I decided to turn a game around in a month I would stick to what I knew and rewrite <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> in c# and in Unity3D not least for future support. I'll be honest I found Unity3D overwhelming at first because as a developer I was far more code centric, programming sat better with me. This is why I decided to engage with Unity3D using Futile the <a href="https://github.com/MattRix/Futile" target="_blank">2D code centric framework</a> which worked pretty well for me and got the job done.<br />
<br />
<b>February</b><br />
Having ticked off the first month I wanted to do something completely different so I decided to write a game that could fit on one screen but would build upon what I had previously learnt. I decided to write a game that was a twist on the classic game <a href="http://en.wikipedia.org/wiki/Frogger" target="_blank">frogger</a> as I wouldn't need to consider game play elements as in principle I could copy but then put my own twist on it. My twist was on the joke "Why did the chicken cross the road ..." where I changed the frog for a chicken. This really helped as I learnt to use packages such as <a href="http://71squared.com/en/glyphdesigner" target="_blank">glyphdesigner</a> and customised and scaled fonts. Not a bad little game in the end but one I was never going to push on to iOS as it lacked polish and depth.<br />
<br />
Have a <a href="http://www.parachutingfrog.com/__bu/chicken.html" target="_blank">play here</a> there if you fancy seeing progress made. <br />
<br />
<b>March</b><br />
March was really where my year started to change. As it happened Easter was falling quite early in 2013 so I thought seasonal games always did well so I would make that the focus of my March game. However, over half way through the month I really hadn't come up with anything good but was determined to not fail with 1GAM so early in the year. Instead I decided to focus on something that wasn't graphic focused but could easily generate a number of levels of code rather than anything too time consuming. I had played and enjoyed games like <a href="https://itunes.apple.com/gb/app/gauge-game/id512206751?mt=8" target="_blank">Gauge</a> and decided something like this would be the direction and from which <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> was born. In essence the game was written within a week and the last week of the month was taken up implementing the analytics framework, <a href="http://www.flurry.com/" target="_blank">Flurry</a>, and reacquainting myself with <a href="https://testflightapp.com/" target="_blank">Testflight</a> for beta testers and the invaluable feedback.<br />
<br />
I won't bloat this brain dump anymore than I need to but all the intricate details of <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> can be found in the <a href="http://mygamingproject.blogspot.co.uk/2013/06/1800-postmortem.html" target="_blank">postmortem I wrote back in June</a>.<br />
<br />
<b>April</b><br />
I mentioned in March I wanted to not give up on 1GAM but to be honest April is where it ended. But it was positive reasons this time as <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> did far better than I ever expected.<b> </b>As such I had review sites wanting press kits and players of the app (<a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a>) wanting to remove adverts via IAP. It was during this month that I decided to turn my progress to "One new skill a month" ensuring that while I wouldn't be pumping out a new game I at least was learning.<br />
<br />
So having put a press kit of sorts together of various press releases (<a href="http://prmac.com/release-id-56528.htm" target="_blank">via prMac</a>), icons, images et al and implementing in app purchases using the <a href="http://prime31.com/docs#iosStoreKit" target="_blank">Prime31 plugin</a> I was pretty content with the first third of the year.<br />
<br />
<b>May</b><br />
As <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> continued to be downloaded I wanted to make as much use of the user base I was acquiring to promote future games to. It was for this reason I wrote a new game mode for <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> called "reaction" and decided rather than unlocking via an In App purchase to experiment via Twitter followers. This meant implementing another plugin from <a href="http://prime31.com/docs#iosSocial" target="_blank">Prime31 for social networking</a> which if the user clicked the call to action within the game to follow us it unlocked the game mode. It didn't get a huge up take but it did at least get some new followers and I had learnt a new skill.<br />
<br />
During this month I also refactored some of the code I had butchered over the previous couple of months and also implemented a scene manager to help the additional game modes and screens I was adding.<br />
<br />
<b>June</b><br />
I drew a line under <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> in June and started writing a new game. This was focused on something that I could apply my new found knowledge of In-app purchases to and the game design would be driven from this. I started writing a game based on consumables that meant the player would have to engage in some monetary activity of which I chose<a href="http://en.wikipedia.org/wiki/Blackjack" target="_blank"> Black Jack (twenty-one)</a>. I created a basic game system and implemented <a href="http://prime31.com/docs#iosGameCenter" target="_blank">GameCenter</a> and <a href="http://prime31.com/docs#iosGCTMP" target="_blank">Turn-based</a> plugins for the social and community side to keep people on the game. A busy month.<br />
<br />
<b>July</b><br />
Throughout the month I worked on artificial intelligence of the computer (dealer) player for the one player aspect of the game. This was a first for me as I had only ever worked on one player games to this point. Furthermore, I worked on the turn based aspect of Game Center which I found a very very time consuming process while testing. This meant me testing either on the same app and logging in and out to see if move had passed or having two devices with a potentially buggy piece of code. A large amount of this month was taken up with not much progress.<br />
<br />
<b>August</b><br />
Over the previous two months the game was certainly coming on I just wasn't convinced by it and if I wasn't why would anybody else. Already I had spent around 10 weeks on something that I felt was not any closer to being launched and therefore had become disillusioned. There were certainly positives to this time spent but not something I could call a game.<br />
<b><br /></b>
Being mindful I struggled for over <a href="http://mygamingproject.blogspot.co.uk/2012/11/six-months-in-turmoil.html" target="_blank">six months the previous year</a> for inspiration and misdirection I decided I wanted to be a little more structured with my next game(s) that I could apply the principles of <a href="http://appempire.com/appflipping.php" target="_blank">app flipping</a> to I had read so much about during this period to help me achieve the goals I had set about in the initial project blog. I decided I would write a grid framework that I could write Match-3-esque games that was flexible and I could build upon as my skills grew.<br />
<br />
With that the start of writing a game focused code library and framework started as well as deciding to include localisation in my next game that would also be built into this framework.<br />
<br />
<b>September</b><br />
Work continued in earnest over this month on the grid framework so I decided to develop to known game mechanics again such as <a href="http://en.wikipedia.org/wiki/Tic-tac-toe" target="_blank">Tic-tac-toe</a>, <a href="http://en.wikipedia.org/wiki/Connect_Four" target="_blank">Connect 4</a> and <a href="http://en.wikipedia.org/wiki/Peg_solitaire" target="_blank">Peg Solitaire</a> so again there would be familiarity to the player and I could concentrate on my learnings.<br />
<br />
I also thought a lot to social engagement and keeping the "stickiness" of the app so looked to push notifications through <a href="http://urbanairship.com/" target="_blank">Urban Airship</a> to be added to this framework.<br />
<br />
<b>October</b><br />
Throughout October I was considering more and more the monetisation of the app(s) but I still didn't think I was established enough with my skills nor the ideas were original enough to warrant being paid games. That said with my previous efforts of <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> and <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> although they were advert supported the financial returns were awful so I decided to turn my attentions to writing my own advert logic that would principally focus on using <a href="https://www.chartboost.com/" target="_blank">Chartboost</a> backed up with <a href="http://www.revmobmobileadnetwork.com/" target="_blank">RevMob</a>.<br />
<br />
By this time I had decided that the peg solitaire version of the three games was by far the strongest. I had struggled again with Connect 4 and Tic-tac-toe with the turn-based logic and without this the games were very poor and one dimensional. So I put all efforts in launching my third game, <a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a>.<br />
<br />
<b>November</b><br />
Having (prematurely) announced that <a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a> would be one of three games to form the <a href="http://mygamingproject.blogspot.co.uk/2013/10/announcing-the-froglet-collection-beta.html" target="_blank">froglet collection</a> I had subsequently decided that I wouldn't be launching the other two. This was because much better games of those mechanics were coming out and I again became disillusioned by those not working. So I pushed on with <a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a> and engaged with a brilliant beta team using <a href="https://www.testflightapp.com/" target="_blank">Testflight</a>, my third game was ready.<br />
<br />
I was a lot more structured with my marketing this time. I set a date in December and worked on a marketing campaign for the second half of the month. I revamped the <a href="http://www.parachutingfrog.com/" target="_blank">company website</a> which was overdue and then used the excellent <a href="http://dopresskit.com/" target="_blank">Presskit()</a> to create a whole new <a href="http://press.parachutingfrog.com/" target="_blank">press section</a> and a specific page for <a href="http://press.parachutingfrog.com/sheet.php?p=Solisqr" target="_blank">Solisqr</a>.<br />
<br />
<b>December</b><br />
With the game approved the marketing and PR intensified and for the first time I did pre release promos. Having read <a href="http://blog.sensortower.com/blog/2013/09/12/how-to-market-your-ios-app-with-promo-codes/" target="_blank">this article</a> I used the <a href="http://redeem-now.com/" target="_blank">redeem-now</a> website so I could tag and keep track of who had engaged with my personalised email and offer of a promo code. Not as many as I would have liked and some who said that would review didn't and those I didn't send a code wrote a review or article. Jury is still out on the effectiveness of this process.<br />
<br />
December also threw up some new opportunities which were probably the biggest achievement for me of the 2 years in that the community chose my journey significant enough to want to work with me. I had to turn down some offers of collaboration earlier in the year as the timing wasn't good. However, one in particular came to me in December just around the launch of <a href="http://press.parachutingfrog.com/sheet.php?p=Solisqr" target="_blank">Solisqr</a> which was right for lots of reasons. Project M (as it will be known for the time being) is going well and looking at an April-ish launch. Very excited by this as it allows me to work with other people who have there own talents and again accelerate my learnings.<br />
<br />
<b>Summary</b><br />
These sort of reflections are also best summarised by statistics I feel so lets look back at some of the headline figures.<br />
<br />
First, downloads, during 2012 Astavoid was my only launch and in the main most of the download for it came in the first fortnight. However, during my first year I achieved <b>2,732 </b>downloads. As at time of writing (31/12/2013) and with two new games (<a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> and <a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a>) and a handful of <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> downloads I have had <b>41,223 </b>in 2013 which is an increase of <b>1409%</b>, not bad!<br />
<br />
Second, revenue. As I noted in my <a href="http://mygamingproject.blogspot.co.uk/2012/06/astavoid-postmortem.html" target="_blank">Astavoid postmortem</a> for 2012 I made the principle sum of<b> $10</b>. This, however, didn't payout until $20 was reached which was only hit in March 2013. The total revenue for 2013 is <b>$2,034.71</b> so again not a bad increase but nothing like the figures I was looking for from my <a href="http://mygamingproject.blogspot.co.uk/2011/10/project.html" target="_blank">initial blog</a>.<br />
<br />
So how have the games faired in terms of highest rankings, another metric in my <a href="http://mygamingproject.blogspot.co.uk/2011/10/project.html" target="_blank">initial blog</a>.<br />
<br />
<b>Astavoid</b><br />
For brevity I will include the best of the two formats (iPhone or iPad) and in the case of <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> it has faired significantly better on iPad.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNuzwBP8nNJWGCY_MSWHB_Lze5ylny38bfS3a05-TfBM2RuJw2Iq7KszKy5_Nx_GNRkeUB7D3BuoodRz1UfK1zenjsszJKIbw1nwzWz0IM2653irR84km0kcTr603-0H5K_Xj-GTYYQA/s1600/Screen+Shot+2013-12-31+at+22.31.21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNuzwBP8nNJWGCY_MSWHB_Lze5ylny38bfS3a05-TfBM2RuJw2Iq7KszKy5_Nx_GNRkeUB7D3BuoodRz1UfK1zenjsszJKIbw1nwzWz0IM2653irR84km0kcTr603-0H5K_Xj-GTYYQA/s640/Screen+Shot+2013-12-31+at+22.31.21.png" width="640" /></a></div>
<br />
<b>1800</b><br />
Currently, 1800 is my most successful title and at time of writing has been out for about 8 months.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgWc7UST1jVZcx9LIJBMNE8F98C_VMTshk8sU0BADDskpr7-n3POE6fpv8ee5R_aMtLn5t5jbXqToNgePxYtKAoi_rwI7chuLmZcL3YmMomfi6zdjluKPiBprgg87Q10yn_o9pKLw40pI/s1600/Screen+Shot+2013-12-31+at+22.35.31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgWc7UST1jVZcx9LIJBMNE8F98C_VMTshk8sU0BADDskpr7-n3POE6fpv8ee5R_aMtLn5t5jbXqToNgePxYtKAoi_rwI7chuLmZcL3YmMomfi6zdjluKPiBprgg87Q10yn_o9pKLw40pI/s640/Screen+Shot+2013-12-31+at+22.35.31.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSDsEU6C4p3LzkggpgRvK-89G8Xe4LqXWYJA4KQsMdzo2vVaYYrhB9SICRk7RreyuPRe9LEddy5Yw-dJr30KT-Z80sXz6LqKvf-NdTUPmPKri9rAbM8-jAiS2xxR0dZ7EHZrSeUOjm8U/s1600/Screen+Shot+2013-12-31+at+22.36.56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="596" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSDsEU6C4p3LzkggpgRvK-89G8Xe4LqXWYJA4KQsMdzo2vVaYYrhB9SICRk7RreyuPRe9LEddy5Yw-dJr30KT-Z80sXz6LqKvf-NdTUPmPKri9rAbM8-jAiS2xxR0dZ7EHZrSeUOjm8U/s640/Screen+Shot+2013-12-31+at+22.36.56.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Solisqr</b></div>
<div class="separator" style="clear: both; text-align: left;">
At time of writing <a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a> has only been out for about a fortnight but has faired pretty well, particularly in Canada. The first 10 days of downloads were very similar to <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> with a very different spread of downloads across the days.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiasyCFF4dpVFYA2P3aVEho8N2dT7TcFDVdsIE6g1AS3CjYswuyeB91KLGsh_PPCmRwN7AISxAigY_uW9kzQV6M5EoI1Po0LwFedj03mNLlXpQuk95Y6LTqsMmHKfw428s0e1DB7AY_g0/s1600/Screen+Shot+2013-12-31+at+22.39.44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="454" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiasyCFF4dpVFYA2P3aVEho8N2dT7TcFDVdsIE6g1AS3CjYswuyeB91KLGsh_PPCmRwN7AISxAigY_uW9kzQV6M5EoI1Po0LwFedj03mNLlXpQuk95Y6LTqsMmHKfw428s0e1DB7AY_g0/s640/Screen+Shot+2013-12-31+at+22.39.44.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
So all in all pretty happy with progress.<br />
<br />
<b>2014</b><br />
So what does the new year have in store? Well without a doubt new learnings, new games and continuing the journey on this project and eating in to those 10,000 hours. Very excited about Project M and how that is progressing as well as the imminent arrival of 1800 and Solisqr on Android. Already <a href="http://www.gamasutra.com/view/feature/3224/creating_a_great_design_document.php" target="_blank">game design documents</a> for a handful of games exist for an exciting yet busy year ahead.<br />
<br />
Happy new year all.<br />
<br />
<a href="https://itunes.apple.com/gb/app/solisqr/id735467916?mt=8" target="_blank">Solisqr</a>, <a href="https://itunes.apple.com/gb/app/1800/id622356272?mt=8" target="_blank">1800</a> and <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8" target="_blank">Astavoid</a> are available on the app store for Free. mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-86192224692010901102013-10-30T15:02:00.000-07:002013-10-30T15:18:18.954-07:00Announcing the The Froglet Collection - beta testers needed<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXwCTvX0cFlx7lKBKDfhX6FxN9h3mxPf781Kn61PCJKlYHTOVuKzxrnWsEGsjNPiNY7q9zmbPgD6j2S5sJnjWZEkUrxO6JV8yL3ihsuXcH3GYiO_QeDln3duSP8cdfbi_gYECnQ3LGlUQ/s1600/solisqr_icon_1024_1024.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXwCTvX0cFlx7lKBKDfhX6FxN9h3mxPf781Kn61PCJKlYHTOVuKzxrnWsEGsjNPiNY7q9zmbPgD6j2S5sJnjWZEkUrxO6JV8yL3ihsuXcH3GYiO_QeDln3duSP8cdfbi_gYECnQ3LGlUQ/s200/solisqr_icon_1024_1024.png" width="200" /></a>After many, many months of development we are very proud to announce the arrival of 4 new games from Parachuting Frog: The Froglet Collection; Solisqr; TicTacToe and Connect4. A lot of time has been taken to hone and develop our skills and have been keen to develop our own grid framework of which the four games are the fruits of our labour. For those that know traditional games of TicTacToe and Connect4 these were early learnings to develop and enhance the grid framework before enhancing further. As more was learnt the design angle and simplicity that was brought with 1800 made these games in their own right fun and enjoyable so felt it only right to launch and share.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
All the games are a significant increase in the complexity of our previous games of 1800 and Astavoid with game features including:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_jT76loFFkh_PbiNSEBMPqDQ_lJORI2SYHG6a7EVU2Sp4g3JXNG_NzfljTw5Cc4APCTv2juUc3ujtRaB-VsyAjtnUHtoSIfQ3gzNeSksewaIo00XVq8d5ky77Z181tqe6Cfd6_wolDR4/s1600/2013-10-26+20.05.26.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_jT76loFFkh_PbiNSEBMPqDQ_lJORI2SYHG6a7EVU2Sp4g3JXNG_NzfljTw5Cc4APCTv2juUc3ujtRaB-VsyAjtnUHtoSIfQ3gzNeSksewaIo00XVq8d5ky77Z181tqe6Cfd6_wolDR4/s320/2013-10-26+20.05.26.png" width="213" /></a>
<li>All new stylish menu system</li>
<li>En vogue flat design ideal and in keeping with iOS7</li>
<li>Localisation: translated and available in English, German, French, Italian, Spanish and Portuguese</li>
<li>Social gaming with leaderboard, achievements, challenges and turn based interaction with Game Center.</li>
<li>Multiple on device and online games modes including: Pass and play, single player with Easy, Medium and hard game modes as well as online play.</li>
</ul>
<div>
<br /></div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbNbxBzpAZ93AQblzy3BPvA83yr1GAtjFVHU86Tpwt3uYOFhpEoXJkuRbPquSv3ojHaje8_UGMZJRcyi8b7X72F8mMpR34mIlxICZQyR4SQ2Drg3NQR9jsTLfMB_3pQK753vG7iR_Qhw/s1600/2013-10-26+20.07.08.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIbNbxBzpAZ93AQblzy3BPvA83yr1GAtjFVHU86Tpwt3uYOFhpEoXJkuRbPquSv3ojHaje8_UGMZJRcyi8b7X72F8mMpR34mIlxICZQyR4SQ2Drg3NQR9jsTLfMB_3pQK753vG7iR_Qhw/s320/2013-10-26+20.07.08.png" width="213" /></a><b></b><br />
<div>
<b><b><br /></b></b></div>
<b>
The Froglet Collection</b> will be all three mini games available with tier 2 pricing offering all online games modes without limitations and no advertss.</div>
<div>
<br /></div>
<div>
<b>Solisqr</b>, <b>TicTacToe</b> and <b>Connect4</b> will be free games supported by ads.</div>
<div>
<br /></div>
<div>
Due to the complexities (to us) of the framework we have wanted to launch <b>Solisqr</b> to beta first to test our grid and menu systems as well as the localised translations of our core system. </div>
<div>
<br />
To set the scene of <b>Solisqr</b> it is based on the popular board game, Pegged Solitaire or Solitaire. The challenge of the game comes in the form of both completing the challenge of only one peg (or square) remaining in the central position and done in the fastest time possible.</div>
<div>
<br /></div>
<div>
What we are looking for are enthusiastic beta testers that want to play the game early, that speak the languages laid out above and are willing to provide regular feedback to help us weedle out those nasty bugs as well as provide constructive criticism to make this the very best game collection possible.</div>
<div>
<br /></div>
<div>
If you are interested in beta testing then please register <b><a href="http://tflig.ht/1huIyfM" target="_blank">here</a> </b>and feel<b> </b>free to ask any questions at <b>info@parachutingfrog.com.</b></div>
<br />
<br />
<div>
<br /></div>
mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-72744709194991549142013-06-12T13:29:00.002-07:002013-06-12T13:29:38.607-07:001800: A postmortemIt is pretty much a year to the day that I penned my last postmortem for <a href="http://mygamingproject.blogspot.co.uk/2012/06/astavoid-postmortem.html" target="_blank">Astavoid</a>. At that time Astavoid was my first game and the amount learnt during that process was immeasurable. However, what it did do was open my eyes to just how difficult it is for an novice, indie developer to make a difference and just how difficult the goals set out in my <a href="http://mygamingproject.blogspot.co.uk/2011/10/project.html" target="_blank">project</a> would be.<br />
<br />
Roll on a year and I can safely say I have learnt a lot, lot more. Since that article I had six months of what felt like going round in circles but this led to a period of focus around Christmas / the turn of the year. The two factors that have contributed to the focus was the movement to <a href="http://mygamingproject.blogspot.co.uk/2012/12/from-corona-lua-to-unity-c-part-1.html" target="_blank">Unity from Corona</a>, and the other was the <a href="http://www.onegameamonth.com/" target="_blank">one game a month</a> initiative.<br />
<br />
To quote the one game a month (1GAM) website for those not aware of its goals: "<i>Starting a game is easy. Finishing a game is hard. One Game A Month is a gamedev challenge where everyone's invited. Your quest is to create one game each month for the entirety of 2013. It might sound crazy, but the truth is that it isn't all that hard."</i><br />
<br />
So this is exactly what I set upon during the early part of 2013 and actually at the time of writing is what I am adhering to. It is because of this approach that 1800 came about but it almost didn't happen.<br />
<br />
During March 2013 I had just finished my game 1GAM for February and decided because Easter was falling early that year I would create an Easter game. What I struggled with was a decent concept and played around with a few prototypes for a week or so. What the 1GAM concept had taught me was rapid focus and discipline, and therefore if it isn't working move on. If it is unlikely to be completed within a month then its too complicated. If you can't explain your core game in a sentence, it is also too complicated.<br />
<br />
<b>The Design</b><br />
With only 20 days of the month to go after my deliberations I set my thoughts on a design that was more about playability than graphics. Something that I could programmatically generate levels to add content rather than bogged down with design.<br />
<br />
I hit upon the idea for 1800 almost immediately. Inspired by games like <a href="https://itunes.apple.com/gb/app/hundreds/id493536432?mt=8" target="_blank">hundreds</a> and <a href="https://itunes.apple.com/gb/app/gauge-game/id512206751?mt=8" target="_blank">gauge</a> where style and accessibility win out over fireworks and sparkle, I felt that this would fit well with my new found approach and limited timeframe.<br />
<br />
Additionally, I wanted to keep the file size of the app small and already at a disadvantage with Unity iOS Basic's unoptimised /compressed framework I didn't want to bloat with large spritesheets.<br />
<br />
All these factors brought together led itself to a minimalist design that unwittingly hit upon an en vogue concept of flat design.<br />
<br />
I won't talk at length about flat design within this blog as <a href="http://www.readability.com/articles/7kgwf8wv" target="_blank">this article</a> does it far better than I could, however, it essentially means applying no gradients, shadows, bevels or embossing to your graphics and having thereby having just flat coloured assets. This coupled with a hybrid pastel colour and 1800 immediately felt very appealing to the eye.<br />
<br />
The main criticism, and rightly so, of Astavoid was its lack of depth. One of my main goals I wanted to achieve from 1800 was to make it more "sticky" and by that I mean keeping players in my game longer. While 1800 wasn't about making money but more tailoring my craft it was important to have the game engaging and encourage another quick go.<br />
<br />
The mechanic of the game was simple. I had created a rectangle and the player must stop a cursor as close to the middle of this rectangle to achieve as high a score as possible. I would calculate the number of pixel offset from the middle (central axis) of the screen and subtract from a total score of 1800. Great I had one level now what. Based on this calculation I started including lines and further arrows and carried out further mathematics on the differential between alignment to central axis. This gave a little bit more depth particularly when varying the speed of arrows and lines. <br />
<br />
Within about 8 days (25 hours development) I had finished 1800 and was ready for people to have a play and provide feedback. I decided upon using <a href="https://testflightapp.com/" target="_blank">Testflight</a> to let some of my very helpful twitter followers test the app. I cannot under estimate just what a useful step this was in the development of the game.<br />
<br />
<b>Testing</b><br />
I'll be honest I was nervous when I released for testing. Like a proud Dad I didn't want anyone to be disparaging of my efforts but even worse tell me it was a good game when it wasn't. What I was pleased with was just how consistent the feedback was from my 12 or so testers and that in the main very positive about how addictive it was despite its simple facade.<br />
<br />
My twitter followers are probably an over critical bunch. I mean that in a good way in that they fit a demographic of game developers and seasoned gamers. I too fit this and having played games for nearly 30 years a game like 1800 wouldn't normally jump out at me as something I would be looking out for. However, there was something about its mechanics that really appealed, not just to me, but to my wife and family as well.<br />
<br />
A slightly discouraging feedback that came from the testers was that they had completed the 20 levels in under 10 minutes. This wasn't really what I was looking for when talking of stickiness in my earlier comments.<br />
<br />
Some more feedback was having implemented a unlocking level star system, a la Angry Birds, it wasn't clear to the testers just what triggered an unlock nor was there really any incentive to go back and improve scores once all 20 levels were complete.<br />
<br />
In addition, the most important feedback came back about my UI design and workflow. I had overlooked a major factor in fuelling my stickiness and that was providing a mechanism to retry a game immediately.<br />
<b><br /></b>
<b>Redesign</b><br />
Based on the feedback from the testers I went about implementing some new features that would provide the goals I was looking for.<br />
<br />
First of all I changed the mechanic of the star system to only provide 3 stars if 1800 is achieved on a level. This on some levels was very challenging so would hopefully provide the desire to come back and improve scores. I also introduced a new game mode called time attack which was unlocked after 40 stars (out of a possible 60) was obtained thereby providing further depth to the game. Time attack was using the same scoring mechanism but this time over 60 seconds rather than just one shot.<br />
<br />
The next big implementation was to add a retry button into the in-game menu system that allowed you to replay the same game immediately or go back to the level select. In hindsight once implemented I had no idea why I didn't do this in the first place but I guess thats the value of beta testing. <br />
<b><br /></b>
A few minor iterations of testing followed but at this point I was pretty happy to stick it up on to app store and kick off the review process. This was around the last week of March 2013.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFhrsezrkPobiZHwYOrnLssGQ4xeKOc_dw9-DQtH8mFHS3KAJ08tYyPs1yqDPxAca1YdtI91_Dzv5jcsAXaLWwQk6UNUENV8aHU_XnnA6J9HkJe8savSKlLZasmRIg-P76r6eE2YRT5as/s1600/3_5_screen.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFhrsezrkPobiZHwYOrnLssGQ4xeKOc_dw9-DQtH8mFHS3KAJ08tYyPs1yqDPxAca1YdtI91_Dzv5jcsAXaLWwQk6UNUENV8aHU_XnnA6J9HkJe8savSKlLZasmRIg-P76r6eE2YRT5as/s640/3_5_screen.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b>Measurement and analytics</b><br />
So that I could ascertain whether this design concept had been successful I decided to include the mobile analytics SDK from <a href="http://www.flurry.com/flurry-analytics.html" target="_blank">Flurry</a>, to understand how my potential players interact with 1800. This I felt would let me know remotely what is and isn't working and adapt appropriately with updates. I also included Flurry's interstitial ads for a little bit of monetisation.<br />
<br />
Additionally, I added Adwhirl into the game a decision I didn't take lightly as it went against the minimalist design of the game but I didn't want to completely rule out making money. However, I strongly felt the design and concept of the game didn't lend itself to In App purchases.<br />
<br />
More on the analytics later.<br />
<br />
<b>Marketing</b><br />
While I was waiting for the game to be reviewed by Apple I started on my marketing trail which would consist of twitter and forums. In my experience of Astavoid I encountered there are many reviews sites willing to take my hard earned cash. Equally I didn't have an advertising budget given that 1800 would be predominantly free.<br />
<br />
Instead I decided that each day for about 10 days I would post a teaser image or description of the game on to my twitter account (@gameproject10k) and the touch arcade forum. At the very least I would get the name out there and a little bit of interest. I wasn't expecting much from this approach (given I only have 250 twitter followers for example) but was more than I did for Astavoid.<br />
<br />
1800 was approved in the first couple of days of April 2013 so I had decided to launch on the second Thursday of the month, the 11th. This allowed me to step up my twitter campaign, begging for retweets etc as well as drumming up a little following on TA forum.<br />
<br />
I had decided to defer the prMac press release (I did this for Astavoid too but on launch day) until a few days after 1800's launch in an effort to understand what effect this had on launch day. It is very difficult to understand the worth of a release day press release campaign when twitter bots look out for new apps and tweet its arrival. The only metric I had was I created a prMac press release as the only thing I did for Astavoid and to this day (June 2013) the launch day downloads still account for a third of its total. <br />
<br />
<b>Launch Day, downloads and stats</b><br />
The day arrived and the usual nervousness kicked in as to whether it was going to work on all those devices, whether I had screwed something up when creating the release and generally how it was going to be perceived.<br />
<br />
I had set myself the goal for 1800 of approximately 5,000 downloads in total. The reason for this goal was to improve on the 3,500 Astavoid downloads had achieved in the 12 months prior to writing 1800.<br />
<br />
Launch day was great, I managed to get over 2,100 downloads which beat my Astavoid launch day without any real PR. While taking a break from constantly refreshing chart positions and reviews I took a break to read the Toucharcade App to see what other launch day apps were out and I was competing against. I was very pleasantly surprised to be greeted with the following:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqYI7viHNvyHSHk_XigPEXUm36_u4rergzZHVhl-jUI-jc6r8xOZGlA1qgCc0ANtOluWnzl6d8Tjk5I75mOo7JBgFr6yiztf1t75fBs_IyIcFqwI5pVjcFq6kb2_BL0MLAYj1LgSowPKA/s1600/TA_1.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqYI7viHNvyHSHk_XigPEXUm36_u4rergzZHVhl-jUI-jc6r8xOZGlA1qgCc0ANtOluWnzl6d8Tjk5I75mOo7JBgFr6yiztf1t75fBs_IyIcFqwI5pVjcFq6kb2_BL0MLAYj1LgSowPKA/s1600/TA_1.PNG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7NK9bQMSs47gInseTY0Z7GHFapcUtjE2iCwhSmsw5UzmVR-yWuci0uUvHksLwonGHo2CMEYv3xIRyTDyCSvxnegn5fp4qkzYxBy3YC3mKpiBTH08TNWr0kRhUkj2NiulYRdnIu4WPokE/s1600/TA_2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7NK9bQMSs47gInseTY0Z7GHFapcUtjE2iCwhSmsw5UzmVR-yWuci0uUvHksLwonGHo2CMEYv3xIRyTDyCSvxnegn5fp4qkzYxBy3YC3mKpiBTH08TNWr0kRhUkj2NiulYRdnIu4WPokE/s1600/TA_2.PNG" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
Amazing. The game had found some love on the Touch Arcade forums and like my assessment earlier forum members felt they shouldn't like it but they just did and kept coming back for just one more game, time and time again. Initial feedback was that perhaps my goal for stickiness seemed to be on track.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
But this euphoria was short lived, no lack of exposure on the TouchArcade forums could stop the next day's download stats from being lower. But realistically what should I expect given this was really the only marketing push it was getting.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
That said the next big push was coming on the following Monday from prMac so I sat back over the weekend, refreshed the website, rankings and charts on a one minute cycle and see what would happen. By the Sunday just 4 days after launch 1800 was getting just 254 downloads, I say just as in context this was disappointing given the launch day. However, on reflection some games don't even get that from their entire lifetime.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
On the Monday, my <a href="http://prmac.com/release-id-56528.htm" target="_blank">prMac press release went out,</a> a few TA forum quotes and a little background about what I was trying to do and I was ready to see its effect. I timed the release to go out mid morning in the USA which would still be picked up by european agencies in the afternoon. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This I thought were decent tactics and better for me to measure how useful the prMac press was to future game launch campaigns. However, in a good way, this was eclipsed by a feature Touch Arcade ran on 1800. Titled, <a href="http://toucharcade.com/2013/04/15/1800-a-surprisingly-difficult-reaction-game/" target="_blank">'1800' - A Surprisingly Difficult Reaction Game</a>, a fair appraisal of the game mechanics and a little bit of retro love put 1800 in a good light. I was naturally delighted and amazed. The Toucharcade forums had clearly caught the staff writer's eye and despite the number of games that must fall across the desks / devices they took the time to comment on my efforts. This has an enormous effect upon the next's week's activity.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The downloads went (relatively) mad, on the day of the PR launch I had 1,000 downloads, the next day to coincide with both the PR piece and the article I had 3,000. Over the next week the downloads halved day on day but by the following weekend I was still around 300 downloads a day. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
During this time I had been shortlisted and finished third in the Touch Arcade game of the week poll. Beating Mr. Crab, amongst others, which happened to be App Store's editorial choice for that week.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVT-JkFjlvoo9sPag5AXqO2_MNsj1flAKn7Xv7W6n6lE5diel7zskkjRm89iYbi-iWBTEiVaH4JhhfisiKLkCbCvAo2kkB7VgVdCjb-ZAFzqkvFeFGi4vBifDCXC7upsrT3Bma0TONh4/s1600/TA+Forums+Game+of+the+Week!+(Apr+10th)+-+Touch+Arcade.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="483" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVT-JkFjlvoo9sPag5AXqO2_MNsj1flAKn7Xv7W6n6lE5diel7zskkjRm89iYbi-iWBTEiVaH4JhhfisiKLkCbCvAo2kkB7VgVdCjb-ZAFzqkvFeFGi4vBifDCXC7upsrT3Bma0TONh4/s640/TA+Forums+Game+of+the+Week!+(Apr+10th)+-+Touch+Arcade.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
1800 was featured in a few countries' puzzle pages which certainly had an effect on sustaining chart positions in their respective countries.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwDsW_zgzlWtPiEzl6Q8BawwkRKA1Dh_okhVSLdkHhgAhWOK3FE7-jSyFV_symXsM4slV2kKvsgicsxnk50WhiWmDQ_Sl_uP_rdnVRGdtdIhsvbA1yAZy2Fa79KAXVBgdWAVckgxtjG20/s1600/1800_new_itunes.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwDsW_zgzlWtPiEzl6Q8BawwkRKA1Dh_okhVSLdkHhgAhWOK3FE7-jSyFV_symXsM4slV2kKvsgicsxnk50WhiWmDQ_Sl_uP_rdnVRGdtdIhsvbA1yAZy2Fa79KAXVBgdWAVckgxtjG20/s640/1800_new_itunes.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
The events just discussed make an interesting download trend diagram. The usual whale's tail is in place but with a few spikes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If you refer to the download graph below you will see that the first spike is launch day, the second the effect that prMac and the Touch Arcade coverage gave me. The third smaller one towards the middle of the trend was on the eve of the iTunes 50 billion app download. While I can't be sure this was the case for the latter I can't find any coverage or article that could have accounted for this, nonetheless nearly 900 downloads were achieved on this day.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxgbxB8o3mCX54w-P-ud8_X7aYFn8ScZfAfTm1YsaBbvS70lMtUXZBBDfYSoangzqPLpIj3FPox5YAC5ylFgJzQrBaH0wp9DGUdoVb5k-1wdqTSdOvOOMAoUr2s8DvdlIaPr4Z92wLg3w/s1600/download_stats.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="513" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxgbxB8o3mCX54w-P-ud8_X7aYFn8ScZfAfTm1YsaBbvS70lMtUXZBBDfYSoangzqPLpIj3FPox5YAC5ylFgJzQrBaH0wp9DGUdoVb5k-1wdqTSdOvOOMAoUr2s8DvdlIaPr4Z92wLg3w/s640/download_stats.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
So without question from a downloads perpective this has eclipsed my goal of 5,000 downloads and a small one off feature having quite an effecrt At time of writing (early June 2013) 1800 has been downloaded over 15,000. Not bad for my second game that was written in a little over 25 hours and no marketing budget.<br />
<b><br /></b>
<b>Chart Positions</b><br />
So what countries did 1800 fair best in?<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 417px;">
<colgroup><col style="mso-width-alt: 3547; mso-width-source: userset; width: 73pt;" width="97"></col>
<col style="mso-width-alt: 1792; mso-width-source: userset; width: 37pt;" width="49"></col>
<col span="2" style="mso-width-alt: 3510; mso-width-source: userset; width: 72pt;" width="96"></col>
<col style="mso-width-alt: 2889; mso-width-source: userset; width: 59pt;" width="79"></col>
</colgroup><tbody>
<tr height="20" style="height: 15.0pt;">
<td class="xl65" height="20" style="height: 15.0pt; width: 73pt;" width="97"></td>
<td class="xl66" colspan="4" style="border-left: none; width: 240pt;" width="320"><b><span style="font-size: x-small;"> iPhone</span></b></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl65" height="20" style="border-top: none; height: 15.0pt;"></td>
<td class="xl67" style="border-left: none; border-top: none;"><b><span style="font-size: x-small;"> Games</span></b></td>
<td class="xl67" style="border-left: none; border-top: none;"><b><span style="font-size: x-small;"> Games/Action</span></b></td>
<td class="xl67" style="border-left: none; border-top: none;"><b><span style="font-size: x-small;"> Games/Puzzle</span></b></td>
<td class="xl67" style="border-left: none; border-top: none;"><b><span style="font-size: x-small;"> Top Overall</span></b></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Spain</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">33</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">14</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">7</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">106</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Argentina</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">61</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">28</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">11</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">241</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Paraguay</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">76</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">34</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">11</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">315</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Poland</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">52</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">26</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">13</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">182</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Grenada</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">110</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">45</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">14</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">264</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Ukraine</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">57</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">23</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">18</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">211</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Venezuela</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">95</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">44</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">19</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">291</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Portugal</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">70</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">21</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">23</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">270</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Chile</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">119</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">53</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">23</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Domnican Rep</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">168</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">61</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">26</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Guatemala</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">110</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">47</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">27</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">397</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">France</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">131</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">49</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">28</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Peru</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">146</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">57</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">29</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Italy</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">170</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">56</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">34</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Mexico</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">174</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">65</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">34</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Slovakia</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">154</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">55</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">35</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Czech Rep</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">176</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">69</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">35</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Colombia</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">199</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">78</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">39</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Belgium</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">261</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">78</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">71</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl67" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">New Zealand</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">161</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">84</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
</tbody></table>
<br />
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 417px;"><tbody>
<tr height="20" style="height: 15.0pt;">
<td class="xl65" height="20" style="height: 15.0pt; width: 73pt;" width="97"></td>
<td class="xl65" colspan="4" style="border-left: none; width: 240pt;" width="320"><span style="font-size: x-small;"><b> iPad</b></span></td></tr>
</tbody></table>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 417px;">
<colgroup><col style="mso-width-alt: 3547; mso-width-source: userset; width: 73pt;" width="97"></col>
<col style="mso-width-alt: 1792; mso-width-source: userset; width: 37pt;" width="49"></col>
<col span="2" style="mso-width-alt: 3510; mso-width-source: userset; width: 72pt;" width="96"></col>
<col style="mso-width-alt: 2889; mso-width-source: userset; width: 59pt;" width="79"></col>
</colgroup><tbody>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="height: 15.0pt; width: 73pt;" width="97"></td>
<td class="xl66" style="border-left: none; width: 37pt;" width="49"><span style="font-size: x-small;"><b> Games</b></span></td>
<td class="xl66" style="border-left: none; width: 72pt;" width="96"><span style="font-size: x-small;"><b> Games/Action</b></span></td>
<td class="xl66" style="border-left: none; width: 72pt;" width="96"><span style="font-size: x-small;"><b> Games/Puzzle</b></span></td>
<td class="xl66" style="border-left: none; width: 59pt;" width="79"><span style="font-size: x-small;"><b> Top Overall</b></span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Spain</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">90</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">27</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">19</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">214</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Grenada</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">81</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">28</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">20</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">174</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Slovakia</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">228</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">67</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">33</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Peru</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">210</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">62</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">37</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Czech Rep</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">352</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">108</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">41</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Chile</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">259</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">76</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">44</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Venezuela</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">333</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">75</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">49</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Argentina</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">338</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">94</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">53</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Portugal</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">328</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">79</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">59</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Poland</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">118</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">59</span></td>
<td class="xl65" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;"> -</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Ukraine</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">109</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">74</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">France</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">111</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">88</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Italy</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">165</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">103</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Guatemala</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">285</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">114</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Colombia</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">257</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">142</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Mexico</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">301</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">158</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Domnican Rep</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">357</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">170</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">New Zealand</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">267</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">199</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl66" height="20" style="border-top: none; height: 15.0pt;"><span style="font-size: x-small;">Belgium</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">264</span></td>
<td align="right" class="xl65" style="border-left: none; border-top: none;"><span style="font-size: x-small;">235</span></td>
<td class="xl67" style="border-left-style: none; border-top-style: none; text-align: right;"><span style="font-size: x-small;">-</span></td>
</tr>
</tbody></table>
<br />
<b>Analytics</b><br />
What about other analytical factors we spoke of earlier. Has the design led to more sticky games.<br />
<br />
Pictures paint a thousand words!<br />
<br />
<b>Session Length</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZliNZte5Y8rHvTd8SN_V-dKiCfgvdBoCOH51I6zQywhdBWEh0AK8R4b4QpyWe5pD-E56wqRvnQAJCMKs5tVqirWWvbCAAPgnUIaBVaXiaev9q_MCpn5USdJNARoZW5kLxeiMIo0DwE0/s1600/Screen+Shot+2013-06-09+at+22.07.34.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZliNZte5Y8rHvTd8SN_V-dKiCfgvdBoCOH51I6zQywhdBWEh0AK8R4b4QpyWe5pD-E56wqRvnQAJCMKs5tVqirWWvbCAAPgnUIaBVaXiaev9q_MCpn5USdJNARoZW5kLxeiMIo0DwE0/s640/Screen+Shot+2013-06-09+at+22.07.34.png" width="640" /></a></div>
<b><br /></b>
<br />
<br />
<br />
Over recent weeks the median length this has tailed off a little from 2 minutes a session to just over a minute, but nonetheless a median of over 1 minute playing the game across over 35,000 sessions is pretty good given that a game on any of the levels could be played in a matter of seconds.<br />
<br />
<b>Games played</b><br />
The statistic on session length and short game bursts is backed up by the new game event I added in which shows the number of games played per session.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YmnQBu4SKwo9P8KhbYeDDWr8R6WGpHWhPI8R3a3LC-KkNFHc-dr6N9my-YTc-nD3U-KWqVOj_8NjehzTKX_AwK0vdlsA06lBD8hgiZLKr4xvm2DK3lkKQPMqAXLzXWkS2npvc_Ro6ng/s1600/Screen+Shot+2013-06-09+at+22.10.52.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0YmnQBu4SKwo9P8KhbYeDDWr8R6WGpHWhPI8R3a3LC-KkNFHc-dr6N9my-YTc-nD3U-KWqVOj_8NjehzTKX_AwK0vdlsA06lBD8hgiZLKr4xvm2DK3lkKQPMqAXLzXWkS2npvc_Ro6ng/s640/Screen+Shot+2013-06-09+at+22.10.52.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
At time of writing 670,000 games of 1800 have been played. A statistic which I still struggle to comprehend that my little game has been played that many times and occupied that many people's time and attention.<br />
<br />
<b>Audience</b><br />
The last statistic was to ascertain just what the demographic of 1800 had become. When I talked earlier about accessibility just how far reaching had it proven to be?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGyvvEeIpIpLQyo8I0TZQ1zFvXV_lcHpjSC30d-GhBKgXJeW2j5Rvm9_NufJbhSl3MlLFZT_rGjZLovJDQUp-ch-YiCMJg-8KaOpXC5tCP6lI1492c5Hd1cazq_nFXvFhjLFEJAAQyfdQ/s1600/Screen+Shot+2013-06-09+at+22.13.48.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGyvvEeIpIpLQyo8I0TZQ1zFvXV_lcHpjSC30d-GhBKgXJeW2j5Rvm9_NufJbhSl3MlLFZT_rGjZLovJDQUp-ch-YiCMJg-8KaOpXC5tCP6lI1492c5Hd1cazq_nFXvFhjLFEJAAQyfdQ/s640/Screen+Shot+2013-06-09+at+22.13.48.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe2xVjE5785oC6ffFCC9SsJJqq81FY6Ct7Slp4W9wC0kBF9C3vHDcGK-bqBSpoNsWM4enwlR5PYHj_5DanNlLhyphenhyphenOOi8R_O4jefHHi8wy0BXXIit5tD1syw8AOpJJDax8Ztz4swFId8PTc/s1600/Screen+Shot+2013-06-09+at+22.14.03.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe2xVjE5785oC6ffFCC9SsJJqq81FY6Ct7Slp4W9wC0kBF9C3vHDcGK-bqBSpoNsWM4enwlR5PYHj_5DanNlLhyphenhyphenOOi8R_O4jefHHi8wy0BXXIit5tD1syw8AOpJJDax8Ztz4swFId8PTc/s640/Screen+Shot+2013-06-09+at+22.14.03.png" width="640" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
As can be seen from statistics that could be obtained it does show a pretty wide audience for 1800 which aligns itself to its accessible and casual nature.<br />
<br />
<b>Monetisation</b><br />
Probably the million dollar question (pun intended :) ) is just how much money has 1800 made. Not a lot, but to be honest when I originally wrote this that wasn't the point. I wasn't comfortable in my artistry or execution to ask for someone's hard earned cash but instead decided to subsidise with ads. A decision I wasn't entirely happy with as it goes against the minimalist design of the game.<br />
<br />
What was interesting as 1800 was accessed by more and more people was just how many people wanted to pay for it. A concept and request I thought I never thought I would see. People even asked for my PayPal account to make a donation.<br />
<br />
Obviously not comfortable with donations I decided the easiest thing to do was to add in an ad removal option that would provide some money and give the option for donations. While the sentiment was great this hasn't been a money spinner but instead 6 generous souls have paid for this option.<br />
<br />
So just how much has 1800 earned and by what means?<br />
<br />
Flurry: $12.93<br />
iAd: $28.77<br />
AdMobs: $14.47<br />
<br />
Total: $56.17<br />
<br />
Not bad I guess but certainly not life changing and certainly not enough for me to consider giving up my full time job.<br />
<br />
<b>Beyond Financial Reward</b><br />
1800 for me has been a success which is weird thing to say considering what I have just stated above concerning the financials. Making the game accessible has meant the audience has been wide and diverse and that has naturally led to larger downloads. Hitting upon the "just one more game" obsession has seen the large number of games played.<br />
<br />
Purely by chance the design element was a fortunate fluke and had no idea at the time it was en vogue. Maybe I am doing myself an injustice and that my artistic eye hit upon something that was right.<br />
<br />
What I have learned from my 1,000+ hours developing games is the craft of writing games and not the monetary reward. If you put your heart and soul into something then the rewards will come.<br />
<br />
The exposure in TouchArcade certainly helped a lot. It will be interesting to see from my next game just how much exposure and cross promotion from this base will influence the download figures but without such influential placement and articles I have to be realistic that achieving these levels of downloads could be challenging.<br />
<br />
But despite all of this 1800 for me has gone beyond monetary reward. I won't betray the confidence of the person who wrote to me but instead will summarise their story to make my point.<br />
<br />
A player of 1800 contacted me about a week after launch. They told me their story of how they were once policeman who was called out to an accident one night. While at the scene they themselves were hit by a car. A significant period of time passed which was spent rebuilding their life as the injuries sustained meant they would never work as a policeman again. The injuries had meant that multi-tasking and concentration had become a struggle. Most recently they had been taking exams to build steps for their future.<br />
<br />
The email continued to say that having played 1800 over a period of a few days not only had it helped them improve their concentration and reactions but had helped them achieve higher marks in their exam.<br />
<br />
To me that is priceless.<br />
<br />
<a href="https://itunes.apple.com/us/app/1800/id622356272?ls=1&mt=8" target="_blank">1800 is available for free on iOS for iPhone, iPad and iPod via the AppStore</a><br />
<br />
Follow me at <a href="https://twitter.com/gameproject10k" target="_blank">@gameproject10k</a> for further updates and adventures.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com2tag:blogger.com,1999:blog-2627044686641246157.post-29488375925454827532013-05-15T13:18:00.000-07:002013-08-24T02:19:41.368-07:00Non-public API usage woesFirst and foremost if you have come across my post you have my condolences. Not because of landing here but more you must have gone through the frustrating exercise that I have lost 3 days of my life to.<br />
<br />
Having deployed my latest version of 1800 to app store I couldn't understand why I was greeted with the email of:<br />
<br />
<i><b>Non-public API usage:</b></i><br />
<i><br /></i>
<i>Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6.</i><br />
<i>If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.</i><br />
<i><br /></i>
<i>If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview@apple.com. For further information, visit the Technical Support Information page.</i><br />
<i><br /></i>
... and an invalid binary for my efforts. This has all come about due to a new privacy policy instilled by Apple on the 1st May 2013 which prohibits the use of using the devices UDID for tracking or identification. If you want to read a bit more about it check it out <a href="http://arstechnica.com/apple/2012/09/ask-ars-whats-the-big-deal-with-iphone-udids/" target="_blank">here</a>.<br />
<br />
I am going to write about my experiences but I will summarise so that you can go away and solve the problem now but come back to perhaps pick up a few tips.<br />
<br />
<b>Tip #1 and my solution - Update AdMob SDK</b><br />
<br />
Just to be clear I am using Unity, Futile and Prime31 plugins. At first I thought it was the Prime31 plugins as I am only using Unity and those. The problem was the Adwhirl plugin from Prime31 but more specifically the AdMobs SDK. All you have to do is download the latest SDK for <a href="https://developers.google.com/mobile-ads-sdk/download#downloadios" target="_blank">here</a> and then copy its contents to <b>assets/editor/AdWhirlAdMob</b> folder. All being way you can see your friend again of <b>"Waiting for review"</b>.<br />
<br />
While Prime31 don't use the UDID uniqueIdentifier I was ignorant to how the AdMobs SDK was updated and assumed when I updated the Prime31 Adwhirl plugin it updated the third party SDKs. Not the case so you have been warned. I also had a red herring as Astavoid didn't have AdWhirl plugin in its project but somehow was in the editor folder which meant I had earlier eliminated this plugin as an issue as it wasn't (in theory) across both apps.<br />
<br />
If you have got this far into the blog then perhaps the above hasn't worked. If thats the case then all is not lost. I've tried a few things to try and get the solution above so maybe be these will help.<br />
<br />
<b>Tip #2 - Find and replace uniqueIdentifier</b><br />
From within XCode do Cmd-Shift-f and search for:<br />
<br />
<span class="pun" style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;">[[</span><span class="typ" style="border: 0px; color: #2b91af; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;">UIDevice</span><span class="pln" style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;"> currentDevice</span><span class="pun" style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;">]</span><span class="pln" style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;"> uniqueIdentifier</span><span class="pun" style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; vertical-align: baseline;">]</span>.<br />
<br />
This should list out all instances of this method. Instead using the above method use a hash of the mac address like:<br />
<br />
<pre class="default prettyprint prettyprinted" style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">+</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">NSString</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">*)</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">GetUUID</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">{</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">CFUUIDRef</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> theUUID </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">CFUUIDCreate</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">NULL</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">);</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">CFStringRef</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="kwd" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: darkblue; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">string</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">CFUUIDCreateString</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">NULL</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">,</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> theUUID</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">);</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">CFRelease</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">(</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">theUUID</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">);</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="kwd" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: darkblue; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">return</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">[(</span><span class="typ" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: #2b91af; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">NSString</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> </span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">*)</span><span class="kwd" style="background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: 0px; color: darkblue; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">string</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;"> autorelease</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">];</span><span class="pln" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span class="pun" style="background-color: transparent; border: 0px; font-size: 13.63636302947998px; margin: 0px; padding: 0px; vertical-align: baseline;">}</span></code></pre>
<br />
or as alternative within code base use this method instead<br />
<b><br /></b>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px;"> </span><a href="http://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor" style="background-color: white; border: 0px; color: #4a6b82; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13.63636302947998px; line-height: 17.27272605895996px; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">[UIDevice identifierForVendor]</a><b> </b><br />
<br />
<b>Tip #3 - Command Tools</b><br />
Still getting rejected then the chances are one of your compiled libraries or frameworks has the little blighter in. If so not a problem (well not yet anyway). I don't profess to be an expert in this area so apologies if factually incorrect and happy to be corrected for the greater good :)<br />
<br />
Download XCode command tools. Easier send than done you say. <br />
<br />
Xcode includes a new "Downloads" preference pane to install optional components such as command line tools, and previous iOS Simulators. To open this pane click the "Xcode" button in the top left of the screen near the Apple logo, then click "Preferences", then click "Downloads".<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-QnkzRG15HKmtxQ6Wm55KEFwhQ1Vd1QAYDLQ29Bx3kZ1ssmRVoG8WwYtaOYm1Iq4RBNyrBVr39zYYF3fAmFeztt9JCrGYAGjZzBlhQEfzqBCX6jDWDfS92sFaxbOSg_8LgW8sqLXpZjQ/s1600/SMQvZ.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-QnkzRG15HKmtxQ6Wm55KEFwhQ1Vd1QAYDLQ29Bx3kZ1ssmRVoG8WwYtaOYm1Iq4RBNyrBVr39zYYF3fAmFeztt9JCrGYAGjZzBlhQEfzqBCX6jDWDfS92sFaxbOSg_8LgW8sqLXpZjQ/s640/SMQvZ.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Once downloaded open up a terminal window and navigate to where your xcode project is located. Then choose your framework files or libraries you want to check with the strings command of:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
strings <your file>.a | grep uniqueIdentifier</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This will then iterate through the files looking for the method you specified as the last parameter. This will allow an investigation and the next area of investigation.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Hope this helps I certainly know information was scarce so if it just helps a couple of people then it will alleviate some pain that I had to go through :)</div>
<br />mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com2tag:blogger.com,1999:blog-2627044686641246157.post-6946231741671301622013-03-31T15:06:00.000-07:002013-04-01T11:28:28.953-07:001800 out April 2013<p>Just a short note to say the game we have been working on in March is due for release to the App Store in April.</p>
<p>To get a preview of the game modes, levels and experience why not watch the short trailer below.</p>
<iframe width="420" height="315" src="http://www.youtube.com/embed/38UwZsjYpd4" frameborder="0" allowfullscreen></iframe>
<p>Also follow and support the forthcoming release on Toucharcade at <a href="http://forums.toucharcade.com/showthread.php?t=183923">http://forums.toucharcade.com/showthread.php?t=183923</a> and <a href="http://forums.toucharcade.com/showthread.php?t=183924">http://forums.toucharcade.com/showthread.php?t=183924</a>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com3tag:blogger.com,1999:blog-2627044686641246157.post-70150566602813557152013-03-10T03:22:00.001-07:002013-03-10T03:22:40.143-07:00Indie Dev Insight: Whitaker Trebella<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZkiReN_oNuxpFh4tLWvs3Od39dbVNT0ey08H216y7UGIUr5Pa-kR9U4QjZigWlhegSnTbPGIe5EXjw0m00Sz88QKkYJmfN44pT42NlQFyGZNdb_HT9ttKb0HCGal3uiQdE8RIrYGWfc/s1600/images.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZkiReN_oNuxpFh4tLWvs3Od39dbVNT0ey08H216y7UGIUr5Pa-kR9U4QjZigWlhegSnTbPGIe5EXjw0m00Sz88QKkYJmfN44pT42NlQFyGZNdb_HT9ttKb0HCGal3uiQdE8RIrYGWfc/s1600/images.jpg" /></a></div>
<div>
It was during 2012 that I first came to learn of Whitaker. Didn't know him from Adam and at this point hadn't released anything but everybody I was following was either talking about him or his unreleased game <a href="https://itunes.apple.com/gb/app/polymer/id499490016?mt=8" target="_blank">polymer</a>. </div>
<div>
<br /></div>
<div>
I couldn't quite work out why somebody who seemed a relative unknown like myself was getting so much attention. This was four fold: </div>
<div>
<br /></div>
<div>
<ol>
<li>Some notoriety in the industry for doing the music for games such as Super Stickman Golf</li>
<li>An excellent marketing strategy - see more later on this</li>
<li>A great app in <a href="https://itunes.apple.com/gb/app/polymer/id499490016?mt=8" target="_blank">polymer</a></li>
<li>A thoroughly nice chap</li>
</ol>
</div>
<div>
Since then we have exchanged quite a few tweets not least because he was an early adopter of <a href="https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDQQFjAA&url=https%3A%2F%2Fgithub.com%2FMattRix%2FFutile&ei=3l08UbWhO-7e7AbM1oHwCQ&usg=AFQjCNEmfpK-wDTZkpufKzIbInAk5dUvKw&sig2=SFc3Mbo5fnkAvOEuMmyqJw&bvm=bv.43287494,d.ZGU" target="_blank">Futile</a> and would very kindly be my sounding board. If you haven't already follow <a href="http://twitter.com/wtrebella" target="_blank">Whitaker on Twitter</a> not least for his obsession in changing his avatar every week :).</div>
<div>
<br /></div>
<div>
What proceeds is probably one of the most insightful blogs for newbie indie gamers and is the very reason I started my project and indeed this blog to share and have other people share such knowledge. Enjoy!</div>
<div>
<b><br /></b></div>
<div>
<b>What got you into writing games?</b></div>
<div>
A couple years ago, I was just starting to get into the world of doing music for games. While I loved it, the more I did it, the more I had the urge to make a game of my own. Unfortunately though, I had absolutely 0% programming experience. I hadn't programmed a day in my life. So I had a lot to learn. More here: <a href="http://www.polymerapp.com/">http://www.polymerapp.com/</a> </div>
<div>
<br /></div>
<div>
<b>What's good and bad about what you do?</b></div>
<div>
I do music for games and I also create my own games. In some ways this is awesome. Whenever I hit a creative wall with one thing, I can switch over to the other. This gives me a way to sort of leapfrog over each other, always progressing in a different way. At the same time, this can be troublesome. If I'm in the middle of a successful programming run while making my game, I tend to have a very hard time stopping and focusing on music for awhile. The same thing happens in reverse when I'm really into a song I'm composing.</div>
<div>
<br /></div>
<div>
<b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b></div>
<div>
It's hard to say what I would do differently in regards to Polymer. I seriously did the best I could with the knowledge I had. Of course, looking back at my code horrifies me now. But at the time, I just did what I could to finish it. I'm trying to be more organized this time around with my new game, but who knows what will happen as it progresses. The one main thing I would have done differently with Polymer was to take out the IAP's that popped up, allowing you to skip the "grinding." This pissed some people off, and I think it's one of the reasons that it wasn't quite as respected in the indie community as it could have been. I'm not against IAP's in any way, but I think the way I implemented them in regards to gameplay could have been handled better (I'm not referring to the purely cosmetic IAP's though). </div>
<div>
<br /></div>
<div>
<b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b></div>
<div>
<ul>
<li>For Polymer: Cocos2d</li>
<li>For my next game: Unity and Futile</li>
<li>For audio/music: Logic Pro</li>
<li>For art: Photoshop</li>
</ul>
</div>
<div>
<b>What made you choose these tools over others?</b></div>
<div>
Cocos2d: it seemed like the best option at the time. It was iOS-specific (which was my only target for Polymer). And there were a TON of resources out there. Pretty much any problem I had could be solved by a Google search. Very helpful for a beginning programmer (well, for any programmer for that matter).</div>
<div>
<br /></div>
<div>
Unity and Futile: I really wish I could have made Polymer multi-platform. It's the biggest thing I'm looking forward to with my next game. I'm shooting for PC/Mac/iOS/Android. I feel that I missed out on a big chunk of market because of only focusing on iOS (even though it was the right choice at the time for my skill level). Also, Futile is very similar to Cocos2d in execution so it comes naturally. Finally, I may eventually want to get into 3d games, so making the Unity transition now is a good first step. </div>
<div>
<br /></div>
<div>
<b>Given you experiences in music what advice could you give to tone deaf indies who want to take a stab at their own music?</b></div>
<div>
I wrote two blog posts about this.</div>
<div>
<br /></div>
<div>
Part I: <a href="http://www.whitakerblackall.com/blog/music-theory-for-beginners/">http://www.whitakerblackall.com/blog/music-theory-for-beginners/</a></div>
<div>
Part II: <a href="http://www.whitakerblackall.com/blog/music-theory-for-beginners-ii/">http://www.whitakerblackall.com/blog/music-theory-for-beginners-ii/</a></div>
<div>
<br /></div>
<div>
Music theory is super-complicated. Because it seems like second nature to me now, it's easy to forget how difficult it can be to explain. The biggest thing I can recommend for beginners is to *get feedback.* This is true for any new or amateur skill. Getting feedback from pros/teachers is by far the best way to improve your sound and continue on your way to more professional-sounding music.</div>
<div>
</div>
<div>
<b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b></div>
<div>
I wrote a blog post about this too:</div>
<div>
<br /></div>
<div>
Promoting your game through Twitter: <a href="http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/">http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/</a></div>
<div>
<br /></div>
<div>
I think Twitter was probably the most important thing in all this. I've been building my follower count for years now, trying to make a good reputation in the indie gamedev community. It's really important to talk to other industry professionals, be willing to offer and receive help, and to be patient. As for other PR things, my wife Dana helped me a ton because she's a PR professional. One of the most important things with PR is to have a "story." My story for Polymer was that it was my first game, and I was branching out from doing music. I think this is what helped some people latch onto it, and also be inspired by it (I got a LOT of comments saying it inspired people to finally try to make their own game.) I posted my story (<a href="http://www.polymerapp.com/my_story">http://www.polymerapp.com/my_story</a>) on Reddit, and it got a lot of attention. I also wrote a press release (with a TON of help from my wife) and reached out to a lot of targeted press contacts who I thought may be interested.</div>
<div>
</div>
<div>
<b>What effect do you think free to play has had upon your game design?</b></div>
<div>
Not a lot. I've considered doing F2P, but I don't know if I want to go down that route, especially at this point. F2P is just not part of my brand. I want to make standalone games that you buy once and play. Having said this, I get very annoyed when people associate F2P with being "evil." It's a business decision that works well for many people. It's just not one I want to take at the moment.</div>
<div>
</div>
<div>
What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</div>
<div>
<ul>
<li>Reddit's gamedev community: <a href="http://www.reddit.com/r/gamedev">http://www.reddit.com/r/gamedev</a></li>
<li>3d games math (currently in the middle of reading this): <a href="http://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231">http://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231</a></li>
<li>The Nature of Code (also in the middle of reading this and it's been EXTREMELY helpful): <a href="http://natureofcode.com/book">http://natureofcode.com/book</a></li>
<li>Twitter (obviously)</li>
</ul>
</div>
<div>
<b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b></div>
<div>
I don't think the bubble will burst necessarily. But I do think we're entering into a totally different era of app development. It's way harder now to develop a super popular hit because of how inundated the market is. It's getting harder and harder for indies to compete with the big studios, at least when it comes to polish. It's incredibly important, more than ever, to polish your game as much as humanly possible. Make the best possible game you can. I've heard this said before, and I'll paraphrase: for each game, you have one chance. If your game's not 100% ready, don't launch. Making a good game is the most important thing, before anything else. The F2P revolution is also taking over so it will be interesting to see where that leads. </div>
<div>
<br /></div>
<div>
<b>Do you think app games will eventually kill off Triple A titles as we know them?</b></div>
<div>
Well, that's a tricky question. I think we may be leading towards a universal solution. I think eventually one app/game will run on all devices and there won't be many console-dependent things anymore. So I don't think apps will "kill" AAA titles, but I think gaming as a whole is going through a major transition. </div>
<div>
<br /></div>
<div>
<b>What does 2013 have in store for Whitaker?</b></div>
<div>
I'm currently working on a new game. It's taken me WAY too long to figure out what to do. I've prototyped a ton of things and thrown out a lot of crappy ideas. But I think I've finally settled on something that's gonna be pretty awesome. I've also been working on a lot of music, including the soundtracks for the upcoming Danger Boat, Super Stickman Golf 2, and Nimble Quest. </div>
<div>
<br /></div>
<div>
<b>Any additional advice you would give for up and coming indie developers?</b></div>
<div>
Make the best game you possibly can. That should be your first goal. Get as many industry pros to look at it as possible. Get BRUTAL feedback. Network at local industry events. Do not settle for less than perfect (well, as perfect as your skills can get you). Use Twitter (correctly!!!). Don't launch until your game is absolutely 100% ready. Be insanely nitpicky about every tiny seemingly unimportant detail. Every single pixel matters. POLISH POLISH POLISH. If you do all these things, marketing your game will be much easier.</div>
<div>
<br /></div>
<div>
Go download <a href="https://itunes.apple.com/gb/app/polymer/id499490016?mt=8" target="_blank">Polymer </a>immediately available for both iPhone and iPad!</div>
mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-659374794557509402013-02-28T11:27:00.000-08:002013-02-28T11:27:28.577-08:00Indie Dev Insight: Streaming Colour<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifF6-Sd9oh94cP9z0UvfrH2fpEeA_H3gDJC6xktXAf7lIcHphW30PDGctgTnVARDdM2-fA1cRZs7jcSc7FwyNFAmPEO4NYDCGdaH47Eu3GdVMaO4rUJvq1cuzl02eBa3-CiWd2O4Ncw0Q/s1600/download.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifF6-Sd9oh94cP9z0UvfrH2fpEeA_H3gDJC6xktXAf7lIcHphW30PDGctgTnVARDdM2-fA1cRZs7jcSc7FwyNFAmPEO4NYDCGdaH47Eu3GdVMaO4rUJvq1cuzl02eBa3-CiWd2O4Ncw0Q/s1600/download.jpeg" /></a></div>
<br />
When I first got interested in writing games abut 18 months a go my first choice for inspiration was to hit Twitter. Like the internet if you don't really know what you are looking for the choices, options and information overload is overwhelming.<br />
<br />
Soon though you get drawn to those who repeatedly have something useful to say on regular occasions and have an affinity to on your development. Owen Goss is one of those who I started following in the early days. I don't recall why specifically but I think it was the fact that a number of people I was following were all following him. <br />
<br />
<br />
Owen formed Streaming Colour in 2008 for the purposes of creating fun, non-violent, and creative video games. Prior to founding Streaming Colour, Owen worked in the console games industry for 5 years at such companies as Electronic Arts Canada and Propaganda Games, developing for platforms like the PSP, Xbox 360 and PS3. In 2008 Owen decided to head out on his own and form his own company with the goal of making the kinds of games that he enjoys playing the most.<br />
<br />
Most recently he launched the perplexing yet highly addictive game <a href="https://itunes.apple.com/gb/app/finger-tied/id533011708?mt=8" target="_blank">Finger Tied</a> for iPad. Recently he took some time out to share his thoughts on a few of my questions.<br />
<br />
<br />
<b>What got you into writing games?</b><br />
<br />
I've been programming since my early teens, but I grew up in an artistic household. I really wanted a career that would allow me to combine my love of art with my love of programming. Game development provides daily challenges at the intersection of art and technology. I love it.<br />
<br />
More specifically, at university I got a degree in computer science and then got a job building enterprise Flash websites after graduation. A couple of years working there gave me the experience to get a job as a lead programmer at EA in 2004 building game UIs in Flash. I worked on console games for 4.5 years as a lead UI programmer and senior gameplay programmer. I left the console industry in 2008 and I've been doing the indie thing ever since.<br />
<br />
<b>What's good and bad about what you do?</b><br />
<br />
The good: doing a job that I love; being my own boss; creating something out of nothing; getting to make whatever I want; and being part of an amazing indie community.<br />
<br />
The bad: slogging through the parts of making games that are both really hard and aren't fun; dealing with self-doubt when you're working on something by yourself over long periods of time; and dealing with all the parts of running a business that isn't making games.<br />
<br />
<b>How many people are involved in writing games at Streaming Colour. What roles do they take on?</b><br />
<br />
Streaming Colour is just me. On most of my games I've been responsible for: game design, programming, art, sound design, project management, PR, marketing, accounting, and anything else that comes up. Though for some games I've hired an artist and/or sound designer. The one thing I always have someone else do is the music. However, I'm currently collaborating on a game with Matt Rix, creator of Trainyard, and this collaborative process is proving to be a lot of fun.<br />
<br />
<b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b><br />
<br />
With every project you try to learn from your mistakes. One of the biggest challenges in the app market is that it's constantly changing. But in general: try to keep the games small and stay agile. Look for the fun quickly and build on that. Worry less about more features, but instead concentrate on nailing the core of the game. Get feedback from people who can be honest with you earlier than you think you should. Don't build your own engine/tools when an existing engine/tool will do the job.<br />
<br />
<b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b> <br />
<br />
I've used a lot of different tools and engines since I started 4.5 years ago. I'll try to list the ones I've used more than a few times.<br />
<br />
<b>Engines:</b><br />
<br />
<ul>
<li>custom OpenGL-based engine</li>
<li>cocos2d</li>
<li>cocos2d-x</li>
<li>Unity + Futile</li>
</ul>
<br />
<b>Tools:</b><br />
<br />
<ul>
<li>Xcode</li>
<li>MonoDevelop</li>
<li>Photoshop</li>
<li>Inkscape</li>
<li>TexturePacker</li>
<li>Audacity</li>
<li>Garage Band</li>
<li>Blender</li>
<li>Git</li>
<li>A notebook and pen</li>
<li>twitter</li>
</ul>
<br />
(I only part kid about adding twitter to my list of tools. The community I've met through twitter has been invaluable over the past 4.5 years.)<br />
<br />
<b>What made you choose these tools over others?</b><br />
<br />
Mostly familiarity and efficiency of use, but also price. I try to choose the tool that is going to allow me to complete the job as efficiently as possible. Sometimes this means paying for software, but sometimes, you get lucky and the best tool is also cheap/free.<br />
<br />
<b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br />
<br />
I've had little success with running my own forums, as its hard to keep spam out. I've never paid for PR, but many swear by good PR firms.<br />
<br />
Build relationships with your fans and players. Engage with your players where the players hang out (e.g. TouchArcade forums, etc). Keep making games and finding ways to let your fans know about it. More Games pages, twitter Facebook, mailing lists, websites. Build relationships with the press so they know who you are and what your games are. Go to conferences and meet people face to face. If you have a big enough game and timeline, show at PAX and other gaming events.<br />
<br />
Marketing is just as hard as making your game. You need to be thinking about it and acting on it all throughout the process of making your game. If you're done your game and are just starting to thinking about marketing, you waited too long. All that said, this is an area where I've made a lot of mistakes and I'm still learning a lot about how to successfully market my games.<br />
<br />
<b>What effect do you think free to play has had upon your game design?</b><br />
<br />
Honestly, I'm not sure yet, but it's something I've been thinking about more and more.<br />
<br />
<b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b><br />
<br />
Many of the tools I use, I learned at jobs before going indie. For things I'm learning for the first time, I like books for some things (e.g. learning a new programming language, math, physics theory), but for others I like forums, online tutorials, and digital documentation (e.g. I've been learning to model in Blender almost exclusively by watching youtube videos and reading their online docs). Having a circle of friends who are smarter than you is also a great way to learn.<br />
<br />
<b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b><br />
<br />
The app market feels a lot to me like the .com boom felt in the late 90's. It felt at the time like you could do no wrong. All you had to do was create a website and get rich. People seem to have the same feeling about apps: I just need to make an app and I'll get rich. Those of us who have been making apps for a few years know that this isn't the case. Yes, some people are making a lot of money, but most of us, by working hard, are slowly finding a way to eek out a living. My hope is that we'll see more people approaching app/games development as a sustainable way of making a living. Not shooting for instant riches, but trying to build a catalogue of quality apps/games that garner attention and earns their developers a living.<br />
<br />
<b>Do you think app games will eventually kill off AAA titles as we know them?</b><br />
<br />
No. I think there will always be room for the Big video games; the blockbuster, mega-budget games. But I think they will be less dominant. People are gaming more and more on the go. Once everyone considers themselves someone who plays games, I think Big games will just become another market in the larger games market.<br />
<br />
<b>What does 2013 have in store for Streaming Colour?</b><br />
<br />
Right now I'm working on a new game with Matt Rix (the details are still secret at this point). After that, even more games!<br />
<br />
<b>Any additional advice you would give for up and coming indie developers?</b><br />
<br />
Making a living making games is not easy. It will be hard. Sometimes you will hate the game you're making. Sometimes you will want to quit. But, if you really love making games, you will find a way to keep going. I believe the key to long-term success is persistence. Those who eventually find success are the ones who kept going; who kept learning from their mistakes; who kept improving. Sometimes this will mean taking on contract gigs or getting a job to pay your bills. But if you love it enough, you will keep at it.<br />
<br />
Download <a href="https://itunes.apple.com/gb/app/finger-tied/id533011708?mt=8" target="_blank">Finger Tied</a> for iPad If you don't know Finger Tied is a multi-touch puzzle game, only for the iPad. In each Finger Tied puzzle, fill in a shape by moving up to four fingers around on your iPad at the same time. But be careful, lift a finger, or go out of bounds, and it's game over. Finger Tied will test your mental, as well as your finger abilities!<br />
<br />mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-55705789543357256852013-02-20T13:39:00.000-08:002013-02-20T13:39:08.901-08:00Content Scaling: The magic sizeWhen I was writing games in Corona SDK / Lua I was helped no end by <a href="http://www.coronalabs.com/blog/2010/11/20/content-scaling-made-easy/" target="_blank">this incredibly helpful article</a> on content scaling. This worked on the premise of ratios to deal with the different aspect ratios. This is related to my <a href="http://mygamingproject.blogspot.co.uk/2013/02/ios-resolutions-handy-guide.html" target="_blank">previous post in regarding the iOS screen resolutions</a>.<br />
<br />
Without a doubt this concept works and really does for the fragmented screen resolutions of android. This principle also worked fine for iOS until the iPhone 5 came along. This got me thinking about this concept not least because I wanted to do as little work as possible when it came to creating background images etc.<br />
<br />
If you read the article in Corona they suggest that applying an image of 380 x 570 on a 320 x 480 resolutions provides the appropriate<b> bleed </b>around the <b>safe zone </b>of the screen resolution. However, this doesn't work when applying to the newer versions of iOS not least the iPhone 5.<br />
<br />
So I did a little playing and a minor adjustment and came up with the magic size that seems to work for all and that magic size is ...<b>385 x 570</b>.<br />
<br />
Not that different in size you say but look at how this works for the iOS resolutions with simple multiplications.<br />
<ul>
<li>320 x 480 use 385 x 570</li>
<li>640 x 960 use 770 x 1140</li>
<li>640 x 1136 use 770 x 1140</li>
<li>768 x 1024 use 770 x 1140</li>
<li>1536 x 2046 use 1540 x 2280</li>
</ul>
This then works to an exact ratio of 1x, 2x and 4x with only 3 different backgrounds needed.<br />
<br />
The principle there is that by declaring a screen size is a “safe zone” — any content outside this area of the background image might be cropped, either on both sides or at the top and bottom, depending on the target screen’s aspect ratio. So when planning your image you may applying additional grass, trees, stars etc. to make up the area which isn't a playing area for that aspect ratio but will take up screen real estate.<br />
<br />
This principal works as of February 2013 and will hopefully be updated when Apple bring out a further X amount of screen resolutions to contend with.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-23447043239155270632013-02-20T12:39:00.002-08:002013-05-14T00:46:33.572-07:00iOS Resolutions - a handy guide<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8akFpVM0G784L_zbvRwzh2f6HQgZDPXZZBTBt1MTvvKqFpm1qABYEzLcDr-GNh3-Da-s2b4dXIhx6ZrT5jRNS1hC4xG-Ktcdib2ajfIsvfoo5AL6f3EsgpaadoodxPMxCE0qEJdAwe3g/s1600/ios_resolutions.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8akFpVM0G784L_zbvRwzh2f6HQgZDPXZZBTBt1MTvvKqFpm1qABYEzLcDr-GNh3-Da-s2b4dXIhx6ZrT5jRNS1hC4xG-Ktcdib2ajfIsvfoo5AL6f3EsgpaadoodxPMxCE0qEJdAwe3g/s200/ios_resolutions.png" width="150" /></a></div>
While working on my most recent game I wanted to try and target iOS devices. I constantly found myself trying to work out the screen resolutions as well as how a background image would differ between the sizes.<br />
<br />
What I came up with is the attached positional guide with screens horizontally and vertically aligned so that you see the various challenges ahead in terms of planning your imagery.<br />
<br />
I hope it helps. Its certainly stopped me having to visit half of the internet.<br />
<br />
Just click on the image to show at full size.<br />
<br />
<br />
Check out my <a href="http://mygamingproject.blogspot.co.uk/2013/02/content-scaling-magic-size.html" target="_blank">related post on content scaling</a> and the magic size for planning your images.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-27515739924868256552013-02-15T12:03:00.000-08:002013-02-15T12:03:47.503-08:00Indie Dev Insight: Imangi Studios<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJLwmJWAjndMnx4iQBOILE7-OmJ9SoVBwezhARJEaOUdJDLJOC5BCC7Hat7WtqXAvuevXks3i20jxuYbAh36PdFimWqzQmMHRTYcBa9qvdsZoFwywKJAIl4Cc43fQRlW6Zh0tIZjE-2WA/s1600/tr2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJLwmJWAjndMnx4iQBOILE7-OmJ9SoVBwezhARJEaOUdJDLJOC5BCC7Hat7WtqXAvuevXks3i20jxuYbAh36PdFimWqzQmMHRTYcBa9qvdsZoFwywKJAIl4Cc43fQRlW6Zh0tIZjE-2WA/s320/tr2.jpg" /></a>
<br />
If you haven't heard of Temple Run series then you must have been living under a rock for the last couple of years. Temple Run 2 has <a href="http://pressreleases.triplepointpr.com/2013/01/31/temple-run-2-breaks-record-with-50-million-downloads-in-two-weeks/">broken records</a> for being the fastest game to 50 million downloads and there are certainly no signs of this slowing.<br />
<br />
Despite this phenomenal success, Keith Shepherd, one half of Imangi Studios, remains one of the nicest, helpful and down to earth people you should every meet. In my journey to date he has been kind enough to share emails and tweets with advice and continues that support with some invaluable learnings as to how Imangi and the Temple Run series has become such an unstoppable juggernaut.<br />
<br />
<b>What got you into writing games?</b><br />
I got interested in making games as a kid. Mostly because I was playing a lot of video games and I wanted to know how they worked so I could make my own. That led me down the path of learning how to program. I tinkered with it a bit when I was a kid but never really knew enough to make games. It wasn't really until high school when I took my first programming class in Pascal that I really started to learn enough to make games. I tinkered on and off with making games all the way through college, but never really ever finished of released anything. When I graduated from college with a computer science degree I wanted to get into the games industry, but it was the height of the dot com boom and I ended up getting a job with an e-commerce startup instead. It wasn't until Natalia and I founded Imangi that I was able to get back to my childhood dreams of writing games and actually publish my first game.<br />
<br />
<b>What's good and bad about what you do?</b><br />
I love making games. It's such a creative field and is a combination of so many things I love, art, programming, music, sound, game design, storytelling, etc. I truly feel lucky to be able to make games for a living. I guess the only bad thing about what I do is that sometimes it's hard to just sit back and enjoy playing games sometimes because you end up picking them apart to try and analyze what is working and what isn't. <br />
<br />
<b>How many people are involved in writing games at Imangi Studios. What roles do they take on? How has this changed with the success of TR?</b><br />
Well it started out as just Natalia and I. The first person we started working with was an artist, because Natalia and I can't draw at all! Kiril, Natalia, and I made the original Temple Run in about 5 months. Natalia and I did the programming and sound fx, Kiril did the art, and Natalia composed the music. Support became a big challenge for us with the success of Temple Run, we started getting hundreds and sometimes thousands of emails a day. We've always liked being a small company, but that was the first indication that we might need to start working with some additional people. So we ended up getting my brother to help out with support and social media. From there we've still stayed relatively small and really instead of hiring a staff we've mostly leveraged outside contractors and made strategic partnerships where necessary. Temple Run 2 was made by a core team of 5 people, so we're still very small to this day. <br />
<br />
<b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b><br />
I think the biggest lesson we've learned over the years is to focus on projects with a reasonable scope for our small team. Whenever we've tried to make level based games with a lot of unique content we've always failed. I think that's mostly just because it's really hard to create a huge volume of content with a small team. So we've found most of our success with quick pick up and play games based on "arcade" style gameplay. <br />
<br />
<b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b><br />
We've used lots of tools over the years. The original Temple Run was made in our own in house 3d engine that we build over the years. Temple Run 2 was built fully in Unity3d.<br />
<br />
<b>What made you choose these tools over others?</b><br />
The main reason we went with Unity3D is because it supports 3D graphics and because it's cross platform.<br />
<br />
<b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br />
There is no silver bullet. We've tried everything we can thing of over the years. We used to take more of a grassroots guerrilla marketing approach by posting in all the forums etc. These days we work with a PR firm to help us.<br />
<br />
<b>What effect do you think free to play has had upon your game design? Little know that TR was a paid game to start with so did you purposely create IAP when you decided to go free?</b><br />
I don't think we let the business model define our game design. We always approach the game design first and then after we have something fun we try to figure out the best business model that fits. Even though Temple Run launched as a paid game, we already had all of the upgrades and in game coin currency and the ability to buy more coins with IAP. So it was already a natural fit for freemium. The only thing we changed when going from paid to free was the price. <br />
<br />
<b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b><br />
I mostly learn by tinkering around with things and maybe following a tutorial here and there. Twitter has also been incredibly valuable for me as an indie game developer. There are so many other indie devs on twitter that you can interact with an ask questions. I've gotten so much great advice and learned so much from others that way.<br />
<br />
<b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this? You guys more than most seem to be bucking the trend :)</b><br />
People have been saying the App Store is a gold rush ever since it opened. I try not to look at it that way, because I think people are being more successful every year and the scale of success just keeps going up too. It's still a tough market though, but I don't think that's really changed. When the App Store first opened there were only 500 apps, and it was still fiercely competitive and hard to make it. Now there are hundreds of thousands of apps and it definitely feels like the market it much more crowded, but in reality there are so many more people with mobile devices now so the market has also grown much larger. The reality is that video games are very much a hit driven market, so it's brutally tough to make it. <br />
<br />
<b>Do you think app games will eventually kill off AAA titles as we know them?</b><br />
I hope not! I love big epic games with tons of content, and I think there are other people that do too. What I think has happened though is that mobile gaming has opened up games to a whole new segment of the market. There are tons of people that never really considered themselves gamers now playing a ton of mobile games. That's great for the industry and I think that there is room for both.<br />
<br />
<b>What does 2013 have in store for Imangi Studios?</b><br />
Well, we have a lot more in store for Temple Run, that's for sure! I'd also like to work on some new games at some point, but right our focus is on Temple Run.<br />
<br />
<b>Any additional advice you would give for up and coming indie developers?</b><br />
Start small, take on projects you know you can complete in a reasonable amount of time, get lots of feedback from others, and make the games you want to play, not the games you think others will want to play.<br />
<br />
Download Temple Run 2 for <a href="https://itunes.apple.com/gb/app/temple-run-2/id572395608?mt=8">iOS</a> and <a href="https://play.google.com/store/apps/details?id=com.imangi.templerun2">Android</a>.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com1tag:blogger.com,1999:blog-2627044686641246157.post-62958618123646642013-02-10T13:35:00.002-08:002013-02-10T13:35:59.154-08:00Indie Dev Insight: Vlambeer<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9aV0tWMDRZrgxQfCB-X-e6Wzo33l9gzpvh4wr9idCC7RBziRZVkoAgVtPb8MbgVL4Qqwz9hyfqwLlLo15uew4bghdVT86cgLJ1vEL27wZynkq8BZFQccFOjOc2JBZgdAakwGOVFNTApo/s1600/mzm.bxcbsvdw.175x175-75.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="175" width="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9aV0tWMDRZrgxQfCB-X-e6Wzo33l9gzpvh4wr9idCC7RBziRZVkoAgVtPb8MbgVL4Qqwz9hyfqwLlLo15uew4bghdVT86cgLJ1vEL27wZynkq8BZFQccFOjOc2JBZgdAakwGOVFNTApo/s320/mzm.bxcbsvdw.175x175-75.jpg" /></a></div>
<p>Vlambeer is a Dutch independent game studio best known for its frantic, arcade-style games such as <a href="https://itunes.apple.com/us/app/super-crate-box/id483025428?mt=8">Super Crate Box</a>. Its because of this game that I first heard of <a href="http://www.vlambeer.com">Vlambeer</a> and have been following since due to their quirky aesthetics and addictive gameplay of a classic formula. For those not aware of this company its worth looking out for their forthcoming titles of which I am eagerly awaiting <a href="http://www.vlambeer.com/index.php?tag=ridiculousfishing">Ridiculous Fishing</a> for iOS.</p>
<p>Rami very kindly took some time out of their very busy schedule to provide some insight into their experiences to date.</p>
<p><b>What got you into writing games?</b><br>
We have seperate stories, obviously. Rami started very young - at the age of six, because back then the only game he liked was written in QBASIC and he had to open the editor to compile the game. Jan Willem ran into Game Maker in a magazine halfway through his teens and hasn't really looked back since.</p>
<p><b>What's good and bad about what you do?</b><br>
We make small, contained games. Those are more fun to create for us. We're chaotic and impulsive, though, so we might end up working on four things at once and getting overworked.</p>
<p><b>How many people are involved in writing games at Vlambeer. What roles do they take on?</b><br>
Vlambeer is two people - a designer and a developer. We're terrible at art & music, so we ask talented friends to help us out with that.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b><br>
Be a bit more careful with our health. Working on four or five projects at once can probably literally kill you.</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b><br>
Game Maker, FlashDevelop, MS Paint, Photoshop, Visual Studio.</p>
<p><b>What made you choose these tools over others?</b><br>
They're what we're comfortable with. That's really all there's to it. We like those programs, so we use them.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br>
We don't like forums - they feel like a closed system. We use Twitter, Facebook and obviously do our press reachout and work.</p>
<p><b>What effect do you think free to play has had upon your game design?</b><br>
None.</p>
<p><b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b><br>
Practice, really. We sincerely believe you only truly learn through doing things.</p>
<p><b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b><br>
We think the bubble burst years ago. However, the equalizing factor is the expectations for iOS. A small company can make something as cool as a big one.</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them?</b><br>
No. We think there's place for both - we think there is place for dozens of more variations on 'games' as we know them.</p>
<p><b>What does 2013 have in store for Vlambeer?</b><br>
We want to make a lot of games! LUFTRAUSERS and Ridiculous Fishing are almost done, but we hope to be spending a lot of this year prototyping, programming and having fun.</p>
<p><b>Any additional advice you would give for up and coming indie developers?</b><br>
Make games, be serious about what you do and spend time making sure people play your game.</p>
<p>Check out <a href="https://itunes.apple.com/us/app/super-crate-box/id483025428?mt=8">Super Crate box</a> on iOS and follow Vlambeer on <a href="https://www.facebook.com/Vlambeer">facebook</a>.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-72741849253095199442013-02-05T12:04:00.000-08:002013-02-05T12:05:20.127-08:00Indie Dev Insight: Kuyi Mobile<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGj0qZV86PPW5rrGBQgnpPOjpwrnlO5YocfLDoIoRj5OzaoOyy0c7UF4ViKdM9syJom-8NOa7wUIl3hyWZQgyqlhp1EBnANPfqEglJmlNn0mVP1zfkh0NQPgcznhBe2Y0ab5NGK4UvK0M/s1600/438837_512x512.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="200" width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGj0qZV86PPW5rrGBQgnpPOjpwrnlO5YocfLDoIoRj5OzaoOyy0c7UF4ViKdM9syJom-8NOa7wUIl3hyWZQgyqlhp1EBnANPfqEglJmlNn0mVP1zfkh0NQPgcznhBe2Y0ab5NGK4UvK0M/s200/438837_512x512.jpg" /></a></div>
<p>Kuyi Mobile is an independent game development company based in the Philippines and focused on creating a new breed of mobile games. </p>
<p>I first came across Erick and Kuyi Mobile when part of the Corona SDK community and a feature run on the incredibly popular <a href="https://itunes.apple.com/us/app/streetfood-tycoon/id498812738?mt=8">Streetfood Tycoon</a> game. I know for one that my wife is addicted to this game as its a blend of casual game, vibrant colours and addictive gameplay. I spoke to Erick when having just launched <a href="https://itunes.apple.com/us/app/streetfood-tycoon-world-tour/id567438837?mt=8">Streetfood Tycoon: World Tour</a>.</p>
<p><b>What got you into writing games?</b></br>
I guess it's the same for all game designers/developers--I used to be a passionate gamer (now I have less time!) and play a lot on different consoles/platforms. And being a cartoonist has helped me get into game design/development easily.</p>
<p><b>What's good and bad about what you do?</b></br>
There are a lot of good things about being in the game industry but I'm pretty sure everyone has heard it all by now so I'll concentrate on the bad. Two of the bad things that I had to struggle with was work-life balance and staying healthy. It feels great to be able to hack at night and do fantastic things but it takes a toll on one's health. I wouldn't advise sleeping late at night anymore. Whether you're working at home or in an office, be sure to allot time for work and spend the rest doing something else--recreation, exercise, hobby, quality time with family, etc.</p>
<p><b>How many people are involved in writing games at Kuyi Mobile. What roles do they take on?</b></br>
I've always been a one-man team since I put up Kuyi Mobile but I outsource all my sounds and music. It's not that I dislike working with other people, it's just that I wanted to start small and take it one step at a time. Just last December, I started forming a team and added one developer and an artist to Kuyi Mobile. Hopefully, we can get a decent office soon and work more seamlessly.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b></br>
If there's anything that's changed, it's my process of choosing my next project. Though the gaming industry has boomed the past few years, competition has also gone up which means we all need to level up and put as much quality into our products as possible. I usually do a lot of market research, brainstorming, prototyping and getting a lot of early feedback for my game ideas before I go full blast on it. Choosing which game project to embark on used to be just a day or two, now it's about a month or more!</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b></br>
I was actually never dependent on just one tool (discounting XCode, of course). I started out with Cocos2D and now using Corona SDK. I'm currently exploring Unity and possibly use it for my next game project. I believe it all depends on the game that you're working on, what the requirements are and what 3rd party tool can support it. Of course, it gets harder to support and churn out updates if you're using various tools but I don't mind as long as my players/customers get a fantastic gaming experience when they play my titles.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b></br>
To be honest, I just send out a press release via PRMac and that's it (used to be only US$20, now it costs US$22!). Since I started, the only things I've added to my marketing are my social media channels--Twitter and Facebook. You really can't survive w/out engaging with your players. I try to experiment with a few marketing tools from time to time but I never really stuck with anything consistently. Right now, I'm experimenting with Facebook's mobile ads, figuring out its effectiveness and how it can help me grow my userbase.</p>
<p><b>What effect do you think free to play has had upon your game design?</b></br>
F2P is a huge game changer. I used to be your free + paid type of guy but since I got into F2P, the way I look at game design has totally evolved and changed. It pushes developers to be more creative and ingenious and it's not actually bad as long as you keep your game's main goal and mechanics intact. I also spend a lot of time on monetization and virality but I make sure that it doesn't sacrifice my original gameplay. I'm not after my player's money, I'd rather give them a nice and enjoyable gaming experience. Besides, those who really like my games will eventually make a purchase and support me anyway.</p>
<p><b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b></br>
What I love about this industry is that everyday, you can always learn a new thing or two. I read a lot of books about game design, entrepreneurship and startups and spend a lot of time on indie and game development sites to learn more about what's new, trending topics and what's coming.</p>
<p><b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b></br>
I'd rather not think about the gold rush and how it will all fail in the end. I prefer to focus on creating more games, growing my userbase and building a nice track record. As long as you have built a good game catalogue and acquired a lot of fans along the way, I believe you'll be able to sustain yourself in any kind of situation.</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them?</b></br>
One great thing about what Apple did is that they provided an arena for indie game developers like us to compete with the big guys so yes, we can definitely compete with Triple A titles but I don't think we'll eventually kill them. There's a lot of room for both and it's become a great ecosystem for developers, content providers and consumers.</p>
<p><b>What does 2013 have in store for Kuyi Mobile?</b></br>
New games! :)</p>
<p><b>Any additional advice you would give for up and coming indie developers?</b></br>
Start small, aim big! Also, do your homework--come up with new & unique game ideas, research what's out there and ALWAYS focus on quality.</p>
<p>Why not give <a href="https://itunes.apple.com/us/app/streetfood-tycoon-world-tour/id567438837?mt=8">Streetfood Tycoon: World Tour</a> a go. Its fun, free and as addictive as ever and available on the App store.</p>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-11689004379748758272013-02-01T11:41:00.001-08:002013-02-01T11:43:18.811-08:00Indie Dev Insight: Retro Dreamer<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD0glaLMlr_Lgr6ZO-0VDvtaicp7V2XmYxT55U_K7gNS-yW7DLE4CCg5-kzCf0vaA6tLWgnLNJKFhwpAindWQPs-fFscN9WjnQ4zRtISrFS7TzZazP94w8JKfPsVTWjniv8M5mN22jlcg/s1600/HappyPoo.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="98" width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD0glaLMlr_Lgr6ZO-0VDvtaicp7V2XmYxT55U_K7gNS-yW7DLE4CCg5-kzCf0vaA6tLWgnLNJKFhwpAindWQPs-fFscN9WjnQ4zRtISrFS7TzZazP94w8JKfPsVTWjniv8M5mN22jlcg/s200/HappyPoo.jpg" /></a></div>
<p>Who ever thought that poo and ice cream would be a good combination but for Retro Dreamer they have had phenomenal success with the Happy Poo and Ice cream drop / jump games which has seen telephone numbers of downloads across the collection.</p>
<p>What has fascinated me about Retro Dreamer's approach is not the technicalities of the games but how the success is driven by a simple uncluttered game design with cross promotion across their collection. I had a chat with Gavin Bowman (@GavinBowman) to get further views on their success to date:</p>
<p><b>What got you into writing games?</b><br>
I've always loved playing games. I did some hobby coding when I was a kid but never really stuck at it. I was working on regular software when the casual games and mobile games market were looking exciting, a friend asked if I'd like to make a game with him, and I haven't stopped since.</p>
<p><b>What's good and bad about what you do?</b><br>
Flexible hours, creative freedom, and great job satisfaction vs. Never not working, no external structure or direction, unpredictable income.</p>
<p><b>How many people are involved in writing games at Retro Dreamer. What roles do they take on?</b><br>
There are two of us, myself and Craig Sharpe. He does the art, I do the code. We try to share everything else out as best we can.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b><br>
Probably design earlier apps with a little more cross platform in mind, but I wouldn't go mental on it. I'd have tried to capitalize on successes with updates instead of prioritizing new apps, and move on more quickly from failures. And I'd have tried to finish more of the projects we abandoned and cut down the scope more on some of the projects we did.</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b><br>
Xcode & Photoshop primarily. The rest of the Adobe tools definitely factor in too, and we've been using various tools for sprite sheet creation. For our Android games we use Eclipse to build them. We don't use a game engine or SDK, but we will probably be using Unity for some of our new games later this year.</p>
<p><b>What made you choose these tools over others?</b><br>
We're mostly still using the only tools that worked or that we had when we got started. We're looking to Unity because mobile hardware is advancing so fast, we can take advantage of that much more easily than expanding on our own code, and I love the idea of getting another layer between myself and hardware variations & platforms.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br>
We've tried a lot over the years, we've posted on forums, sent out emails to press sites. We're active on twitter and we have a Facebook page, but we're not super active with marketing, these days we have a tendency to let the games fend for themselves a little and see what happens from there. It's not smart, but it lets us focus more on the games. We've also had a bunch of help over the years from some of our awesome indie friends. We did pay for a press release once, but it was cheap and probably pointless. We haven't tried paying for PR services, but it's not something we'd rule out for the right game, I've seen them do wonders and marketing is not something either of us are fond of taking charge of.</p>
<p><b>What effect do you think free to play has had upon your game design?</b><br>
It's forced us to think a more about engagement and player retention. Which is a good thing, because those are the same factors that drive word of mouth on paid apps anyway! I think some of our earlier games we just picked a concept we thought would look appealing, attached it to an interesting game mechanic, and hoped that people would like it. Now we worry a bit more about how many people will like it, and whether they will come back and play it again.</p>
<p><b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b><br>
I don't have any specific resources I use, my twitter or browser reading lists are always packed with great links people have shared recently that I'm never short of something to look into if I get a chance!</p>
<p><b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b><br>
I thought that was back in 2009, didn't that happen already? :). Seriously though, the market has massive potential, and there are still great opportunities. There's almost certainly too many people rushing into it though, it's highly saturated, there are great games coming out every day that none of us will ever hear of. Some of those will have been in development for months or years, some will have had someone's savings poured into them. But wherever there are a big opportunities, there's always going to be a lot of people chasing them. Hopefully someday everyone will go in with their eyes open. The big numbers that you read about in the App Stores are heavily skewed to the top earners, the curve down from #1 to #200 (or even #10) is phenomenally steep, and it doesn't end there!</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them?</b><br>
I think both markets are changing, and will continue to do so, but I don't know where it ends. I just hope whatever happens there is a marketplace where small companies like ourselves can keep trying to make a living from games.</p>
<p><b>What does 2013 have in store for Retro Dreamer?</b><br>
More games, more updates! We have a lot of things we're working on, we're excited for the new year. I'd like to hit the onegameamonth.com target, but as long as we're working hard and getting good things made I'm not going to be too depressed if we don't 100% it.</p>
<p><b>Any additional advice you would give for up and coming indie developers?</b><br>
Start stuff, finish stuff, get it out to people. It's the only way to improve. And if people go wild for something you make, nurture it and cherish it, because you never know when that will happen again.</p>
<p>Download Retro Dreamer's latest game <b>Happy Poo's Revenge</b> on <a href="https://play.google.com/store/apps/details?id=com.retrodreamer.HappyPooRevenge.android.free&feature=nav_result#?t=W251bGwsMSwxLDMsImNvbS5yZXRyb2RyZWFtZXIuSGFwcHlQb29SZXZlbmdlLmFuZHJvaWQuZnJlZSJd">Google Play</a> which has been written for <a href="http://onegameamonth.com/">one game a month</a>. mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-16857257759811768532013-01-28T09:16:00.000-08:002013-01-28T09:16:10.323-08:00Indie Dev Insight: MagnetiCat<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-UXZf0ZQayGkibyzV1JQ-RJGTN3a_JN14GJYUQzvA0e7NDIGmMzSBokYFz-X5UfDcgD7avZyeeWLolXkB29o8AX0Syji6F2_97QKAJcg-W1I8pbVh8tjGj5pSaXpNHz73fhXJLgLdG_o/s1600/mzl.wxdnvuwq.175x175-75.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="175" width="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-UXZf0ZQayGkibyzV1JQ-RJGTN3a_JN14GJYUQzvA0e7NDIGmMzSBokYFz-X5UfDcgD7avZyeeWLolXkB29o8AX0Syji6F2_97QKAJcg-W1I8pbVh8tjGj5pSaXpNHz73fhXJLgLdG_o/s200/mzl.wxdnvuwq.175x175-75.jpg" /></a></div>
<p>There are many things I like about being an indie (hobbyist) developer. The community is so incredibly supportive; there is lots of material at your finger tips; great forums and on the whole a lot of like minded people.</p>
<p>I can't put my finger on when I first came across MagnetiCat but we have certainly built up a rapport over the months. This was even more cemented by their first incredibly addictive launch game called <a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a> which is a prime example of how to do a simple concept well. While of course I would strongly recommend you download immediately please spare some time to have a read of their thorough and incredibly in depth account.</p>
<p><b>What got you into writing games?</b><br>
It is one of those 2 or 3 things I always wanted to do. I grew up playing on NES and GameBoy, but before that I "inherited" a Commodore 16 from my cousin and played and experimented with it until it died and I was not able to find repair parts.</p>
<p>When my family could buy a PC, I discovered adventure games, and I think those - the first two Monkey Island games, in particular - are the games that made me think: I would really like to be able to create something like that, one day. Ron Gilbert has been my hero since when I was a kid. </p>
<p>But I was a curious kid and was distracted by many other interests. I was serious about being an astronomer, then I decided to be a punk, then I wanted to be a cinema director, then I wanted to be a painter. And so on.</p>
<p><b>What's good and bad about what you do? </b><br>
So far, I love almost everything about making games - from the idea phase to the end of development it is something very demanding, but also extremely rewarding. Like all creative jobs, you are building something that will live on its own, in the hands and minds of the player. Being a person with diverse interests, game development is also something that lets me put everything I love in it. I wish I could do it more. </p>
<p>It is very different from what I normally do, working as a freelancer for others. Even if you have a chance to work with nice people, there the job becomes routine and just a grind for making more money and paying the next rent. You are not building anything for yourself, and in the end your clients rightfully think only about their own interests, not yours. You have no benefits and you are not building a solid future for yourself. While I would never change it for a 9 to 5 job – I need to be as free as possible - it is a stressful life.</p>
<p><b>How many people are involved in writing games at MagnetiCat. What roles do they take on? </b><br>
We are two people. I work mostly as game designer, programmer, and on sounds; Rossella does game design and graphic design. But in general, we try to switch roles whenever possible. We work close to each other, so there is a constant exchange. It is something that comes from life as a freelancing team: each of us must be extremely self reliant, if necessary. If there is a problem with the graphics, the person working on them just fixes the issues; the same thing happens for most other things during the development of whatever we are working on.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market? </b><br>
<a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a> is a small game (but there are similarly small games that are very popular in the Word category), developed and released under unusual circumstances. It is not enough to have a meaningful experience of the market, and many of the things we learnt we knew before releasing the game by following the stories of other developers. </p>
<p>Thinking about it, the only thing I would do differently is to avoid wasting as much time as I did on Twitter. In hindsight it was pretty obvious, but you must not count on Twitter for promotion, unless you know that people are following you out of genuine interest for what you are creating. In our case, Twitter followers were mostly other game developers coming from mutual follow exchange or using automated tools. They could not be interested in what we were doing, since we had no game in the store yet. Some of these followers I know outside of Twitter and I have helped in some web-related projects, but not a single one commented on the game or even congratulated us for our first release. Only a couple of people did. </p>
<p>Of course, if your game is particularly amazing, people will retweet it no matter what. So building something awesome – or better, building something that at least looks or sounds awesome - is still one of the first rules of marketing in the App Store.</p>
<p><a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a> is not something that most would consider cool enough for their Twitter followers, I suppose. I would, but I made it, after all. It is a simple app, it's cute, it's elegant, and it is really loved by the few players that play it.</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages. </b><br>
Photoshop and Illustrator are what we use for the art of our games. Rossella uses most of the CS suite in her freelancing jobs. <a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a> is a very simple game, and it was designed in Illustrator. We then rasterize the images in Photoshop and use Texture Packer to create the spritesheets. We use Blender as well, but not within games or prototypes, yet. </p>
<p>We work with Cocos2D, Corona SDK, and recently with Haxe. We have been playing with Unity3D as well recently.</p>
<p><b>What made you choose these tools over others? </b><br>
Adobe products are just the standard for professional graphic design. Not perfect, by any means - switching from one product to the other in the Adobe suite is often source of nightmares - but they are products that deserve the reputation they have. The new subscription system makes the CS suite relatively affordable, as well, if you can deduct monthly expenses. </p>
<p>The programming side of things is much more complicated. I think I tried a bit of everything over the years. When I started coding on iOS, I first learnt Objective-C and then moved to Cocos2D. I really like Cocos2D, and while I did not release any game made with it, I used it for most of our prototypes, including the early version of <a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a>. </p>
<p>Then I started looking into multi-platform frameworks; I picked up CoronaSDK for 2D games, and the version of <a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crossword</a> in the store is made with it. I did not pick CoronaSDK for ease of development: with all the resources you have, I think it is difficult to beat the friendliness of Cocos2D and even better, Kobold2D (now KoboldTouch). Lack of proper debug and profiling for Corona SDK apps (same issue I have with Unity Basic) is also unnerving. But the good, awesome thing about Corona SDK is that it works on multiple devices and platforms very well. It is very reliable, and there are not that many commercially supported frameworks focusing exclusively on 2D. The build size is very small, and performance is great. </p>
<p>And yes, I have been toying with Unity for a while, even though I started studying it more in the past 3 months. It is a great engine, but for simple 2D games, it is overkill. Unity Basic lacks proper debugging tools and build optimization, features that are necessary to develop more complex games – and 3D games tend to be more complex than 2D ones. </p>
<p>While Corona and Unity are targeted to different needs, they actually have very similar advantages and shortcomings. Both are closed source; both come with only their community as a free form of support. Combination of closed source and paid support is something that I will never like. Both offer a more expensive license that unlocks the full potential of the framework – prices are not crazy, but completely out of the pockets of most indie game developers. </p>
<p>A language and framework I am really enjoying recently is Haxe with NME. It is plagued by sparse documentation, but working with it just feels right. Performance is terrific, since apps are translated into native code, and you can target most modern platforms with it. FlashDevelop fully supports it, so if you are on Windows or you have Parallels on a Mac you can have one of the best IDEs in existence for your game development. I am interested in releasing smaller web games, and Haxe is perfect for that, even though it is regularly used to build huge apps. </p>
<p>I had considered also Unity's Flash target, but it is expensive and generates very heavy code as it basically includes all the code for the Unity engine in addition to your game code: it makes no sense to develop Flash games with Unity unless you need to develop 3D titles.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br>
We did not do any marketing for <a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a>, as version 1.0.0 was a soft release. Anyhow, we plan on sending out press releases, a trailer, and send out e-mails to review websites for version 1.1.0. </p>
<p>The best marketing strategy, right now, is obviously to start advertising your game many months before its release, but only if the game is particularly unique, big, or memorable: otherwise people will forget about it. </p>
<p>The best long term marketing strategy is to keep on building good games and create followers among your players. Do not target only a platform, especially if your games do not require extensive optimization to run on different devices. You won't become rich, but you could be making a decent salary doing something you love.</p>
<p><b>What effect do you think free to play has had upon your game design? </b><br>
From the beginning, before IAPs were introduces in iOS, I had many ideas that I knew would have worked well with a free to play setup, while being perfectly enjoyable to non paying users. I could never make them, because I just did not have the time and money to work on the development. </p>
<p>This said, I have a big moral problem in building apps that make money by encouraging a compulsive behavior in gamers; it is something I would be unable to do. I like some free to play titles, though – NimbleBit's games, for example, are fun to play even if you do not pay a cent. Same for Imangi's Temple Run. Purchase of in-app items like in RocketCat Games' Mage Gauntlet is great as well. But I suppose that all these developers might be making even more money if they wanted to and tried to build a more vicious cycle within their games that forced players to buy, sooner or later.</p>
<p><b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media</b><br>
If you want to learn something, I think the best way is to find some learning material that has some sort of internal organization. Random tutorials are cool to solve specific problems, but if you want to be self reliant, you need to have a bit of order in your mind. Not too much, just a little bit. </p>
<p>For Objective-C, I would recommend:</p>
<ul>
<li>Stephen G. Kochan – Programming in Objective C: the best introduction to the language and all you need to understand Cocos2D books. It's being constantly updated, so grab the latest edition if possible.</li>
<li>Steffen Itterheim – Learn Cocos 2D: Steffen makes you build many small games instead of a big one, which is something I prefer while learning.</li>
<li>Raywenderlich.com, which offers also some introductory stuff for Unity3D.</li>
</ul>
<p>For Corona SDK, the documentation (even though a bit messy), examples, and experimenting were all I needed. But even if you are familiar with other programming languages, I recommend you skim through <a href="http://www.lua.org/pil/">http://www.lua.org/pil/</a> to learn the basics of the language. Lua is fun, but it has some quirks compared to other languages you have been exposed to. </p>
<p>But once you have studied a little bit, the only thing that works is to make games on your own. Small prototypes, built from scratch, just for you and your friends. Remake classic games like Space Invaders, if you are short on ideas or if your ideas are too ambitious. Just learn to make things, like an artisan. And after a few experiments, even though you think you are not good enough yet, try to complete a small game and release it. Leave that awesome adventure game for later.</p>
<p><b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this? </b><br>
Absolutely. I think the gold rush stopped in 2011. After that, huge successes from unknown developers are more and more rare. We have seen many in 2012 and in 2013 from Indie developers – Temple Run, Hundreds, the Blockheads, just to name a few – and while it is amazing these great games were built by tiny teams or solo developers, these are guys and gals that have been releasing solid titles from the beginning of the iOS app store. They have built a reputation for themselves over the years, even risking a lot in the process – Imangi's Max Adventure nearly killed them, and Temple Run was not successful, at first – and thus they have loyal gamers, followers, and they are well known and respected by Apple and the press in general. </p>
<p> These are things you cannot build with a single game – it can happen, but it is like winning a lottery where you can control just one or two of the numbers. </p>
<p>This said, I believe there are many niches were you can still be successful. Some swear by the educational game app market, for example, but then again I think it is unacceptable to force yourself to develop something you are not interested into; unless you approach game development only as a businessman, of course.</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them? </b><br>
No, I think the opposite is already happening. Most of the names you see on top grossing lists are either the usual big companies that existed before the App Store – EA, Warner, Activision, Disney, and so on – or ex-indie developers that have made enough money to support their games with decent marketing campaigns. </p>
<p>Many developers accept to sell their games through game publishers. This is dangerous ground and you risk on losing your freedom and sanity going in that direction. I would not do it. Sponsorships like it happens for Flash games are fine, as long as you keep full IR on your work.</p>
<p><b>What does 2013 have in store for MagnetiCat? </b><br>
We will release Tiny Crosswords in the Amazon store soon. </p>
<p>It is difficult to make precise plans when you do not have funds or cache money. We will work on more prototypes, and thus collect more ideas, so that when we have some moment of respite from our freelancing work, we can jump on one of these ideas and develop it. </p>
<p>I would like to focus on releasing some games on the web, and release those I think would fit touch devices also on iOS. I would love to do a Ludum Dare or two, but I doubt I will have the time to.</p>
<p><b>Any additional advice you would give for up and coming indie developers? </b><br>
Just start doing stuff. Do not obsess over platforms, programming languages, softwares you are using to make your games. Programming skills transfer without problems from one language to the other. Pick the tools that let you complete the game in the shortest amount of time; do not fill your mind with useless keywords and syntax, autocompletion is there to help you in most IDEs, and chances are that any specific library you learn today will change completely in a couple of years. Pick the tools you can afford: there is plenty of free stuff you can use to build great games. </p>
<p>Build small things for yourself; when you feel you have something good in your hands, it is time to look for a bigger room to display it. Polish that thing, then unleash it to the wild and let it be played. Treasure feedback. Do not be an asshole to your fellow developers and gamers. </p>
<p>Once again, build small things that you love making and playing. If you can afford this luxury, do not obsess over money. The best things we make are those we make out passion, because they are the purest. </p>
<p>If money is a problem for you as it is for us, try to optimize your time. I feel your pain, I understand it is difficult to do, sometimes almost impossible. But you can do it. Say goodbye to that TV show. Play less games. Maybe take a shorter bath. Forget about Twitter. Forget about Facebook. </p>
<p>Risk a little. You won't be around forever, and the best thing to start doing something you love is doing it today.</p>
<p><a href="https://itunes.apple.com/us/app/tiny-crosswords/id537048801?mt=8">Tiny Crosswords</a> is available to download on App Store for free. Also keep up to date with MagnetiCat's progress on their <a href="http://magneticatgames.com/">website</a>.</p>
mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-67393903971034512792013-01-25T12:53:00.000-08:002013-01-25T12:53:48.294-08:00Indie Dev Insight: RocketCat Games<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZYdRsysdTSoDLKDQXYjcX4XqdJYijLjCQ7b0qm0YMXzWf1-CGzTbHVkCLBvW5bKj9yJJ3o00GJ8e8_TJoS8RGnzeUSM-DaMEeh8sLmh7k-GKtVtghLyIwrF76xRW0LBsmJKrKqTXVFI/s1600/47666_170423092998495_990729_a.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="150" width="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRZYdRsysdTSoDLKDQXYjcX4XqdJYijLjCQ7b0qm0YMXzWf1-CGzTbHVkCLBvW5bKj9yJJ3o00GJ8e8_TJoS8RGnzeUSM-DaMEeh8sLmh7k-GKtVtghLyIwrF76xRW0LBsmJKrKqTXVFI/s320/47666_170423092998495_990729_a.jpg" /></a></div>
<p>To quote RocketCat Games their design philosophy is to have huge amounts of replay value; create deep and varied gameplay; while having unlockable Upgrades and Hats. This philosophy has served them well with <a href="https://itunes.apple.com/gb/app/punch-quest/id554223561?mt=8">Punch Quest</a> being very well received by the industry but important lessons learnt on the way.</p>
<p>This is the second in the series of discussions with indie developers of all shapes and sizes who share their experiences and thoughts on the indie scene.</p>
<p><b>What got you into writing games?</b><br/>
I just felt like doing it one day. I was a big fan of free independent
games for a long time. They made the process of making a game seem
attainable. The App Store meant there was no barrier to entry to
trying to make a commercial game, so I got a couple of friends to try
it with me.</p>
<p><b>What's good and bad about what you do?</b><br/>
The best thing is probably the huge amount of freedom in being able to
make a living off making games. The worst thing is maybe that it's a
very solitary sort of thing. I still have never seen any of the people
working with me.</p>
<p><b>How many people are involved in writing games at RocketCat Games. What roles do they take on?</b><br/>
3 people. I design the games, make the levels and tweak everything,
and handle the business stuff. Jeremy Orlando does the programming.
Brandon Rhodes does the art.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b><br/>
It's really hard to say what I'd do differently. We learned a lot
about how free game pricing works, so if I had to do Punch Quest over
I'd tweak that for the release of the game. Otherwise I don't think
I'd change too much.</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b><br/>
We make all of our own stuff, except for some audio packages. Mostly
from cheap/free sound sites. I'd like to check out Unity.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b><br/>
I post to a couple forums and run a twitter account. I have a press
list of people that like my games, so when a new one comes out I make
sure the list gets codes for review. That list is always expanding.
Also, with Punch Quest we started to get into cross-promotion with
other developers again, which is really important.</p>
<p><b>What effect do you think free to play has had upon your game design?</b><br/>
It definitely affects the design. Or at least it did eventually. When
Punch Quest was first released, free to play didn't affect the design
much. We had higher end money sinks, but didn't make the game grindier
than it was intended to be. As a result, the game didn't make much
money at all. After awhile, we gave in and raised the price of in-game
upgrades/equipment by 5 times the amount. This made profits surge.
We'd like to see if there's a way to do free to play without it
messing with the design.</p>
<p><b>There has been a lot in the press recently that app development is going
through a gold rush and that the bubble will burst soon. Do you see it like this?</b><br/>
Gold rush ended in 2009, didn't it? I have noticed that it's been
getting steadily harder to break in and make a name for yourself.
Still seems possible, though, like with the recent success of
10000000. It just seems to get more difficult.</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them?</b><br/>
They don't seem to be. They're very different markets. Especially
since app games seem to be solidifying into certain preferred genres.
Big AAA companies seem to mostly be avoiding the App Store, still,
after all these years. I wonder if it's because they see the App Store
as a casual-dominated market, where with a couple notable exceptions
it's probably a mistake to do a big AAA title. So I don't see why app
games would kill off AAA titles, because there's very clear divider
between the two audiences.</p>
<p><b>What does 2013 have in store for RocketCat Games?</b><br/>
We're doing a free hack and slash game, with random dungeons. It will
be similar to Mage Gauntlet. You'll pay to buy new character classes
to play as. In that way, we're hoping we can keep the game design
untouched by it being free. We'd also like to try making some no-IAP
$5 games.</p>
<p><b>Any additional advice you would give for up and coming indie developers?</b><br/>
Here's some pricing thoughts. $3's still a nice price point if you can
make a game fairly quickly, are a very small team, or a solo
developer. Making a free-to-play game is unlikely to make you money as
your first game, but it may be worth it just to get the exposure and
a bunch of possible fans that you can show your next game to. $2 seems
like a waste, most would just be willing to pay $3. I hate the 99 cent
price point, seems like even more of a gamble than making a game free.
May as well just charge $0, for the significant extra downloads.</p>
<p>Go and see what all the fuss is about and download <a href="https://itunes.apple.com/gb/app/punch-quest/id554223561?mt=8">Punch Quest</a> for free.</p>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-17007709601251178712013-01-23T06:14:00.000-08:002013-01-23T06:14:13.040-08:00Indie Dev Insight: Christer Kaitila<p>When I first started writing this blog as a reflective tool to chart my progress through 10,000 hours, I got in touch with those more experienced than myself to see what insight they could give me on my journey.</p>
<p>Over the last year I have become obsessed by reading as much as I can about other devs experiences and advice, to the point that I thought I would reach out again to some for their wisdom to help me and you alike.</p>
<p>This is the first in a series of indie dev insight that in some way the individuals involved have had an impact on my journey to date.</p>
<p>First up is <b>Christer Kaitila</b>, a name that you may not be familiar with but one that I first came across when reading <a href="http://www.gamasutra.com/blogs/ChristerKaitila/20121210/183222/12_games_in_12_months.php">an article on gamasutra</a> and subsequently signing up for his initiative of <a href="http://onegameamonth.com/">12 games in 12 months</a>. In fact as I write this I have just completed my first month effort which I commented on <a href="http://mygamingproject.blogspot.co.uk/2013/01/game-1-astavoid.html">here.</a> I put the following questions to Christer and found his responses to be very enlightening so I hope you find this of some use. I certainly have.</p>
<p><b>What got you into writing games?</b>
<br>
The movie TRON. My dad. Pacman, Dragon's Lair, Gauntlet and 1942. My TRS80 coco. The warez BBS scene of the eighties. The demoscene that continues to be at the forefront of gamedev tech. The knowledge that the act of PLAY is what people do when their lower needs in Maslow's hierarchy are fulfilled. You only PLAY games when you aren't starving or being shot at. Therefore, play is a state of pure bliss, of innocence, of prosperity.
</p>
<p><b>What's good and bad about what you do?</b>
<br>
What's good? The inspiration. Waking up excited. The creativity. Coming up with new ideas and stories. The learning. Honing my skills on an infinite stream of new tools. The challenge: easy things are boring. Gamedev is not easy. That's what is fun about it! The sheer triumphant pride when you hit the finish line on a game.</p>
<p>What's bad? Seeing my own limitations. The lack of time to take some ideas to fruition. Monetization woes. Starving artists still have better jobs than rich folks with boring jobs, but sometimes we imagine what it would be link to sit around and collect paychecks for something mundane. Must be relaxing.</p>
<p><b>What would you do differently now given what you know from projects completed and experience from the gaming and app market?</b>
<br>
Aim lower. Make simpler things. Collaborate more often. Release sooner. Market better.</p>
<p><b>What tools do you use. By this I mean software development kits/engines (Cocos2d, Corona, Unity3D etc), audio packages, art packages.</b>
<br>
Javascript, html5, c++, openGL, AS3, Stage3d. Notepad++, FlashDevelop, Chrome, 3dsmax, Photoshop, Acid, FileZilla, CoolEditPro.</p>
<p><b>What made you choose these tools over others?</b><br>
Ease of use. The best tool, to me, has the least number of features. I don't want a swiss army knife, I want a single blade of infinite sharpness.</p>
<p><b>What marketing tactics do you employ? Forums, twitter, paid PR etc</b>
<br>
In order of success found: Twitter, Google+, My blog, Forums aplenty.</p>
<p><b>What effect do you think free to play has had upon your game design?</b><br>
I'm 100% certain that $0 is the future average price for all games in all genres and all platforms. FTP means hit players hard with your BEST content in the first five seconds. Reduce barriers to entry. LOWER FRICTION.</p>
<p><b>What resources do you swear by for learning new techniques, getting more from the packages you mentioned above, news etc. e.g Books (specific titles would be appreciated), forums / websites, social media.</b><br>
I never learn using books and videos are way too slow for my taste. Wish I could watch tutorial videos at 2x speed. I *love* tutorial blog posts. The best way to learn to make games is to rip apart and hack an existing open source game. Tinker with the internals of something that already functions. Learn from the masters. Stand on the shoulders of giants.</p>
<p><b>There has been a lot in the press recently that app development is going through a gold rush and that the bubble will burst soon. Do you see it like this?</b><br>
The bubble has already burst. It did halfway through 2012. The gold rush is long over. Everyone calls the new economy of apps: the appstore lottery. This means that 99.9% of all apps make no profit and 0.1% are a HIT. There's more money in Windows/Mac/Linux games now on places like Steam. Apps, while popular, are a terrible way to make a living: the sales stats are everywhere if you google long enough. The average fulltime indie app dev makes less than the average McDonald's employee. Planning to make a HIT on the app store is as likely as a musician planning to become a rock star or a kid planning to play basketball in the NBA. The vast majority will never get there, despite hard work and natural talent. If you're just getting into app dev now, you missed the bandwagon. There are certainly lots of opportunities out there and there will always be a new exception to these rules, some dev who gets a big hit. Success in apps is still possible, but only for the luck (or very well funded) few.</p>
<p><b>Do you think app games will eventually kill off AAA titles as we know them?</b><br>
No, I predict that these two things will merge into one. AAA will be the new norm for apps. I predict a massive quantity of free-to-play games with multimillion dollar user acquisition budgets for you to compete with if you're still on the app store. In the near future, installs will COST you money (this is how almost every game in the top 100 does it already: they don't sell games, they BUY users at a buck a head and hope to find a few "whales" to support their efforts via IAP).</p>
<p><b>What does 2013 have in store for you?</b>
<br>
12 games in 12 months via the happy phenomenon that is <a href="http://www.onegameamonth.com">www.onegameamonth.com</a></p>
<p>Additionally, all the joy that comes with releasing more commercial games (strategy/puzzle/tactics mostly), being a loving dad for my 2 year old, writing another book, a bunch of new articles, and spending lots of time outside or making music. I'm transitioning from being a starving game developer to being a wealthy gamedev TEACHER. For me, there's more money to be made teaching newbie gamedevs how to make games via articles, books, tutorials, courses and the like than there is actually selling games. I think I'll focus on producing many small freeware games as a means to attract more and more people interested in learning how.</p>
<p><b>Any additional advice you would give for up and coming indie developers?</b><br>
If you yearn to make a clone of your favourite game, first add up the number of people who made it x the number of fulltime years of labour they put into it. If you want to make an AAA console game or MMO, remember that they have 300-600 years of human effort inside. Longer than your lifetime. Therefore, be wise and aim smaller: something you can make in a single month. Release early and often, iterate a lot, and see which games "stick" or resonate with others. Make a dozen games next year, get lots of people to play them, and then iterate and improve the ONE game from the dozen that people liked the most. Polish it, add more to it, and then sell it.</p>
<p>My #1 piece of advice for game developers of the future: make games for the fun of creation. Like art, your success shouldn't be measured in dollars but something more meaningful, like the number of people who got some joy and happiness from your hard work, or number of lives improved in some small way, or quality of new things you learned, or satisfaction your obtained from making something you're proud of.</p>
<p>YOU CAN DO IT!</p>
<p>I would strongly encourage that you check out Christer's books of <b><a href="http://www.mcfunkypants.com/2012/the-game-jam-survival-guide/">The Game Jam Survival Guide</a></b> and <b><a href="http://www.mcfunkypants.com/books/">Adobe Flash 11 Stage3D (Molehill) Game Programming Beginner’s Guide</a></b>.
<p> You can also find Christer on <a href="http://twitter.com/McFunkypants">twitter</a>, <a href="http://google.com/+ChristerKaitila">google+</a> and his insightful <a href="http://www.mcfunkypants.com">blog</a>.mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-39749072026586774412013-01-23T05:34:00.002-08:002013-01-23T05:34:47.475-08:00Game #1: Astavoid<p>Back in December I uncovered an <a href="http://www.gamasutra.com/blogs/ChristerKaitila/20121210/183222/12_games_in_12_months.php">article</a> by Christer Kaitilia about his challenge of writing and producing 12 games in 12 months in 2012.</p>
<p>I found the article to be very motivational and a great idea. I watched with interest as his idea evolved into a challenge to indie devs to follow suit in 2013 and from which <a href="http://onegameamonth.com/">http://onegameamonth.com/</a> was born.</p>
<p>From previous blog entries you will have seen my angst at not producing any new games since the launch of Astavoid in April 2012 for iOS and Android. I thought this was a perfect way to refine my design skills by making something that could be produced from start to finish in a month to keep my ambition in check. The way I thought I could bolster my utility belt of expertise and knowledge was to design games in a way that each one although different added new features and concepts.</p>
<p>This also coincided with my porting of Astavoid from Corona SDK to Unity which I had written a diary on of <a href="http://mygamingproject.blogspot.co.uk/2012/12/from-corona-lua-to-unity-c-part-1.html">part one</a> and <a href="http://mygamingproject.blogspot.co.uk/2012/12/unity-futile-c-part-2.html">part two</a>. I can now finalise part three given that I have delivered on the project.</p>
<p>What I liked about this whole approach is that I started off too big and was getting demotivated by the challenges I was facing. So I started off with a cross platform port of Astavoid and in the end resulted in just a port to be played in a web browser. But thats the point right, redesign but ensure you finish a game?!? No point spend no time and not finishing it.</p>
<p>So my January game is Astavoid ported from Corona SDK and Lua to Unity and C#. This has meant I have learnt the challenges around physics, atlases, refactored all the code, increased frames per second from 30 to 60 as well as have a template for February's game.</p>
<p>Why not check out Astavoid now as its free to play via a web browser <a href="http://www.parachutingfrog.com/astavoid.html">here</a> and as a means of comparison you can still download the original Corona / Lua version on <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8">iOS</a> and <a href="https://play.google.com/store/apps/details?id=com.parachutingfrogltd.astavoid&hl=en">Android</a>.</p>
<p>I also encourage you to sign up for <a href="http://onegameamonth.com/">one game a month</a> as I have found now in my second year of game development that this really focuses the mind.</p>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-77669725810521870012012-12-30T12:20:00.000-08:002012-12-30T12:20:49.961-08:00Unity, Futile & C# - Part 2<p>If you read the <a href="http://mygamingproject.blogspot.co.uk/2012/12/from-corona-lua-to-unity-c-part-1.html">first part</a> of this series you will know I am transitioning from Corona SDK to Unity. More specifically Unity and the 2D rendering framework, <a href="http://struct.ca/futile ">Futile</a>. The purpose of this blog post is to further diarise the process as well as providing some level of documentation to Futile which is still in its infancy.</p>
<p><strong>Day 8</strong></br>
This was very much a day of highs and lows. To match to the <a href="https://itunes.apple.com/gb/app/astavoid/id511468193?mt=8">iOS version of Astavoid</a> I wanted to replicate the screen transitions. However, within Futile at the moment there are no transitional effects between FContainers so they snap rather unattractively. Thankfully, and purely by chance, my screen transitions were straightforward and just gave the effect with text animations. As this has already been expressed in previous entries, this was achieved with the excellent <a href="http://prime31.com/docs#goKit">GoKit</a> by prime[31]. Definitely have a play around with this and to help you its featured heavily within the Banana Demo project.</p>
<p>With this in the bag I thought I would experiment with getting GameCenter integrated into the game as the one on the Appstore features OpenFeint which is now deprecated. I started off thinking this was going to be a straightforward exercise but got a little confused with how the <a href="http://docs.unity3d.com/Documentation/ScriptReference/GameCenterPlatform.html">GameCenterPlatform</a> class worked with Unity, scripting and Futile.</p>
<p>This is where my day started to go a little downhill and this was typical of not knowing enough about how Unity worked. My first mistake having implemented the code was wondering why ads weren't appearing within the Game window of the Unity editor.</p>
<p>What I hadn't done was to enable GameCenter under iTunes Connect for a unique app. Only with this will ads works. To enable follow these steps:</p>
<ul>
<li>Log on to iTunes Connect</li>
<li>Click on Manage Applications</li>
<li>Ensure you have an app which is in an edit state such as waiting upload or an equivalent to modify GameCenter state.</li>
<li>Click on Manage Game Center</li>
<li>Click "Enable for Single Game."</li>
<li>Click Disabled.</li>
</ul>
<p>The Disabled button toggles between Disabled and Enabled. To disable your app for Game Center testing, click Enabled. Once you disable, you will no longer see your app in the Game Center sandbox. You are only permitted to disable up until a version of your app goes live with Game Center.
Enabling Game Center for testing unlocks the Game Center interface to allow you to set up your leaderboards and achievements.</p>
<p>Once I had set this up I created one Leaderboard and one achievement to ensure there was content.</p>
<p>Alas, still no test advert coming through. It was at this point I thought that maybe they didn't come through within the editor and I need to test on my device. This was my second mistake of the day.</p>
<p>For some reason I didn't realise it was packaged into an Xcode project. Having come from Corona SDK this step didn't happen it just got compiled and you dragged the compiled .app file onto the iTunes to add to your device. This was when I realised I hadn't setup the bundle identifier properly either.</p>
<p>The next mistake I made was trying to compile the xcode project to the Xcode simulator. The reason I was trying this was that I wanted to ensure the project worked before trying to put it to my device. I was getting some fundamentals errors on compilation, over 200 in fact, which I felt just couldn't be right. After some twitter conversations and scouring the internet I found you can only compile to the device.</p>
<p>So after some wasted hours I now had my app on my device, but still no adverts. It was time to call it a day.</p>
<p><strong>Day 9</strong></br>
A new day brought a clearer head and renewed vigor. When I first started out with game development I wanted to write my own code and therefore learn and understand the most. But having done it now for a year and having to balance my time with a full time job and two young children, I've concluded that using third party plugins is ok. Yes there is a cost to them sometimes but I weigh that up to cost I put on my spare time. Yes I may never make it back on my games in the near future but for the sake of $20 there is no point me struggling for a week trying to get something to work.</p>
<p>This clarity was reached to some degree during my investigations on Day 8 when I repeatedly came across postings and recommendations for prime[31]'s GameCenter and Ad plugins. Having already experienced the ease with which their GoKit was implemented I decided to take the plunge and bought the <a href="http://prime31.com/plugins">GameCenter and AdWhirl</a> plugins.</p>
<p>The plugins are excellent and can be setup with a few very easy steps.</p>
<p>For <a href="https://www.adwhirl.com/">AdWhirl</a> first setup an account and get your Publisher ID as this is what the prime[31] plugin requires. In regards to ad providers I chose a distribution of iAd (70%) and AdMob (30%).</p>
<p>Assuming you have followed Matt's banana project to a point you would imported a futile package, dragged to the Unity hierarchy and assigned a script to your Futile game object. With this assumed open your script and declare a private variable such as <b>private string publisherId = "your id goes here"; </b>. Then within <b>Start</b> method, and this apparently is the important bit, make <b>AdWhirlBinding.init( publisherId );</b> your first call.</p>
<p>Having implemented this I built for my device and tested and BINGO! adverts start coming through.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcBs8Bo0IBgCTII_EaITdv5BIj4093ixtha46VJVLcA4yQuLI3AA7Wi7vei8FrpVxtlFoh8r3HPWBwQklOznc7cCN-ercSEcBEe2Sy7UI2KKHyuHYQfH_MzwClp9cf-x_kPTLGYSS7fn4/s1600/Screen+Shot+2012-12-30+at+16.58.30.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="212" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcBs8Bo0IBgCTII_EaITdv5BIj4093ixtha46VJVLcA4yQuLI3AA7Wi7vei8FrpVxtlFoh8r3HPWBwQklOznc7cCN-ercSEcBEe2Sy7UI2KKHyuHYQfH_MzwClp9cf-x_kPTLGYSS7fn4/s320/Screen+Shot+2012-12-30+at+16.58.30.png" /></a></div>
<p>Again, buoyed on by this working I turned my attention to GameCenter. I had assumed I had setup everything up in the iTunes Connect steps explained above so I set about implementing it.</p>
<p>Like all implementation's of GameCenter you must first check that GameCenter is available and then you authenticate. For the purposes for testing I am resetting the achievements each time to ensure the banners etc come in. The code, again in my <b>Start</b> method is:</p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'><pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='comment'>// Do gamecenter stuff ... Is GC available?</span>
<span class='keyword'>if</span>(GameCenterBinding.isGameCenterAvailable())
{
<span class='comment'>// Yep looks like it is so authenticate the player;</span>
GameCenterBinding.resetAchievements();
GameCenterBinding.authenticateLocalPlayer();
GameCenterBinding.retrieveAchievementMetadata();
GameCenterBinding.showCompletionBannerForAchievements();
}<!--[if IE]>
<![endif]--></pre></div>
<p>Before testing on your device ensure you log out of GameCenter as when testing on your new game and you log in it will go into Sandbox mode while in development.</p>
<p>Success!!</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMaKuqXZtZc7noNi-upQ_mgFgCp1zccZL4SK9fvZ6MLdBPAW8QdHRKVR4UfF0mdnmQqCAY3J6xjM5Y7-Ihku-DnBM2_Ub7Iwfr0gQLauOnC2fJ8Lss0B9BFMfO4U1Vd0v4s6IN6uIo4U/s1600/photo+%25281%2529.PNG" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="213" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMaKuqXZtZc7noNi-upQ_mgFgCp1zccZL4SK9fvZ6MLdBPAW8QdHRKVR4UfF0mdnmQqCAY3J6xjM5Y7-Ihku-DnBM2_Ub7Iwfr0gQLauOnC2fJ8Lss0B9BFMfO4U1Vd0v4s6IN6uIo4U/s320/photo+%25281%2529.PNG" /></a></div>
<p><strong>Day 10</strong></br>
A very successful day on day 9 so to continue on with this I thought I would hook up the achievements when a certain distance was achieved. All I do is create a method within the <b>Update</b> method of my game scene to check whether a certain diatance has been achieved:</p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'><pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='keyword'>void</span> checkAchievement(<span class='keyword'>int</span> _score)
{
<span class='keyword'>if</span>(<span class='type'>Main</span>.instance.BestScore == 0)
{
<span class='comment'>// First play</span>
<span class='type'>Main</span>.instance.BestScore = _score;
GameCenterBinding.reportAchievement( <span class='string'>"AA001"</span>, 100.0f );
}
<span class='keyword'>if</span>(_score >= 5000 && _b5000 == <span class='keyword'>false</span>)
{
<span class='comment'>// Distance achieved</span>
GameCenterBinding.reportAchievement( <span class='string'>"AA002"</span>, 100.0f );
_b5000 = <span class='keyword'>true</span>;
}
<span class='keyword'>if</span>(_score >= 10000 && _b10000 == <span class='keyword'>false</span>)
{
GameCenterBinding.reportAchievement( <span class='string'>"AA003"</span>, 100.0f );
_b10000 = <span class='keyword'>true</span>;
}
<span class='keyword'>if</span>(_score >= 15000 && _b15000 == <span class='keyword'>false</span>)
{
GameCenterBinding.reportAchievement( <span class='string'>"AA004"</span>, 100.0f );
_b15000 = <span class='keyword'>true</span>;
}
}<!--[if IE]>
<![endif]--></pre></div>
<p>If a score has been reached then via the <b>GameCenterBinding</b> i.e. our prime[31] plugin, it sends a message to iTunes connect to see if an achievement has been completed. This is the case because we provide the id of the achievement and the percentage complete. As I specified <b>GameCenterBinding.showCompletionBannerForAchievements();</b> in my initialisation method the player will get instant satisfaction as the achievement banner will be shown. This all happens on a separate thread so no effect on the game's performance.</p>
<p>The next challenge was to take on the music and sound effects within my game. I slightly misunderstood how this worked and didn't take advantage of Futile's sound manager, <b>FSoundManager</b>. So what I chose to do with this was to adapt the Banana project implementation and create a separate sound player class:</p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'><pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='keyword'>public</span> <span class='keyword'>class</span> <span class='type'>SoundPlayer</span>
{
<span class='keyword'>static</span> <span class='keyword'>public</span> <span class='keyword'>void</span> PlayBlipSound()
{
FSoundManager.PlaySound(<span class='string'>"Blup"</span>, 0.95f);
}
<span class='keyword'>static</span> <span class='keyword'>public</span> <span class='keyword'>void</span> PlayMusicSound()
{
FSoundManager.PlayMusic(<span class='string'>"music"</span>, 0.3f);
}
}<!--[if IE]>
<![endif]--></pre></div>
<p>This implements the in-game music and the button sound effect. The gotcha I had here for a little bit was I didn't notice the difference between the methods of <b>PlaySound</b> and <b>PlayMusic</b>. All I now need to do is within my <b>Start</b> method of my main class is to call <b>SoundPlayer.PlayMusicSound();</b> and viola music a go-go. Similarly, in my SignalRelease (eventhandler) methods for my buttons I call <b>SoundPlayer.PlayBlipSound();</b> to have a sound effect when my buttons are touched.</p>
<p><strong>Day 11</strong></br>
Jumping around a little bit I refined the resolution logic:
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'><pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='type'>FutileParams</span> fparams = <span class='keyword'>new</span> <span class='type'>FutileParams</span>(<span class='keyword'>true</span>, <span class='keyword'>true</span>, <span class='keyword'>false</span>, <span class='keyword'>false</span>);
fparams.AddResolutionLevel(480.0f, 1.0f, 1.0f, <span class='string'>""</span>);
fparams.AddResolutionLevel(960.0f, 2.0f, 2.0f, <span class='string'>"-hd"</span>);
fparams.AddResolutionLevel(1024.0f, 2.0f, 2.0f, <span class='string'>"-hd"</span>);
fparams.AddResolutionLevel(1280.0f, 2.0f, 2.0f, <span class='string'>"-hd"</span>); <span class='comment'>//Nexus 7</span>
<!--[if IE]>
<![endif]--></pre></div></br>
and worked on my Rocket retina graphics. Again, going back to old faithful in Texturepacker and recreating atlases with the appropriate suffixes.</br></br>
<p>I also worked on touch logic whereby a user clicking on the screen would allow the rocket to change "depths" giving the illusion of going in and out of the asteroids and in turn running the sprite animation of the rocket.</p>
<p><strong>Day 12</strong></br>
I am unconvinced about whether the accelerometer is the right way forward for this rewrite. However, I want to make sure I don't over engineer this game as that was the original control system and move on to pastures new and new learnings. What I did decide to do is implement a Dpad and evade button just to see how it works.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLATN1f15QMmN21E5F9KM6qWIpDXdxH2YscCwljtI-Gb_5iikdzILWOTgOt04NweN-dfnKaOD8gZOEuHdIxPHiuwkPCVifnIEotMBeTICGcHiAgPL9JsyIbn0uBCxng3DBOEytmuz8SUg/s1600/A-mFbkbCcAAbKAL.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="213" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLATN1f15QMmN21E5F9KM6qWIpDXdxH2YscCwljtI-Gb_5iikdzILWOTgOt04NweN-dfnKaOD8gZOEuHdIxPHiuwkPCVifnIEotMBeTICGcHiAgPL9JsyIbn0uBCxng3DBOEytmuz8SUg/s320/A-mFbkbCcAAbKAL.png-large" /></a></div></br>
I wanted to keep the style minimalist and non-intrusive as possible. How I implemented was to create shapes. One of the complete Dpad and then a further 4 for each direction which is then created as a separate FButton and placed over the top of the complete image. The evade button will be used to run the rocket sprite animation and change the alpha of the asteroids so the player knows which asteroids to avoid. Also a little rearranging on the screen to ensure it doesn't become too crowded. Tested on various resolutions to ensure all sits correctly.</p>
<p><strong>Day 13</strong></br>
Back to graphics and animation today and that is to create a rocket flame / exhaust. I had a slight headache over how to implement this. In the current version using Corona this is a particle system using a third party plugin called <a href="http://www.x-pressive.com/ParticleCandy_Corona/features.html">Particle Candy</a> which was very easy to use. However, the new Unity particle system <b>Shuriken</b> was something that my novice experience was struggling with and not one I could see how it could be directly implemented using Futile.</p>
<p>Instead I chose to animate via Flash and export the frames from Flash into my atlases and create an object to play and scale the exhaust appropriately. The effect I am pleased with but feel I will need to tackle the particle system sooner rather than later.</p><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnq_RXJZy78OBrEpZga0rcmqhUk75g8nRKKWgy_Q5BKT2Ums5D8gcjoiqAs0DEs7xFbeJewkq8fqLpkdiEFNIQ-pRS84_R5lGeTBFA96vAbH-lJFBrk3RhAK5QGX1xbZWQ1k3dYZXinkc/s1600/13.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="213" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnq_RXJZy78OBrEpZga0rcmqhUk75g8nRKKWgy_Q5BKT2Ums5D8gcjoiqAs0DEs7xFbeJewkq8fqLpkdiEFNIQ-pRS84_R5lGeTBFA96vAbH-lJFBrk3RhAK5QGX1xbZWQ1k3dYZXinkc/s320/13.png-large" /></a></div>
<p><strong>Day 14</strong></br>
Big subjects were tackled today, collision detection and multi-touch. Let's start with the latter.</p>
<p>Multi-touch is important for my game as I want to move and evade at the same time and the normal signal release (eventhandler) won't even queue messages as its first come first served.</p>
<p>I'll confess I made a major oversight with implementing this and wasted a lot of time. An important point is to ensure you also inherit your class from <b>FMultiTouchableInterface</b> and then to update your Stage Handlers to include and remove multitouchtargets.
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'>Code:<pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='keyword'>override</span> <span class='keyword'>public</span> <span class='keyword'>void</span> HandleAddedToStage()
{
Futile.instance.SignalUpdate += HandleUpdate;
<b>Futile.touchManager.AddMultiTouchTarget(<span class='keyword'>this</span>);</b>
<span class='keyword'>base</span>.HandleAddedToStage();
}
<span class='keyword'>override</span> <span class='keyword'>public</span> <span class='keyword'>void</span> HandleRemovedFromStage()
{
Futile.instance.SignalUpdate -= HandleUpdate;
<b>Futile.touchManager.RemoveMultiTouchTarget(<span class='keyword'>this</span>);</b>
<span class='keyword'>base</span>.HandleRemovedFromStage();
}<!--[if IE]>
<![endif]--></pre></div>
</br>
with the final thing being is to implement what should happen when multiple touches occur with the <b>public void HandleMultiTouch(FTouch[] touches)</b> method. This should now allow your game to detect and react to multiple touches.</p>
<p>The next thing to tackle was collision detection. I managed to setup a collision detection of sorts by again having a method within the <b>Update</b> method checking whether one FSprite's position overlapped with another FSprite's i.e. rocket and asteroids, While it worked I found it wasn't responsive enough.</p>
<p><strong>Day 15</strong></br>
Having thought about this some more I was coming to a realisation that maybe I needed to dig a little further into the Physics system. While there isn't one setup specifically within Futile the community has written <a href="https://github.com/tmuntan1/futile-physics">FPhysics</a> which allowed more realistic collisions to happen between objects. This in itself through up some interesting points of research. The main problem still was that neither Futile nor FPhysics implement fully a method to programmatically initialise <a href="http://docs.unity3d.com/Documentation/Components/class-Rigidbody.html">rigidbody</a> and in turn a <a href="http://docs.unity3d.com/Documentation/ScriptReference/Collider.html">collider</a> in order to take advantage of collision detection inbuilt to the Unity Physic system. Where it should be possible to create something like the following:
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: 13.3333px;
font-width: 400;
color: black;
font-family: "Courier New";
}
.csharpcode pre { margin: 0px; }
.csharpcode .comment { color: #008000; }
.csharpcode .comment2 { color: #808080; }
.csharpcode .type { color: #2B91AF; }
.csharpcode .keyword { color: #0000FF; }
.csharpcode .string { color: #A31515; }
.csharpcode .preproc { color: #0000FF; }
</style>
<div class='csharpcode'><pre style='border:1px dashed #CCCCCC;overflow-x:auto;overflow-y:hidden;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;'><span class='type'>void</span> OnCollisionEnter(<span class='type'>Collision</span> collision) {
<span class='keyword'>foreach</span> (<span class='type'>ContactPoint</span> contact <span class='keyword'>in</span> collision.contacts) {
<span class='type'>Debug</span>.DrawRay(contact.point, contact.normal, <span class='type'>Color</span>.white);
}
<span class='keyword'>if</span> (collision.relativeVelocity.magnitude > 2)
audio.Play();
}<!--[if IE]>
<![endif]--></pre></div>
this will not fire in either of the two earlier instances. On discussion with Matt what it has highlighted is that it is very possible but in my novice state my understanding of Unity's <b>components</b> means that I am going round in circles. </p>
<p>So that brings me on to what to expect from part 3 of this series. The focus will be on bridging the gap between Futile and 2D in Unity to tackle the particle system (Shuriken) and the physic system to implement an equivalent experience to my Corona SDK game.</p>
<p>It should be noted for those that use Corona that this seems like a huge amount of work when Corona wraps this all up for you and that is indeed true and one of its big advantages. However, I have seen enough of the potential of Unity and getting familiar with its setup to know the short term pain will be more than worth it.</p>
<p>Until next time, Happy New Year!</p> mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com4tag:blogger.com,1999:blog-2627044686641246157.post-79180792156782102692012-12-23T16:02:00.002-08:002012-12-23T16:03:39.791-08:00Spriter: helping your 2D animation woes<p>I'm no artist, in fact barely a coder but one thing I struggle with is decent 2D art / animation. I can't remember why or the date but I have used Flash on and off for doing my art and animation for over 10 years but have struggled to find a decent alternative. I think what I like about Flash is the nuances of the tool for drawing that I am yet to find else where.</p>
<p>Its for these reasons that I started an investigation into something that could replace or complement my current toolset.</p>
<p>If you look at my current game on the market, Astavoid, I have a distinct style. This more than anything is minimalist given the time I have to focus on the art. I was told, and I forget the source, that its important as an Indie to do your own art as you aren't reliant on someone else to do your work, minimises cost and therefore a master of your own destiny. With that of course comes budget. I for some reason, again forgetting why think its age, have a copy of Flash CS3 which is by no means a feature rich product by today's standards. However, it is something I am reasonably comfortable with.</p>
<p>My route of investigation took me to Spriter. Spriter if you don't know is an animation tool for 2D games. Larger, more smoothly animated characters, all running for your favourite engine and platform. It had a very successful <a href="http://www.kickstarter.com/projects/539087245/spriter">kickstarter</a> in April 2012, of which at the time of writing the product sits in Alpha.</p>
<p>It is for the purpose of this blog to see whether Spriter can compliment an art package to provide quicker animation techniques over maybe that of tweening in Flash. </p>
<p>So lets begin, to start this off I will create a little gun man type thing which is a concept I have been working on. To help you visualise my minds eye we jump ahead a little to the final image.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGy715DAUqdKXyiSmP173hbGh7s-ONbBLXOlOhNSGn0AeSxRXiCv9leQkx8RlsvXF4Zdvp2ZcyfzFwx8H4W7Es93kzr-Qr2RaTjSjmXeK8P7JTMSb8PRP4Apw80OgIvk-gut41ngb4SdA/s1600/shooter.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="188" width="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGy715DAUqdKXyiSmP173hbGh7s-ONbBLXOlOhNSGn0AeSxRXiCv9leQkx8RlsvXF4Zdvp2ZcyfzFwx8H4W7Es93kzr-Qr2RaTjSjmXeK8P7JTMSb8PRP4Apw80OgIvk-gut41ngb4SdA/s200/shooter.png" /></a></div>
<p>Having read the web pages of <a href="http://www.brashmonkey.com/spriter.htm">Spriter</a> it looked like my animation needed to have component parts. This is because Spriter accelerates the animation process by transforms or skeleton rigging to provide pivots and movement where required.</p>
<p>My first step was to breakout my character into various body parts. As you see from the image above I have a character with a gun. What I will look to animate is the character shooting with a slight bit of kickback / recoil.</p>
For that reason I split my character out into sections:
<ul>
<li>Head</li>
<li>RightHand</li>
<li>RightArm</li>
<li>Gun</li>
<li>Body</li>
<li>Feet</li>
<li>LeftArm</li>
</ul>
<p>These are organised as such and this order to give the relevant layer depth to give the illusion of the character holding the gun etc.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFoMhu4p3zRxnsDdfYdRpTxKkqoe-SKpXhoPcgFzPpj2xlA4P_-uVYoWho46XWLCF7AjP_Jkq1mS0xf0DWycyMmC_lrZL4exynJI0Djs9uGNqstMeJXwwuf6y9N0ELkAz9p-1wxgg6mdE/s1600/timeline.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="228" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFoMhu4p3zRxnsDdfYdRpTxKkqoe-SKpXhoPcgFzPpj2xlA4P_-uVYoWho46XWLCF7AjP_Jkq1mS0xf0DWycyMmC_lrZL4exynJI0Djs9uGNqstMeJXwwuf6y9N0ELkAz9p-1wxgg6mdE/s320/timeline.png" /></a></div>
<p>With this now in situ I save out the layers one by one as PNGs hiding all but the layer I'm saving to have distinct images.</p>
<p>Next is to fire up Spriter, if you haven't done so already download <a href="http://www.brashmonkey.com/download.htm">here </a>and then once installed create a project and then import all the images we have just saved out. We then in turn position the images on the worker area to reconstruct our character. All going well it turns out like the one below.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCuUwj1I1Shlj3YpRE6GSbhrJ2Y0i0cDId6g4_KDnfkE2uqFLyTl4Unof6bhyHec4l69Jk5OBpVmPQ992WmGZiH2_wz0UJLY2Mq1A61d5JaCuAoJUeKDQrAKbrOraqjsdUZrBKNHTyryU/s1600/spriter.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="317" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCuUwj1I1Shlj3YpRE6GSbhrJ2Y0i0cDId6g4_KDnfkE2uqFLyTl4Unof6bhyHec4l69Jk5OBpVmPQ992WmGZiH2_wz0UJLY2Mq1A61d5JaCuAoJUeKDQrAKbrOraqjsdUZrBKNHTyryU/s320/spriter.png" /></a></div>
<p>The next thing to do is create keyframes along a timeframe, identical to how implemented in Flash, to denote when something should happen. This is the point whereby you start your experimentation. For mine I will add a keyframe around frame 80 (assuming a 60fps game) to move the gun to an aiming position. To do this we simply click the object "gun" in either the "objects in frame" window, or on the working area and a transform box will appear<p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVa23SoIVIw5n3bM0XUsUQhqM1zhE5rKZ7rwRwZAgBPwydvSmHUiPgCnGWxJ_9ZWHQoJvPYZlgBLnsQa5AgFR7aOb5OUiaSgEFxg3B8UVC0MEJNdGX9wjyEuQRe2SdWC9mIkfTUUioeXs/s1600/transform.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="295" width="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVa23SoIVIw5n3bM0XUsUQhqM1zhE5rKZ7rwRwZAgBPwydvSmHUiPgCnGWxJ_9ZWHQoJvPYZlgBLnsQa5AgFR7aOb5OUiaSgEFxg3B8UVC0MEJNdGX9wjyEuQRe2SdWC9mIkfTUUioeXs/s320/transform.png" /></a></div>
<p>To make it do something you can either move it (replicating a tween within Flash where it will animate to), scale or pivot. For the purposes of what I am doing I will pivot on the bottom left corner so the top right is pointing up. It's as easy as that!</p>
<p>The process now becomes trial and error rather than complicated keyframe drawing only to find there is an error.</p>
<p>Once you have completed your keyframes are ready to export out ready to put into a spritesheet / atlas. Here is something you must watch out for. In the current version of Spriter, at time of writing the alpha version, only the keyframes will get exported and not every frame. This of course for an animation is next to useless.</p>
<p>However, not all is lost. Dependent on the length of your animation this workaround could be pretty tedious but what you need to do is add a keyframe to each frame of your animation. Then when go to File -> Export to PNG all frames will be exported for you. Now you are ready to put your keyframe animated images into atlases / spritesheets with a tool like Texturepacker for use within your game.</p>
<p>And there you have it an animation in next to no time. So what are my feelings of Spriter. To be honest huge potential as the process of pivot and move was very easy with the key being to split out my character to component parts and the rest is a doddle. I will certainly be intrigued to see how the beta and full release of the product turn out.</p>
mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com3tag:blogger.com,1999:blog-2627044686641246157.post-44504331266777388572012-12-23T04:07:00.001-08:002012-12-30T12:21:46.802-08:00From Corona & Lua to Unity & C# - Part 1<p>For those of you who have followed my blog for a while you will see that title and think: "Changed his mind again!!", and you'll be right. I was taking my last blog a little further and experimenting with Cocos2D and Kobold2D. Both proved excellent and Steffen Itterheim's book Learning Cocos2D gave me a good grounding in both.</p>
<p>I think the thing that I started to get disheartened by was as soon as I finished the book Steffen announced he would be transitioning from Kobold2D to KoboldTouch. While that is no great shakes in that I hadn't really started I thought to myself given that I was looking to transition did I want to go with something that was closer to my core, .Net. The rationale behind this is that although I have released apps in Lua and Objective-C they took longer than I wanted as I got used to the syntax and idiosyncrasies of each.</p>
<p>Like a lot of people I am a follower of Matt Rix (@mattrix of Trainyard fame) who had spoken of a 2D code centric rendering framework he had been working on called Futile for Unity. I was intrigued by this as I had wanted to dabble with Unity for some time but had been put off by the plethora of buttons and options as well as a third axis I hadn't even contemplated :).</p>
<p>To start off with I watched the videos on Matt's website <a href="http://struct.ca/futile">http://struct.ca/futile</a> which gave me a decent insight into what it was capable of. I'll be honest I had to watch them each about three times to break through my mental block of Unity but what was becoming clear is that Unity only forms about 20% of this approach. MonoDevelop would become my friend and that was the point, code centric. So I thought I would take the plunge. First off I followed the steps on Matt's Github page:</p>
<p><strong>How to open the project</strong>
<br />
<ul>
<li>Grab the project from github and put it somewhere - For the lazy, <a href="https://github.com/MattRix/Futile/zipball/master">here's a zip of the whole repo</a></li>
<li>Make sure you have Unity installed</li>
<li>Go into BananaDemoProject/Assets/Scenes and open FutileDemoScene.unity</li>
</ul>
How to make sure you're running it at the right resolution
<ul>
<li>Go to File -> Build Settings -> Click "PC and Mac Standalone" -> Click "Switch Platform" (if it's already greyed out, you're good)</li>
<li>On the Build Settings page, choose Player Settings</li>
<li>Under Resolution and Presentation, set the size to 960x640 (or 480x320, or 1024x768)</li>
<li>Go to the "Game" tab</li>
<li>In the top left dropdown, choose your resolution (instead of "Free aspect")</li>
<li>In the top right, make sure "Maximize on Play" is enabled.</li>
</ul>
</p>
<p>Having followed these steps and watched the video while playing around with the code I personally started feeling quite comfortable with the concepts. In particular the third video of just over an hour really helped cement my understanding</p>
<p>For the purposes of clarity I am using Unity 3.5 (not 4.0) and took advantage of Unity's April 2012 give away on iOS basic. The latter is obviously required for publication and distribution but the free one to PC and Mac can still be designed to and just change the player settings to 480 x 320 for example.</p>
<p>Like most things when you start with something new I need a focus to adapt to my own requirements. This is the only way I find I can learn is to play around with things and try and try again. What I thought I would do is document my day to day transition from Corona and Lua to Unity and C# which the latter seems a popular option. For me the code for Astavoid was actually very similar to Matt's BananaDemoProject so unless I make paricular reference to code I would strongly recommend having a nose around there.</p>
<p>What should also be noted is I'm a hobbyist Indie (not sure that even exists!!) but means I can only afford at best 4 hours a day in the week and perhaps a little more at weekends. So my definition of a day is actually quite short so your progress could be even quicker.</p>
<p>I thought writing a new game would probably be too challenging so instead I focused on porting Astavoid from Corona SDK and Lua to Futile/Unity and C#.</p>
<p>For those of you who haven't had the pleasure of playing my first game its a very straightforward space evasion game that is available free on the <a href="https://itunes.apple.com/us/app/astavoid/id511468193?mt=8">App store</a>. Why not download it for reference, its free after all :).
<p><strong>Day 1</strong><br />
First and foremost I didn't want the same hassle I had when I first wrote Astavoid concerning fonts. On the iOS and Android devices handle paths differently so I followed the lead of Matt's video tutorial and purchased <a href="http://www.71squared.com/en/glyphdesigner">Glyphdesigner</a>. Really not sure why I didn't do this the first time but is an excellent tool to ensure compatibility of fonts across devices. Furthermore, I could include this font image within my textures / atlases. The font mapping file (.txt) also needs to be included within your resource folder in Unity.</p>
<p>The next tool to your arsenal is the excellent <a href="http://www.codeandweb.com/texturepacker">Texturepacker</a> this proved to be a lifesaver when I first wrote the game with Corona and is equally as effective for Unity. The only difference being that it outputs a text file rather than a Lua file but the transition is seamless. I couldn't recommend the product enough and, again, if you watch the video's on Matt's page this is what he is using.</p>
<p>So with my font and background graphic within my texture I was now in a position to create my first scene. Nothing too strenuous as really I was dealing with 5 text objects and a background image. Needless to say this was very straightforward. I created my Main.cs (C# script) which I dragged onto my Futile object. Then I open MonoDevelop and put the appropriate logic into the Start method of the Main class. Ensuring of course to add the labels and sprites as children of the scene (AddChild(object) so that they show up. Missed this one a few times :)</p>
<p>The result was a fair reflection of the original title page, other than the fact it didn't do anything at this stage:</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ0gFPPYiJLGupPlpYX-7EE5DHjVCVoeJRPwl4n_1MEBQ6dM0RVP1Vkz5jc7Ra6pBXWraSP6DaivRlYuHk75HMb3pkYgd8tvaMnqtCaxXwW5FAy-xZWjq6DFcvT_1yewDHzTHjqXmglBE/s1600/A9tD0nqCcAEvsHD.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="213" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ0gFPPYiJLGupPlpYX-7EE5DHjVCVoeJRPwl4n_1MEBQ6dM0RVP1Vkz5jc7Ra6pBXWraSP6DaivRlYuHk75HMb3pkYgd8tvaMnqtCaxXwW5FAy-xZWjq6DFcvT_1yewDHzTHjqXmglBE/s320/A9tD0nqCcAEvsHD.png-large" /></a></div>
<p><strong>Day 2</strong><br />
Buoyed on by my first day's achievements, and when I say day I only mean about 2 hours, I set about bringing the asteroids into my texture and look to provide some movement.</p>
<p>I started to organise my code a little and create an FContainer (or scene) to split up the various screens I was going to need. So I created a TitlePage and a GamePage.</p>
<p>Within my Start method on the Main class I did a call to the title page which in turn did a call to my game page. To conclude the navigation my game page, via the pause button, would return me to the title page. This simple transition meant two classes representing the scene, and my Main class with its singleton instance controlling which one to display. At this point I was calling the scene methods directly and not by button touch.</p>
<p>With this now working well I revisited Texturepacker and dug out my asteroid artwork and added it to my texture. I then re-published and added my new texture to the Unity project.</p>
<p>There is no specific physics engine built into Futile specifically aimed at 2D at the time of writing. Unity of course contains the powerful NVIDIA® PhysX engine but the whole purpose of using Futile was to make my life easier. So on day 2 of my adventure I focused specifically on animation</p>
<p>Thankfully Matt has considered animation / tweening and incorporated Prime31's <a href="https://github.com/prime31/GoKit">GoKit</a> library into Futile which makes animating the Futile objects very easy. All I had to do is create a base class for my asteroid object and derive from this for my different asteroid types to give the perception of depth. I then used the GoKit library to tween these asteroid objects relative to their size and depth and then cull when off screen.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiA6e7LCyKdQvywDRuJBkbG0eSf8wZNsZTfuvjHhTcAnWiysUsU3GXtefVsooYRwc15FdnLU184sgD1h_SaP9tcHcl4TGkYfs3FmGsaQdaWYaTOydAC2KwGN0RGfH2qWPbxyPKl6q8dzs/s1600/A9tEDUKCcAE-nxp.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="216" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiA6e7LCyKdQvywDRuJBkbG0eSf8wZNsZTfuvjHhTcAnWiysUsU3GXtefVsooYRwc15FdnLU184sgD1h_SaP9tcHcl4TGkYfs3FmGsaQdaWYaTOydAC2KwGN0RGfH2qWPbxyPKl6q8dzs/s320/A9tEDUKCcAE-nxp.png-large" /></a></div></p>
<p><strong>Day 3</strong><br />
The aim of day 3 was to hook up the title buttons via touch. Again this is straightforward enough through Futile's touch manager. By reviewing the code of the Banana demo project it is straight forward to see how the touch events via a signal release and then the relevant method to call. From these methods I was then calling my instance to call the scenes on the stack. This makes traversing the scenes easy.</p>
<p>An additional update was to apply the distance counter to the update method of my scene. My game by this point is running at a very smooth 60fps which exceeds the 30fps I was running at with Corona. Not a limitation of Corona I should say but mine in writing efficient objects and caching correctly. I remember probably spending about 2 months on this subject alone optimising my lua code and get it done in a day with Futile / Unity! I use a modulus to only update the counter every other second (or update) to keep the distance score a little more realistic.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEaEyS7OT6fhuqQRQEEpJnIyGDQmAMbbecpsBoy9mIcFGVMaDTWLjAOfLqxhgA07xnjOJ8tJSw-ryMCJO4YAVBbSAlolbml8XFkM5gdgVnzuC2zwefypv78t8bHJecC22-s1zM4-lgTH0/s1600/A9yUHV6CUAEuCVx.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="216" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEaEyS7OT6fhuqQRQEEpJnIyGDQmAMbbecpsBoy9mIcFGVMaDTWLjAOfLqxhgA07xnjOJ8tJSw-ryMCJO4YAVBbSAlolbml8XFkM5gdgVnzuC2zwefypv78t8bHJecC22-s1zM4-lgTH0/s320/A9yUHV6CUAEuCVx.png-large" /></a></div>
<p><strong>Day 4</strong><br />
With the principles of the scene setup I turned my focus to the rocket sprite. Its worth noting at this point that I am using existing assets that may need to be modified dependent on what control mechanism I go for.</p>
<p>With this in mind I created another texture atlas in texturepacker for my rocket and therefore not over bloating my other atlas. This is in part because I made the decision to add in my space background to the original atlas as it would be used on multiple scenes.</p>
<p>I also revisited my asteroid code and inherited more from my base class to streamline my code and adhere to the DRY approach of Don't Repeat Yourself. With this refactoring done I created a fourth size of asteroid to run in the background as a form of parallax asteroid belt.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2-xk-bvOSDjDGEEHGyXZht_fz3qj5px5O-YxWB0BTvx8su-PlmGDluJx4dxv0EapXoEcHNT_2IBhsMU0qwSsAQbDuiIZZpyjNnTSs2l8uNE9lSt6LiZ7wGMER5tZp70jEK_ANZ9f7K0/s1600/d4.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="214" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2-xk-bvOSDjDGEEHGyXZht_fz3qj5px5O-YxWB0BTvx8su-PlmGDluJx4dxv0EapXoEcHNT_2IBhsMU0qwSsAQbDuiIZZpyjNnTSs2l8uNE9lSt6LiZ7wGMER5tZp70jEK_ANZ9f7K0/s320/d4.png-large" /></a></div>
<p><strong>Day 5</strong><br />
This was a big update day! The first was tackling how to handle storing of data within Unity. I learnt that this was done with key value pairs that could have certain types attributed to them such as strings, floats, etc. I looked at using the <a href="http://docs.unity3d.com/Documentation/ScriptReference/PlayerPrefs.html">PlayerPrefs</a> class to store information for my best score but thought this needed to be extended a little to create my local leaderboard. I found something that I could base my class on <a href="http://answers.unity3d.com/questions/20773/how-do-i-make-a-highscores-board.html">here</a> and adapted appropriately. Having returned all scores to my list they are sorted and then limited for my purposes</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyWC8YbDcgu8k6-zJp6Ew-hvstBow48xLJeNzNmZwaqDGiNgsmC9N1q00UAKK8O2K7PRlVbTayToJ48PKtSmxB1mUHU1OWRwhwbmUZa627NKebJq55dfWXUt8ELT_3WRBLt3l1u4fwAOk/s1600/d5a.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="215" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyWC8YbDcgu8k6-zJp6Ew-hvstBow48xLJeNzNmZwaqDGiNgsmC9N1q00UAKK8O2K7PRlVbTayToJ48PKtSmxB1mUHU1OWRwhwbmUZa627NKebJq55dfWXUt8ELT_3WRBLt3l1u4fwAOk/s320/d5a.png-large" /></a></div>
<p>As well as adding in my best score logic and leaderboard I ensured that all buttons triggered events. This meant converting the FLabel to an FButton and in my case adding a transparent image behind the text for the hit state.</p>
<p><strong>Day 6</strong><br />
To mimic the Astavoid app that is already in existence I applied the GoKit tween logic to my Flabels and FButtons for the transitions between pages / scenes. The transition effect is done within the constructor of the scenes FContainer class while I wrote a specific TransitionOut() method to handle the text and image objects movements back to the start. This works really well with smooth movement and some nice effects such as easing in and bouncing.</p>
<p><strong>Day 7</strong><br />
Android was definitely an area that took a lot of development time up with the original release of Astavoid. The fragmented screen resolutions took some thinking and some adjustment in the code. While iOS isn't there yet its certainly heading in that direction which is why I was relieved to see that Matt had given it some consideration within Futile.</p>
<p>To tackle this I revisited by trusty tools of Texturepacker and Glyphdesigner and increase the size to be scaled appropriately for retina screens. I looked into Matt's Banana project to get a feel for the text sizes he used for this project and played around with my ratios as I had three different text sizes to his one. From this I setup the AutoSD feature of Texturepacker which works to the principle of largest size and then scales down the different ratios as are relevant.</p>
<p>Obviously we would work to the Retina x2 (or even x4) normally but I haven't had a chance to go back to the drawing board on the graphics so just want to work out the logic for the resolution switching.Highly recommend if you are starting out you work to the largest resolution. There are lots of guides out there <a href="http://www.iosres.com/">but this one</a> is pretty useful.</p>
<p>The result being that I have simple parameters set as part of the Futile init that determines the width that is relevant to that resolution, the scale factor and the suffix of the atlas file to pull in. For debugging purposes the scale ratio and the file being used is echoed to the Unity console so you can make sure you are scaling correctly.</p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhafvSygk6Kp6nvK9595W4SpTcxc9npfrFJ0YsX7Oao90POq4grbYQaktGJ4YScyY8nmQsKwif_bv3591_vG_dtvLEHIdSNJQ1JtKTX0mPv00CW6Ueqlc8aaYHc-3cukyu0JebUcwHDLk0/s1600/d7.png-large" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="212" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhafvSygk6Kp6nvK9595W4SpTcxc9npfrFJ0YsX7Oao90POq4grbYQaktGJ4YScyY8nmQsKwif_bv3591_vG_dtvLEHIdSNJQ1JtKTX0mPv00CW6Ueqlc8aaYHc-3cukyu0JebUcwHDLk0/s320/d7.png-large" /></a></div>
<p>A pretty productive first week I think you agree. I have learnt loads in this time and while have lots to learn I feel confident of getting this simple game ported.</p>
<p>Thing to note is that Futile is in its infancy at the moment so documentation is pretty light. However I found Matt Rix (@Mattrix) and Whitaker Trebella (@wtrebella) of Polymer fame, to be incredibly helpful with my annoying question. I can also help with the basics and can be found at MyGamingProject @gameproject10k where I will be happy to help.
Part 2 can be found <a href="http://mygamingproject.blogspot.co.uk/2012/12/unity-futile-c-part-2.html">here</a> covering Collision Detection, Multi-touch and sound will be tackled. Another busy week :)mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com6tag:blogger.com,1999:blog-2627044686641246157.post-84373453893213598762012-11-15T02:33:00.002-08:002012-11-15T02:33:43.640-08:00Six months in turmoilHaving released Astavoid back in April I very much saw that as a springboard to my 10,000 hour project. I had delivered on a lifelong dream to write a game, however basic, and now I was ready to make something more complicated.<br />
<br />
This was my first error. Having remained focused on Astavoid to make a game that was simple and therefore achievable meant I got it finished. However, on reflection I bit off more than I could chew meaning my ambition outweighed my ability and I become disillusioned a little. I was attempting to write a grid library that meant I could do a game like train yard, polymer, letterpress etc and have a formula that was repeatable to get more games out. However, as I evolved the grid I lost focus on my goal of the library and started dabbling with no real purpose.<br />
<br />
As writing this its a little like therapy and maybe I'm being harsh on myself but I feel I had lost 6 months development time and certainly hoped to have at least one more game released in my first year.<br />
<br />
What I ended up with was a partially complete grid library and some prototyped game ideas but none of which I particularly wanted to play once complete so why would anybody else. This is also when I started doubting whether Corona Labs (renamed from Corona SDK) was actually for me.<br />
<br />
To qualify this I had chosen Corona after research because of its ease to build to iOS and Android devices. I had launched on both including Kindle with reasonable ease but found the effort to support both outweighed the returns. I found i was getting about 8 times the download on Apple devices. Also I personally found setting up a developer account for Nook tortuous and still to this day haven't pursued so why were my main drivers multi-platform.<br />
<br />
Also the true lack of Gamecenter (matchmaking) and iAD support personally limited the direction I wanted to go in. Also having spent $349 on a Corona Pro license I felt pressured to churn out games, to make money to provide a return. On reflection completely the wrong way to manage my projects. While Corona do other an Enterprise license that may overcome these issues with access to native code that is further investment. My biggest bug bear was a lack of IDE and visual debugging. The writing to console was painful and extremely time consuming and took me back 10 years when I wrote classic ASP websites. While in fairness there are third party IDEs such as LUA Glider now on the market they still dont offer the tools that others already have in place.<br />
<br />
This led me to Unity. Without a doubt the tool to use at the moment and the possibilities are endless and having made my way though tutorials had quite an affinity for it. The use of C# is closer to my experiences as well. I dabbled with it for about 6 weeks I again found I had lost focus. The trouble I was finding was that it was just such a large tool and again the costs were prohibitive for somebody who had 3k downloads and no revenues. Since I last looked at it fellow Indie Matt Rix has brought out a library called Futile to work in a way I am more accustomed but feel I need some more games under my belt that has more community examples and support.<br />
<br />
This is when I made my choice which I'm now content with and refocused and that's Cocos2d / Kobold2d. Its not just one of cost but also the support and maturity of the community. While Cocos2d has proved really successful to date it had suffered in the frequency of its updates, this is where Kobold2d comes in in terms of its efficiencies it brings to the development process such as ARC and full Gamecenter support to name a few. The use of Xcode again gives me tools which I feel have been lacking.<br />
<br />
So looking back over my first year as an indie I haven't achieved my ambitious goals in fact got nowhere near (for example Astavoid achieved a highest position of 82 in action category in Spain) but I still continue. A vast number of Indies don't make a second game and to be honest I can see why but importantly I addressed my challenges, refocused and am looking to continue.<br />
<br />
Look out for my second game in the New Year.<br />
<br />
<br />mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0tag:blogger.com,1999:blog-2627044686641246157.post-76189792135684175652012-06-09T12:59:00.000-07:002012-06-10T11:32:56.400-07:00Astavoid: A postmortemThe last six months have been a hell of a journey and have learnt so much. What I don't understand are those people who write a game, expect it to become the next Angry Birds and then give up. What I have learnt from writing Astavoid has been invaluable but more importantly it is what I do next and having learnt from my mistakes are key to me achieving my goal.<br />
<div>
<br /></div>
<div>
This project and reaching out into the indie development world has been brilliant and would like to share some of the snippets I have received either directly via email or gleaned from other postmortems, blogs, tweets and browsing the interweb.</div>
<div>
<br /></div>
<div>
The general feedback I got about Astavoid was that it was a great first effort, that it was complete and polished with some neat twists but ultimately too hard and not sticky enough. This is supported throughout my analysis.</div>
<div>
<br /></div>
<div>
Keith Shepherd of Temple Run and soon to be released Temple Run: Brave fame was kind enough to feedback via email on my blogs and design of Astavoid with a number of pointers. Probably the biggest pointers I got from him were don't do soft launches but instead make a big impact by publicising your predefined launch date while also ensuring you never pay for reviews on review sites. The other main point was making sure you keep player retention and he used the analogy that 50% of Temple Run's users were still playing after a month.</div>
<div>
<br /></div>
<div>
Another Indie I have had the good fortune of exchanging dialogue with is Whitaker Trebella. He too has just launched his first game but his launch day tactics were exceptional. He really got the word around and while he has some contacts in the industry having done some excellent scores for games such as Tilt to Live, Super Stickman Golf and Casey's Contraptions, he ensured he got the word around. Again, tips I have picked up from him were use Twitter, use blogs and forums (Reddit, Touch Arcade etc) and create a decent game trailer, the latter of which I was disappointed in my own efforts. Whitaker wrote a very good article on using Twitter to support your game launch: http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/.</div>
<div>
<br /></div>
<div>
Matt Rix of Trainyard fame and inadvertently Noel Llopis (Casey's Contraptions, Flower Garden), were incredibly helpful in refining my game design for different reasons. Matt was kind enough to be one of my beta testers and gave me some constructive criticism to make the game more accessible to the masses. Like all good ideas (well good ideas to those that conceived it) you think that everyone will love it. The challenge with apps is that you aren't dealing with gamers or a specific target audience specifically and for that reason you don't want to overcomplicate gameplay. This is definitely something that Matt pointed out to me which meant I went through a number of iterations of beta testing based on his feedback to make the control mechanic more akin to Tiny Wings and Jet Pack Joyride et al. Noel, on the otherhand, gave me insight into indie development as a whole which I have blogged separately about but I was able to be a beta tester on his Flower Garden game that gave me a view on to how games should be tested and user feedback being considered and adopted so late in development cycles. </div>
<div>
<br /></div>
<div>
I have also read some great articles concerning the guys over at UsTwo who, amongst other titles, are reasonable well known for the very enjoyable Whale Trail. To paraphrase a few articles the tips from these guys are:</div>
<div>
<div>
<ul>
<li><b>Give journalists a story to tell: </b>the app store is too populated to just be about the game on the whole. Have an angle to sell in and make you stand out from the crowd</li>
<li><b>And target the right journalists:</b> Review sites may not be the write medium as not everyone is a gamer. Look for other mediums such as newspapers etc</li>
<li><b>Get the right offering together before launching: </b>make sure what you launch is right and not rushed to get something out on the market</li>
<li><b>Talk to your fans</b>: ownership, involvement and loyalty will undoubtable helped mould a better experience</li>
<li><b>You don’t just need a good idea, you need a marketable idea</b>: What do users actually want?</li>
<li><b>But it needs to be a marketable idea that you like: </b>make something you want to make!</li>
</ul>
<div>
Along with this advice that I have gathered so far I thought I would share a few learnings of my own. For what it is worth my game, Astavoid, hasn't been a great success. It was launched mid April 2012 on iOS devices (iPhone, iPad and iPod), Android and Amazon Kindle. The breakdown of stats are as follows:</div>
</div>
</div>
<div>
<br /></div>
<div>
iOS downloads: 2,297<br />
Android: 270<br />
Kindle: 89<br />
<br />
Total: 2,656<br />
<br />
To be honest I don't know what I was expecting from my first game but these seem respectable. That said half my iOS downloads were on the first day. But considering, despite my best efforts, to get reviews and press coverage this is purely word of mouth and one press release via prMac.<br />
<br />
The only thing I have done is invest a total of $140 ($70 on iOS and $70 on Android) in AdMob advertising campaign. The tactic of this was to see if this had an impact on sales and whether in app advertising was a future strategy I should consider.<br />
<br />
I ran the AdMob campaign on separate weeks, with a daily spend of $10 and a click of $0.01 which should generate 1000 click throughs to the relevant app stores. So for $140 I should get 14,000 click through to stimulate downloads.<br />
<br />
The following two graphs are the effects that the advertising had on the downloads figures:<br />
<br />
<b>Android </b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtJ8QBaMr5eSvDVy9tCK6QQbB7hRp3XPZZBmdJ2WKvmV0Ftfl2LOqtUjDdncyMauVPZB81v1cjcibS1TPGM7zQQR6ipI59-m6sZueyGRLGho0lu8Q75zwHjw9nv0JKBLsl5Zo3dbTkTiY/s1600/Android+sales.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtJ8QBaMr5eSvDVy9tCK6QQbB7hRp3XPZZBmdJ2WKvmV0Ftfl2LOqtUjDdncyMauVPZB81v1cjcibS1TPGM7zQQR6ipI59-m6sZueyGRLGho0lu8Q75zwHjw9nv0JKBLsl5Zo3dbTkTiY/s640/Android+sales.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: left;">
<b>iOS</b> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHLFv36gXadYEGm-Qtbr9nz39Ur-QTUMhCtZ0ojdE_D0ajERpAZKdG_1OJCRYShi5tLWzKodTcE9C1dRHw47139_J_ExQT_-wc4HjrUkfR8BaFbWHisfi4jzSdtdr6uis6IBIzUwDcMls/s1600/iOS+sales.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHLFv36gXadYEGm-Qtbr9nz39Ur-QTUMhCtZ0ojdE_D0ajERpAZKdG_1OJCRYShi5tLWzKodTcE9C1dRHw47139_J_ExQT_-wc4HjrUkfR8BaFbWHisfi4jzSdtdr6uis6IBIzUwDcMls/s640/iOS+sales.png" width="640" /></a></div>
<br /></div>
<div>
The graphs are a little misleading as the spike on the Android one is much larger given the relative non existent downloads to that point. What the graphs do show is that the ad campaign did stimulate spikes. However, despite the campaign breakdown as shown below the relative click through rate and the resultant conversion to a download was negligible<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFkblhbnqQ-P-alGEimKqQTQFHIfHbVGQ9M9b7ARvyCLiDLKqP3s7_eNnCwHCfTzvmGhCpP0mmF0_9VaDli5GrZbbbmhmisvNmXveJ4uVfkFGyr9m4pd_tP7Gq8_kKMuIwrxObDPkW6M/s1600/Screen+Shot+2012-06-09+at+20.43.47.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFkblhbnqQ-P-alGEimKqQTQFHIfHbVGQ9M9b7ARvyCLiDLKqP3s7_eNnCwHCfTzvmGhCpP0mmF0_9VaDli5GrZbbbmhmisvNmXveJ4uVfkFGyr9m4pd_tP7Gq8_kKMuIwrxObDPkW6M/s640/Screen+Shot+2012-06-09+at+20.43.47.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As you can see my ad was show some 2.4m times but the general awareness didn't really stimulate anything. This then brings me to the main point of monetarisation. Going back to the advice that Keith gave the game must be sticky and there is no truer word then when you have a free app reliant on ad revenue.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Just to be clear about my goal although it is about making enough money to put my kids into private education and pay off my mortgage I wasn't expecting to make a dent in that with my first game. In fact I see my first year making a loss and hope there are enough lessons to build on for year two to be profitable. With that in mind I will share with you my bag of loot.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
[Update: As noted by AC in the comments this is timelapsed based on revenues per day]</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMrFlUQRl-WdRjF3G8HWanzkrl7RcqvtuQikRPGtTIjyUPNUl3pm7IX2G75-90vc8mSS0Pl_yj35-A2GLeZDaq7uBgM5RRB6JOndzONldoPxuJVQcWefWXZISkD3dA-ih4wxMGnnQg1D8/s1600/revenue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMrFlUQRl-WdRjF3G8HWanzkrl7RcqvtuQikRPGtTIjyUPNUl3pm7IX2G75-90vc8mSS0Pl_yj35-A2GLeZDaq7uBgM5RRB6JOndzONldoPxuJVQcWefWXZISkD3dA-ih4wxMGnnQg1D8/s640/revenue.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Yep thats right $10!!! So just AdMobs alone I am at a $130 loss. But this is what this is all about learning, experimenting and putting these skills and thoughts into action that mean the second, third and one hundredth game.<br />
<br />
So what will I be taking forward into my next game? To summarise:<br />
<br />
<ul>
<li>A paid for app [Update: main comments are to consider freemium, we'll see :)]</li>
<li>A game that allows short bursts but brings the user back</li>
<li>To engage far earlier in my marketing. To fix a date some two or three weeks after the app is approved and let the media, forums, blogs and the world know its coming</li>
<li>Create a quality teaser video that does it justice</li>
<li>Make a richer, deeper but polished experience for the user</li>
<li>Try to instill some elements of community </li>
<li>Learn more</li>
<li>Keep having fun</li>
</ul>
So for now I will leave Astavoid behind and have fond memories of fulfilling a dream of writing a game however simple it ended up being and move on to much bigger and better things.<br />
<br />
Check out Astavoid on <a href="http://itunes.apple.com/us/app/astavoid/id511468193?ls=1&mt=8" target="_blank">App Store</a> and <a href="https://play.google.com/store/apps/details?id=com.parachutingfrogltd.astavoid" target="_blank">Google Play</a> and download for free.</div>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com5tag:blogger.com,1999:blog-2627044686641246157.post-57162064850484233052012-04-29T04:07:00.000-07:002012-04-29T04:07:30.979-07:00Marketing and Revenues - Week 1I thought I would disclose a warts and all appraisal week by week of my success of each game I launch. Being that <a href="http://itunes.apple.com/us/app/astavoid/id511468193?ls=1&mt=8" target="_blank">Astavoid</a> was my first game there was little blueprint to work to other than read around and get a sense of what others were doing.<br />
<div>
<br /></div>
<div>
I released <a href="http://itunes.apple.com/us/app/astavoid/id511468193?ls=1&mt=8" target="_blank">Astavoid</a> on the 19th April 2012, a Thursday. I am led to believe that this is important as far as the Appstore is concerned as this is their changeover day so launching on a thursday allow you to build up downloads, recognition etc over the week so more chance of getting featured the following week. A wives tale I'm not sure.</div>
<div>
<br /></div>
<div>
I wrote a very basic website to support the launch on my main <a href="http://www.parachutingfrog.com/" target="_blank">Parachuting Frog</a> website as well as create a gameplay teaser on YouTube. <br />
<br /></div>
<div>
<iframe allowfullscreen="" frameborder="0" height="220" src="http://www.youtube.com/embed/sG1oWtHnRAg" width="392"></iframe></div>
<div>
<br />
To be honest I'm not that happy with it as I don't have anything more than an iPhone 4 and a GorillaMobile tripod so the quality is pretty amateur but heh I'm learning.<br />
<br />
For prerelease I also have two twitter accounts <a href="https://twitter.com/#!/gameproject10k" target="_blank">mygamingproject</a> and <a href="https://twitter.com/#!/parachutingfrog" target="_blank">parachutingfrog</a> that help spread the word and keep people you to date.<br />
<br />
For launch I released to <a href="https://play.google.com/store/apps/details?id=com.parachutingfrogltd.astavoid&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5wYXJhY2h1dGluZ2Zyb2dsdGQuYXN0YXZvaWQiXQ.." target="_blank">Google Play</a>, <a href="http://www.getjar.com/astavoid" target="_blank">GetJar</a>, <a href="http://www.amazon.com/gp/product/B007VU5E3A" target="_blank">Amazon App Store</a> for Android, <a href="http://www.amazon.com/gp/product/B007VULBW8" target="_blank">Amazon Appstore for Kindle</a>, as well as the <a href="http://itunes.apple.com/us/app/astavoid/id511468193?ls=1&mt=8" target="_blank">Appstore</a> for the universal app for iPad, iPhone and iPod including Retina support up to IPad 3. So I had most bases covered apart from Nook Color which I am still waiting on administration.<br />
<br />
I started off with a soft launch because there were some key upgrades I wanted released and approved by Apple before telling the world. Alas there review process takes so long (7 days for first version and a further 6 for the update) makes a coordinated multi platform release quite tough.<br />
<br />
So on day of launch the only marketing was tweets and the trigger process that kicks in over the internet when new apps are out. The weekend of 21 and 22 April I did two things. I submitted my app to about 30 sites android review and probably 20 for Apple. The frustration I have found with review sites it would appear is that nobody is prepared to write a review for free unless you have connections or prepared to pay for it, or wait a long time for it to become popular. A little chicken and egg.<br />
<br />
The reason I didn't want to pay too much in marketing in the first instance is that my game is free so I needed to understand what the click rates would be and recycle it into marketing. The exception to this was a PR release I did via <a href="http://prmac.com/" target="_blank">prMac</a>. prMac has various packages but for a reasonable $20 you can release a press release which can be distributed to over 700 press agencies. So I did that and here is my <a href="http://prmac.com/release-id-41645.htm" target="_blank">press release</a>.<br />
<br />
So now you know my prerelease and marketing efforts lets have a look at what the first week's downloads look like.<br />
<br />
<table border="0" cellspacing="0" cols="9" frame="VOID" rules="NONE">
<colgroup><col width="110"></col><col width="91"></col><col width="91"></col><col width="90"></col><col width="94"></col><col width="92"></col><col width="91"></col><col width="91"></col><col width="55"></col></colgroup>
<tbody>
<tr>
<td align="LEFT" bgcolor="#E6E6E6" height="23" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="110"><b><br /></b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="91"><b>19th April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="91"><b>20th April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="90"><b>21st April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="94"><b>22nd April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="92"><b>23rd April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="91"><b>24th April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="91"><b>25th April</b></td>
<td align="LEFT" bgcolor="#E6E6FF" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" width="55"><br /></td>
</tr>
<tr>
<td align="LEFT" bgcolor="#E6E6E6" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>iOS</b></td>
<td align="RIGHT" sdnum="2057;" sdval="1130" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1130</td>
<td align="RIGHT" sdnum="2057;" sdval="379" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">379</td>
<td align="RIGHT" sdnum="2057;" sdval="157" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">157</td>
<td align="RIGHT" sdnum="2057;" sdval="130" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">130</td>
<td align="RIGHT" sdnum="2057;" sdval="75" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">75</td>
<td align="RIGHT" sdnum="2057;" sdval="36" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">36</td>
<td align="RIGHT" sdnum="2057;" sdval="18" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">18</td>
<td align="RIGHT" sdnum="2057;" sdval="1925" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>1925</b></td>
</tr>
<tr>
<td align="LEFT" bgcolor="#E6E6E6" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>Android </b></td>
<td align="RIGHT" sdnum="2057;" sdval="3" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">3</td>
<td align="RIGHT" sdnum="2057;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="RIGHT" sdnum="2057;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="RIGHT" sdnum="2057;" sdval="5" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">5</td>
<td align="RIGHT" sdnum="2057;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">2</td>
<td align="RIGHT" sdnum="2057;" sdval="5" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">5</td>
<td align="RIGHT" sdnum="2057;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">2</td>
<td align="RIGHT" sdnum="2057;" sdval="19" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>19</b></td>
</tr>
<tr>
<td align="LEFT" bgcolor="#E6E6E6" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>Kindle Fire</b></td>
<td align="RIGHT" sdnum="2057;" sdval="1" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">1</td>
<td align="RIGHT" sdnum="2057;" sdval="6" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">6</td>
<td align="RIGHT" sdnum="2057;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">2</td>
<td align="RIGHT" sdnum="2057;" sdval="0" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">0</td>
<td align="RIGHT" sdnum="2057;" sdval="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">2</td>
<td align="RIGHT" sdnum="2057;" sdval="4" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">4</td>
<td align="RIGHT" sdnum="2057;" sdval="0" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">0</td>
<td align="RIGHT" sdnum="2057;" sdval="15" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>15</b></td>
</tr>
<tr>
<td align="LEFT" bgcolor="#E6E6E6" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><br /></td>
<td align="RIGHT" sdnum="2057;" sdval="1134" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>1134</b></td>
<td align="RIGHT" sdnum="2057;" sdval="386" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>386</b></td>
<td align="RIGHT" sdnum="2057;" sdval="160" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>160</b></td>
<td align="RIGHT" sdnum="2057;" sdval="135" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>135</b></td>
<td align="RIGHT" sdnum="2057;" sdval="79" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>79</b></td>
<td align="RIGHT" sdnum="2057;" sdval="45" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>45</b></td>
<td align="RIGHT" sdnum="2057;" sdval="20" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>20</b></td>
<td align="LEFT" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><br /></td>
</tr>
</tbody>
</table>
<br />
As you can see, and to my surprise, I had a massive launch day surge. I can only assume this came about from twitter accounts and "watcher" services that broadcast when new games are out. I have quite an eye catching icon logo and unusual name so seemed to catch the imagination of some.<br />
<br />
The interesting thing is that iOS tailed off dramatically after that first day. Android, however, given the same marketing efforts has had pitiful downloads.<br />
<br />
So this is all very interesting but what does this equate to in terms of hard cash. Well as I mentioned I am doing the first one as free so revenues are purely down to advertising revenues. I have positioned ads on the front menu screen, pause menu as well as the game over screen. This should mean that even the shortest of games should put in two ad requests. The problem however with ad revenues is you get nothing for impressions but only for those that are clicked on.<br />
<br />
The next area of analysis of how the people are of my app are engaging with it. This is where Corona SDK provides a very useful tool called Launchpad that is by default is switched on for pro subscription developers that provide insight into these trends.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkrNdYO9pIZmS4mLxX_plIWWhvyWx-lW4a62owBIQP_snkwRgOZsudZYSsrp_YHMMb1vfNYanLsogCwxEVpgtmwdaFE8DjUoIxdrizwId8I9C96_r1a1ueXSZTnM9xBHyKk-eD1SyomWI/s1600/sessionlength.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkrNdYO9pIZmS4mLxX_plIWWhvyWx-lW4a62owBIQP_snkwRgOZsudZYSsrp_YHMMb1vfNYanLsogCwxEVpgtmwdaFE8DjUoIxdrizwId8I9C96_r1a1ueXSZTnM9xBHyKk-eD1SyomWI/s1600/sessionlength.png" /></a></div>
The first is the session length. You will see that from this stat that iPad is by far the most popular device and that most are only playing my game for a maximum of 39 seconds. The very nature of my game being a quick pick up and play is working against me in making it sticky enough to get those additional ad rotations in and therefore money.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJpLi8mztYY2CMMt-IONzM1Qht3O9i_0OWYq_DDhJMdv_gIzU7lyfae69kxFWzp_Ic-9CF_OGyQEcNcPq8EhFa3gxrgeJis7wbEriSKEbej3G7ZBGsaKL6Fqwsu5k_ER73JT9pbBIPsnQ/s1600/sessions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJpLi8mztYY2CMMt-IONzM1Qht3O9i_0OWYq_DDhJMdv_gIzU7lyfae69kxFWzp_Ic-9CF_OGyQEcNcPq8EhFa3gxrgeJis7wbEriSKEbej3G7ZBGsaKL6Fqwsu5k_ER73JT9pbBIPsnQ/s1600/sessions.png" /></a></div>
The next is sessions. The peak of sessions corresponds by day to the downloads and again supporting that the most popular device was iPad.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBf95M8BVn_JS1-we5Ub8Qryq0juPMkQncY4MMOjAMwozn44qgxCNFgSvz1yU9d5kmzG6xfzJ_oGJFp7Hq8A2YOnQElgMp5GjcsIi35RKlBE6hZux6T4OBLBUFhNgoNuLRVS0GjvAVP6g/s1600/uniqueusers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBf95M8BVn_JS1-we5Ub8Qryq0juPMkQncY4MMOjAMwozn44qgxCNFgSvz1yU9d5kmzG6xfzJ_oGJFp7Hq8A2YOnQElgMp5GjcsIi35RKlBE6hZux6T4OBLBUFhNgoNuLRVS0GjvAVP6g/s1600/uniqueusers.png" /></a></div>
As for unique users this kinda shows that there isn't a great deal of return visits going on. In my mind people are playing it, trying it and then deleting. A concept of course which is well supported by having a free app as they have nothing to lose but ultimately not great for revenues.<br />
<br />
So what does this look like for revenues. As you'd imagine nothing life changing! I have implemented an aggregator into my code which first uses Admob and if this can't fill for whatever reason trickles down to Inneractive. The reason for these two being used is in some part limited to what Corona SDK supports but also those that are around most countries.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGx5wYwoUUbCyx3SK9uH3qWka-1MVR-lD6Kq__e74vifUk1ElBOyuwIYSDhlzfxT6md9htg1lT00kfp39oCzEuxq5RDlMoiGT9GGIHlTzXMQ8y1kov7HdMKJLsGsc_uvnqDeQ71cMOdyI/s1600/Screen+Shot+2012-04-29+at+11.54.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="411" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGx5wYwoUUbCyx3SK9uH3qWka-1MVR-lD6Kq__e74vifUk1ElBOyuwIYSDhlzfxT6md9htg1lT00kfp39oCzEuxq5RDlMoiGT9GGIHlTzXMQ8y1kov7HdMKJLsGsc_uvnqDeQ71cMOdyI/s640/Screen+Shot+2012-04-29+at+11.54.03.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As you can see from the stats again its supporting the the number of downloads to ad requests. But what is important is that there is only about one impression per download. This means some people may not even be playing the game which seems a little odd. Most important though I have only made <b>$6</b> in revenue which is the equivalent of roughly having about 14 paid download apps. As you'll see from the clicks there weren't a great deal despite the reasonable impressions.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The final thing is to look at how the downloads faired across the world. I am using the excellent <a href="http://appannie.com/" target="_blank">Appannie</a> to give me stats. Also try the excellent <a href="http://majicjungle.com/majicrank.html" target="_blank">Majicrank</a> for realtime stats if your app reaches a rank of 200 or better.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
For iPhone I had a reasonable spread across countries if not ranking that high ...</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<table cellpadding="0" cellspacing="0" class="best_ranks" id="rankings_table" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #2f4b67; font-family: DroidSansRegular, arial, helvetica, sans-serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; padding-top: 1px; width: 445px;"><tbody style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<tr style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><th class="appstore" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; white-space: nowrap;">Store</th><th class="rank" colspan="2" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center; white-space: nowrap;">Action</th><th class="rank" colspan="2" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center; white-space: nowrap;">Arcade</th></tr>
<tr class="stores" style="background-color: #aaaaaa; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;"># of top 500 stores</td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">6</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">7</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="stores" style="background-color: #aaaaaa; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;"># of top 1000 stores</td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">19</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">19</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Turkey</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">166</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">375</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Mexico</td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">385</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">341</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Cyprus</td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">465</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">403</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">South Korea</td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">479</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">394</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Sweden</td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">481</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">593</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Spain</td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">485</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">437</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">France</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">513</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">472</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">United Kingdom</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">599</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">380</td><td class="date_cell c500" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">China</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">602</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">549</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Netherlands</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">641</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">634</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Brazil</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">654</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 22, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">603</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 22, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Armenia</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">705</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 21, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">599</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 21, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Italy</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">706</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">670</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Japan</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">724</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">643</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">United States</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">747</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">664</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Germany</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">759</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">611</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Canada</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">760</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">688</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Switzerland</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">805</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">728</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Egypt</td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">945</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">844</td><td class="date_cell c1000" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
</tbody></table>
<br />
and for iPad a little greater success where in 4 countries got into top 100. This of course is supported by the stats in the other graphs<br />
<br />
<table cellpadding="0" cellspacing="0" class="best_ranks" id="rankings_table" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #2f4b67; font-family: DroidSansRegular, arial, helvetica, sans-serif; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; padding-top: 1px; width: 445px;"><tbody style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<tr style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><th class="appstore" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; white-space: nowrap;">Store</th><th class="rank" colspan="2" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center; white-space: nowrap;">Action</th><th class="rank" colspan="2" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: center; white-space: nowrap;">Arcade</th></tr>
<tr class="stores" style="background-color: #aaaaaa; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;"># of top 100 stores</td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">0</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">4</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="stores" style="background-color: #aaaaaa; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;"># of top 500 stores</td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">10</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">15</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="stores" style="background-color: #aaaaaa; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;"># of top 1000 stores</td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">10</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">15</td><td class="date_cell " style="background-color: white; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Turkey</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">104</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444422; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">86</td><td class="date_cell c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Ireland</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">104</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444422; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">88</td><td class="date_cell c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Italy</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">104</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">195</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Romania</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">109</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444422; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">80</td><td class="date_cell c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Denmark</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">116</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">110</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Spain</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">130</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444422; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">88</td><td class="date_cell c100" style="background-color: #ffffdd; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Japan</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">172</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Brazil</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">173</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">153</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Sweden</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">187</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">171</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Israel</td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">194</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">167</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Netherlands</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">170</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 19, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Mexico</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">176</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">El Salvador</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">177</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 24, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">France</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">180</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Saudi Arabia</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">190</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 21, 2012</span></td></tr>
<tr class="ranks" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><td class="appstore" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; white-space: nowrap;">Switzerland</td><td class="rank not white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #777777; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">-</td><td class="date_cell white" style="border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></span></td><td class="rank not c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 25px; padding-right: 5px; padding-top: 6px; text-align: right; white-space: nowrap;">197</td><td class="date_cell c250" style="background-color: #f4f4f4; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #555555; font-size: 11px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: right; white-space: nowrap;"><span class="change_not" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Apr 20, 2012</span></td></tr>
</tbody></table>
<br />
<br />
As I said at the outset this is a warts and all reality of indie development. I have learnt a lot in this second week about how I could have done it differently for next time but not sure I can retrieve the situation without some investment in a marketing budget. But that is for another week.</div>mygamingprojecthttp://www.blogger.com/profile/11439127464517194421noreply@blogger.com0