Indie game developer. Runs a software company in Greece. Author of the open source game engine Sylphis3D (http://devnet.sylphis3d.com/). Creator of the iOS game "Pop Corny". Blogs at http://kalogirou.net/
Posts by Charilaos Kalogirou
  1. Porting your iOS game to Blackberry Playbook (and future BB10 phones) ( Counting comments... )
  2. Porting your game from iOS to Android ( Counting comments... )
  3. Writing portable code: A process full of gain ( Counting comments... )
  4. Launching on the AppStore in the year 2012 ( Counting comments... )
  5. My game design hat ( Counting comments... )
  6. Game Pre-Mortem ( Counting comments... )
  7. Debugging hard to reproduce bugs ( Counting comments... )
  8. Optimizing for the instruction cache ( Counting comments... )
  9. Take your time (off) ( Counting comments... )
  10. Predictable garbage collection with Lua ( Counting comments... )
  11. Keep your mallocs close, and your related mallocs closer ( Counting comments... )
  12. From Python to Lua ( Counting comments... )
Advocacy / Business /

Today is somewhat an important day, as it is exactly 60 days since the day I can officially call myself a published indie game developer! It was February 3rd when Mr. Pop Corny rushed (actually it crawled thanks to Apple, but I will get to that below) into the AppStore after an 8 month development time, and the dream came true. So it seems now it is a good time to share some of my experiences regarding launching on the AppStore. I will try to provide some insight that I wish I had from other projects prior to launching my own.

Background

Let me start with some info on Pop Corny. Pop Corny was designed to be a simple and fun casual game, covering the need for short game session experiences that mobile phone games require.

I self funded, developed, published and initially launched the game as a paid application at the $0.99 tier. Later on, it switched to free and monetizing with IAPs, but bare with me for the details of this decision.

Below are some more technical details of the game:

  • Development time: 8 months
  • Number of developers: 1
  • Outside contractors for sound and most graphics
  • Build using a fork of Sylphis3D Game Engine
  • Support of all iPhone, iPod touch and iPad devices
  • Source code (gamecode + game engine code excluding third party libraries):

    -----------------------------------------
    Language files blank comment code
    -----------------------------------------
    Lua 52 2631 1026 10415
    C/C++ Header 77 1209 1111 3718
    C++ 32 731 882 2552
    XML 1 1 0 788
    Python 9 170 136 630
    Bourne Shell 13 70 167 284
    Objective C 2 14 14 25
    -----------------------------------------
    SUM: 186 4826 3336 18412
    -----------------------------------------
  • Game code accounted for 5983 lines of the above LUA code
  • The total source dataset reached up to 0.4 GB
  • Resulting “compiled” dataset at 10MB
  • Initial price $0.99 (50 days) then dropped to free
  • Total sales in two months: ~150000
  • IAP conversion rate: ~2.0%
  • Ratings: 4.5/5 (from 600 ratings, 70% of which are 5 star)

Promotion

As I said the game was funded and published without any help from the outside. This easily translates to: no money for marketing. Therefore I had to find ways to make the best I could on the cheap. One of the major aids on that seemed to be the famous launch day.

Everyone developing on the AppStore will tell you that the launch day is one of the most important events in effectively publishing your game. You must do the best in your powers not to fail that day. And this is true. I had published 3 more applications on the AppStore prior to this game and the launch day will give you eye balls costing thousands of dollars for free. This is through the AppStore’s new releases list.

My approach was to combine that visibility with all the “social” publicity I could harvest, doing my best to leap as high as I could on the charts. Then possibly some game journalists would notice and write about it, thus keeping the fire burning. To do that I created a trailer video for the game and one week earlier I created an event on Facebook for the “unveiling of the video trailer”. I invited everyone I could and one week later (on January 31th) I presented the video. That day I also posted the video on every related forum I could. This caused some fuzz but mostly in Greece where most of my facebook friends live in.

The release day was set on February 3rd. I already had approval from Apple and I was already sending out promo codes to game journalists before that. For this I was carefully compiling a list of game review websites and journalists from early on the development cycle. I had these ordered by alexa ranking by review scores and game types. When I got the game approved by Apple, I send out all 40 promo codes I had available, and contacted 100 more without a promo code.

Early on the development cycle I took another big decision based on marketing. That was to support OpenFeint in addition to GameCenter. OpenFeint has its own top games, featured games and new releases, which can give some extra exposure to your new and unknown game. I decided that I needed that extra eyeballs, so I supported both social gaming networks.

In short what I did prior to the release day were these:

  • Created a “coming soon” video trailer
  • Created Facebook page and Twitter page for the game
  • Organized a Facebook event for the unveiling of the game video
  • Send out all 40 promo codes to game journalists (with all media packs, bells and whistles)
  • Wrote posts in “new releases” parts of forums
  • Prepared a cross promotion among my other apps
  • Supported OpenFeint

Then all I had to do was wait for the launch day and the sweet success... or not...

Apple spilling the milk

With everything set and the game automatically scheduled to launch at the world’s AppStores on February 3rd, an unexpected nightmare started for me on February 2nd (since we live in a globe and in New Zealand it was already “tomorrow”). Of course I was viewing the New Zealand’s AppStore waiting for Pop Corny to appear, and it did. Oh! The Joy! After all these months of hard work it was there... taking its chance! Couldn’t be happier and more stressed at the same time... however the moments of joy ended shortly after I looked closer. Fear filled my heart when I noticed next to my game’s icon a release day of “Jan 31th”. I rushed to the new releases list like a maniac looking for Pop Corny which was nowhere to be found. What happened? Had the app gone live 3 days ago and I didn’t notice? Hardly... the app was not live on any other AppStore. I manually checked every other AppStore... not released...

Mr. Pop Corny is a popcorn loving monster

AppStore entry showing
the wrong release day

I was optimistic, these distributed systems are slow to update and initially things like that might happen. However, Feb 3rd started to dawn in more countries and the same story was repeating. Pop Corny was appearing as a 3 days old app. 3 days when you launch on the AppStore is an eternity. I was out of the front page, before I even got the time to get on it. I tried to contact Apple through the support system but that is easier said than done.

It was then I realised how small and expendable I was. There is absolutely no way to solve a situation like this with a system that works by choosing among 15 nested problem categories before you finally get a text box to write down your problem. No way to resolve it with an one day round trip for getting a reply that was canned and had nothing to do with what I described. No way when you can’t -at least- follow up on the answer you get. I tried again and again for the next days by submitting from the start my problem rephrased in the best way I would... fail.

It was almost 7pm US time when auto-magicaly the release day of Pop Corny rolled to the correct Feb 3rd on all AppStores. However it was too late. Some AppStores were about to go on Feb 5th by then. The icing on the cake however was the reply to my last plea at Apple that told me that they don’t see any problem with the date as it is Feb 3rd. The irony!

The problem also managed to mess up OpenFeint’s releases system. OpenFeint, once you have the app approved, scans the AppStore to see when your game releases. I guess that was the reason Pop Corny didn’t got on OpenFeint’s lists. One week later I contacted them about the problem and they said that somehow the system skipped my app, and that they had to add it manually. They couldn’t find an explanation, but I could...

This way I had zero exposure from the AppStore new releases, resulting in next to zero sales. It was a disaster. Apple should really make up to me for this someday by featuring it for a day or two... I can wait.

Getting a grip and keep walking

The above disaster affected all the AppStores in the world. It resulted in Pop Corny selling 10 units on release day in the US. I know crap-ware that were released the same day and sold more (based on their top paid ranking). It was so, because no one knew of my new released game.

In Greece, however, it was another story. Here is most of my “social network”. People knew about Pop Corny and they were expecting it. Several major local iPhone blogs wrote about it and the game took off. In less than 24 hours Pop Corny was number one top paid application. That was among all applications, not just games. 5 stars reviews started coming and it was heaven. A few days at the top and it was also on the local TV media.

This contrast between Greece and all other countries was to me a great illustration of how publicity is king. You must bring your game in front of the players face. And that is hard. It is the hardest part for a small developer. No one will look at you when you are small. Getting big seems like a self fulfilling prophecy.

Being the number one top paid application in Greece translates to 200 sales a day...

From the 150 emails I send to reviewers I only got replies from 10 people. 8 of them kindly suggested I pay some fee and the rest two just told me that they were too busy to bother. By monitoring the downloads on the media pack I could see that just two of them bothered to download it. It is clear that something is wrong here. It seems that the only way to get covered these days is through dollars.

Being the number one top paid application in Greece translates to 200 sales a day (yes it is a small store). This is 100 euros a day after Apple’s cut. Does not sound that bad, but given the universal decay law of the AppStore (I will talk about it next), it was not enough. Meanwhile on all other AppStores the app was doing poorly.

I knew that it was out of my reach to reverse this situation, so I decided to step back, stop desperately trying to push it, and focus on fixing some bugs, implement some new features until the day the game would go free. Going free was in my mind since the development days. The game was actually designed to work as a free game from development day one but the final decision to go paid was taken a few days before the release.

I saw this as a second chance. My means of getting more eyeballs on the game. But I knew that going free is not easy. It is a whole different arena. Going free will give you a big sales boost mainly because of applications like AppShoper. These kind of apps scan the AppStore every day and report to its users which apps has gone free, resulting in many sales. However many is not enough when competing with free applications. You need LOTS more.

There are services out there like OpenFeint’s “Free Game Of The Day” that provide you with the extra visibility you need for the day you go free. They feature one game every day, and promote it through their website and their iPhone app. I contacted them, they liked the game and I took the first slot that was available, that happened to be Thursday, Match 22nd (yeap the day Angry Birds Space came out... no fear!). They are very well organized and the process of submitting artwork was very streamlined and efficient. I submitted the appropriate banners and texts and there was nothing more left to do but wait for the day.

The day came and Pop Corny became free. The effect of this promotion was overwhelming. Pop Corny started to climb the charts all over the world at incredible speeds. It was not much later that it was ranking in the top 10 of more than 20 AppStores, and being number one of its category in 10 AppStores.

At startup the game checks for a .plist file on my server that contains possible news to present to the user. This allowed me to measure the rate of downloads in realtime. It reached a whopping 48 downloads/min. A few hours in the promotion 148apps.com featured it and even more downloads happened. This continued for the whole day (which is actually 48 hours to cover all the globe) and I had the opportunity to correlate the spikes I saw on the news file consumption with mentions on twitter, and posts on blogs, etc. A very educative experience.

With the game on so many charts it would be stupid to just turn to paid after the promotion day, switch charts, and lose the exposure. Also the revenue from the free version was already a multiple of the revenue with the paid. So I took the decision to keep it free. I believe I did the right thing. The game did 70000 downloads in the weekend following the promotion day, received very good reviews from the users and the revenue from the IAP was climbing. I was totally satisfied.

The universal decay law of the AppStore

One of the biggest myths busted by my experience with launching Pop Corny was that visibility on the AppStore is king. It seems like everyone believes that being on the top 10 is the way to sell. That this will translate to visibility and sales in a feedback process that will sustain enough to make a profit. You must do all you can to enter the charts as a way to make your game sell more. For me now, this is the biggest misconception about the AppStore.
With the huge amount of applications in the AppStore and the new ones that enter everyday, the charts only act as a capacitor. They smooth out spikes. Most sales today start outside the AppStore and not inside. The people that will buy your application because they saw it on the charts are not enough to sustain it on its position, let alone to lift it. Therefore we witness “the universal decay law of the AppStore” as I call it. Any application that is not receiving some external to the AppStore’s charts force will follow the graph below:

Let that be paid or free. The only thing that changes is the absolute amount of downloads, which is orders of magnitude larger when free. How fast is the decay depends on the competition, how much you icon and descriptions attracts buyers and what rating you have.

Bottom line is that the charts cannot sustain you these days. It probably did some years ago, but not anymore. You should never think of the charts as your means to sales. Use it just as an indicator of how well you are doing. The game is played out of this field. Get reviews, tweets, mentions, and of course get featured by Apple.

Conclusion

The AppStore is not an easy place to publish in 2012. I was not expecting it to be easy, since Pop Corny was not my first application published there. However I would really love not to have been squashed by that bug with the release day. At least it would make me feel much better if I knew I could efficiently communicate the problem to Apple.

In the end however I think that Pop Corny did very well and will do better with time. I learned a lot through the process, it has almost covered its development costs and also gave me the joy of having hundred of thousands of people playing my game. With a zero marketing budget and being my first game, it certainly exceeded my expectations. It proved that you can still have a chance on the AppStore without some big dollar marketing campaign. However it is getting really hard to do so.

[UPDATE: Pop Corny is now available for Android also! Get is here]