Slides and Such

For this week’s iDevBlogADay post, I’m going to look back at a presentation I did a couple weeks ago at FlashInTO, a local Flash user group. I’m also going to go over a bunch of random questions and things that I mentioned during the presentation, so this’ll be a bit of an “odds and ends” post.

The presentation

You may be wondering why I gave a presentation about an iPhone game at a Flash user group. Well, there are a couple reasons. The most obvious one is because of my background as a Flash developer, I think I proved that it’s possible to make the jump from Flash to iPhone successfully. The second reason is that because of Adobe’s Flash CS5 Packager it’s now possible for any Flash dev to become an iPhone dev, so even if the technical advice doesn’t apply, the business and marketing tips do.

You can view the slides for my presentation here. It follows the same outline as my original The Story So Far and The Week That Was posts, so if you’ve read those, there won’t be too much new information. The main thing that’s different is that I delved a little bit more into how I used Flash and I gave a bunch of miscellaneous tips at the end of the presentation. Since I haven’t mentioned those things before, I figured I’d write a bit more about them now.

How I used Flash

Most of us iPhone developers didn’t originally learn to program for the iPhone, which means we probably have at least one language in our back pocket that we don’t use on a day-to-day basis. In your case, it could be PHP, Python or Javascript. In my case, it’s Flash. For every project I try to think of ways I could use my “non-iPhone” skills to help, whether it’s with tool creation, backend development or anything else.

As you may know, Trainyard was originally envisioned as a Flash game. Because of this, the engine and a large chunk of the puzzles were all created in Flash. You can try the original Flash prototype here. With that prototype, each level was created with hand-written xml. Not the best process, but it worked.

Later on, I decided I needed more control over the puzzle editing process, so I created a full puzzle editor in Adobe AIR. I used that editor for the rest of the puzzles, and I still use it right now. It’s way too ugly and buggy to ever release to the public, but it works perfectly for my purposes.

Some tips

In the last few slides of the presentation, I gave a bunch of random tips. There isn’t a particular theme, they’re basically just answers to some of the most common questions I get asked.

Don’t get a publisher

This is something that’s been said a lot recently, but I think it’s worth repeating: don’t get a publisher. If your game is good, it’ll do well eventually anyway. If your game isn’t good, no publisher is going to be able to turn it into a hit. The way I see it, a publisher just accelerates the inevitable.

Don’t launch at $0.99

At some point I’ll probably have to dedicate a whole post to my thoughts on the “ideal launch price”, but for now, I’ll just over-simplify it. If your game is deep enough to have a solid lite version, you should launch your game at $1.99, and then raise the price to $2.99 a month later. Only drop the price to $0.99 if the game enters the top 50 or if you want to have a sale just for fun. Never launch at $0.99, unless you’re planning on your game staying at $0.99 forever.

Don’t release the lite version at the same time as the full game

Unless you’re an imaginary person, your game won’t be perfect when it launches. At the very least, it’ll have bugs and some general usability issues. Give yourself a couple months to listen to user feedback about your game and improve on it. Take every opportunity to make your game as good as you can. When you release your lite version, it had better have every single kink worked out, because free users are incredibly unforgiving.

Users should like your lite version by itself

This is a little tricky to explain, but I’ll try. Way too many developers make their lite games into seriously hindered versions of their full games. At first, this might seem like a good idea, because you want the users want the full game, but in reality, even with the best games, the conversion rates from free to paid are only around 2%. If your game does a great job of making the full game seem good, 98% of your users are still going to delete your app because they don’t want to pay for the full game. The lite version doesn’t offer them any value, just the promise of the full version. You need to make a lite version that is a good game by itself.

Take a break

Don’t work on a single game forever! If you’re truly sick of a game, take a break from it and work on a new game. In the end it’ll make both games better.

Work hard, believe in what you’re making

Always keep in mind that your life will dramatically change if your game succeeds. Make sure what you’re making is something you’re proud of. Have a clear vision and work hard towards your goal.

Wrapping up

This has definitely been a mish-mash of a post, but I hope you’ve found some of it useful. As usual, if you have any feedback, feel free to post a comment, email me at or message me on Twitter.

Later tonight I’ll be heading to Montreal for Unite 2010 (the Unity conference), but before I do that, I’ll be making a game for the 360iDev Game Jam. Most of the participants will be working overnight on their game prototypes, but unfortunately I’ve gotta catch a bus, so I’m only going to have a couple hours to work. You can follow my progress here, and you should follow everyone else too. I think you’ll see some really cool stuff.

Posted in iDevBlogADay, iOS Development, Trainyard | 5 Comments

Game Makeover: MicroSquares

For this week’s iDevBlogADay post, I’m going to do something a little different. Ok, it’s actually a lot different. Instead of talking about one of my own games, I’m going to talk about someone else’s game.

I’ve been exchanging emails over the last couple weeks with Parker, the developer of an iPhone game called MicroSquares. He originally emailed me to ask some questions about what he could do to improve the popularity of his game, and wondered if I had any tips to help bring his game to the next level. After looking at his game, I realized that it had potential, but there were definitely some things that could use improvement.

In the same timeframe I also had some similar conversations with other developers, and I realized that it would be great to make my suggestions for MicroSquares public, so that other developers could adapt them, learn from them and discuss them. Parker hasn’t heard any of these suggestions yet, but he did give me permission to post this on my blog.

I should point out that I’m definitely no expert at any of this stuff; these are just my opinions and sometimes they may be completely wrong. My marketing advice comes from my experience with Trainyard, my design and usability advice comes from my days as a Flash developer, and my gameplay advice comes from hundreds of hours playing iOS games and working on games of my own. This post will probably come across as a bit critical, but I’m just being honest about the things I think Parker will have to do to make MicroSquares succeed. There are plenty of great aspects to the game, but I’m intentionally focusing on the negative because that’s the stuff that needs improvement. He’s got the core of a good game here and it really does have potential, but there’s still some solid work ahead.

What is MicroSquares?

MicroSquares (iTunes link, 99c) is Parker’s first and only iPhone game. it works like this: you’re a square floating among other squares of varying sizes. You tilt to move, and grow if you eat smaller squares and die if you’re hit by bigger squares.  The game is relatively simple and not entirely unique, but it’s fun. Some extra flavour is added via powerups that give you abilities such as “boost” and “magnetism”. I’d highly recommend downloading the game so you can “follow along at home”, it’s only 99c and I’m sure Parker would appreciate it! I’ll be providing screenshots here in the post so you can see what I’m talking about.


I want to get the visuals out of the way, because I think that’s the area where the game needs the most tweaking. I heard this simple rule from someone who is a much better designer than me: “never use gradients with vector art”, and I think it’s true 99% of the time. There are definitely some high-end graphic artists who can pull it off, but for us mere mortals, it’s best to stay away from it. Gradients give vector art a cheesy “amateur Flash animation” vibe. If Parker replaces all the little gradients with flat colours I think it’ll give the whole thing a cleaner look.

On the topic of the squares, the main square is just a green box. That’s OK, but this’d be a great place to create a character with some personality. It doesn’t have to be Pixar level stuff, just slap a couple eyeballs on him and see how he looks. I think this is the sort of game that could really benefit from having a unique lead character. It would give the game a bit more of a “fun” vibe, and it’d add the potential to create other characters, sequels, and a eventually a whole brand.

It’d be cool if the powerups had icons on them instead of letters like “B” and “I”. Icons are a handy way to let users build up associations quickly, and I don’t think there would be any trouble coming up with icons for each power-up.

The score seems to be the most important stat, so I feel like it should be given more emphasis, right now it’s tiny and tucked away in the top corner.

For the menus, the font needs to change. Fonts should always match and support the subject matter, and I feel pretty strongly that marker/handwritten fonts should only be used for drawing apps and kids apps.  The rest of the game has a fairly clean look, and the story is “sciency”, but the font *really* throws it all into confusion. A nice clean font would do wonders for the look of the entire UI. In my opinion, this is the number one problem with the overall look of the game right now.


The music is *very* ambient and drone-y. At first I didn’t like it, but it started to grow on me. That being said, I still don’t think it suits the feel of the game. Music that’s upbeat and intense would make the game much more exciting.

The sound effects also need some love. Some are just subtle but others are non existent. The current “eat” sound is just a click, but I think it should be an upward “growth”sound. The powerups hardly make any sound, and there isn’t even a sound for when you die. This could all be remedied with a few well-picked sound effects.


Overall, I think the gameplay is great. It takes a little getting used to, but it’s fun to float around eating and avoiding. I like the on-screen “re-centering” button, but the tilt controls need to be a bit more sensitive. I found I was tilting my device too much while playing. Any time I’m giving advice on a tilt game, I always have to recommend Tilt to Live and Dark Nebula. These games aren’t just good examples, they’re the absolute pinnacle of tilt control on the iPhone. Parker should have a close look at both of these games to try to model his controls after them as closely as possible, as they really are perfect.

I think Parker needs to decide whether he wants this game to be a “zen” game, or an intense “survive-at-all-costs” game. Right now I think it feels too mellow, and the pace just needs to be amped up a couple notches. The game offers four difficulty modes: Easy, Normal, Hard and Insane. I think that’s too many. Most games like this only need a normal mode and an insane mode. The normal mode should start easy, but get hard pretty quickly. With too many difficulty options the player will just get confused about whether they’re playing in the right mode or the best mode for them, and they’ll be frustrated. As I was playing the current game, in the easier modes (all the way up to hard), the game was really too easy and it took a long, long time to finally die. I think it’d be best to keep the average “normal” game time in the 1-3 minute range, right now it feels like it’s way longer.

At this point, MicroSquares only has local highscores. I think it’d be in Parker’s best interest to invest some time into learning and implementing OpenFeint or GameCenter. I think he’ll be surprised at just how easy it is. Online scoreboards could help a game like this to thrive and build a following.


I know most of us developers hate the marketing side of things, but it’s a necessary evil. MicroSquares doesn’t have a YouTube trailer, but it needs one. A video is a fantastic way to show people what your game is all about, and you can reuse it all over place, especially on your promotion site instead of a wall-of-text explaining your game. Making a trailer really isn’t that hard to do, even if you’ve never done it before, and there are plenty of people out there who’ll be happy to point you in the right direction if you need help.

The actual content in the app description for MicroSquares is great, but the order needs some tweaking. Users often only see the first two lines, so make sure you say the most important bits there! I like to follow this up those lines with a bunch of bullet points, and then finally the paragraph-heavy description stuff last.

Just one small note for the credits screen. It’s great to ask for reviews, but Apple actually allows devs to link directly to the review page, so that’s something every single developer should utilize. Do everything you can to make it as easy as possible for users to review your game!

I’m not a designer, so I can’t say exactly what needs to change here, but this icon definitely needs some work. This is one of those places where a professional designer can really come in handy.


Just a few random notes for MicroSquares:

  • It seems to crash on the iPad. Not the end of the world since it’s not Universal, but still should be fixed.
  • Currently the pause button gets shown when we’re already in the pause menu (and in every menu), which seems a little weird.
  • I love how Parker is tracking tons of stats, but I think they need to be presented in a bit more of a fun way, right now it’s just a plain bulleted list.
  • The red titles on the blue background in the menus clash heavily. I think if it was just blue and green with no red, that’d probably be best.
  • The tutorial is basically fine, but it needs bigger “left”, “right”, and “exit” buttons.
  • The powerups are decent, but I think they’d be way more fun if there were more visual effects, like particle trails and other cool stuff.

Wrapping up

That’s about it! I realize this post is strange compared to the sort of things I usually post, but I really wanted to try something different as an experiment. It was fun. I’m sure Parker will find this handy, and I hope that the rest of you will pick up some useful things too.

PS: I’m going to check in on MicroSquares “after the transformation” to see how things have changed, watch for that post in a few months.

UPDATE: I’ve heard from Parker that he got a lot out of this post, and he’s going to be working to implement most of the changes that were suggested. Stay tuned!

Posted in App Store, Game Design, iDevBlogADay, iOS Development | 23 Comments


For this week’s iDevBlogADay entry, I’m going to write about how to stay focused on making your game by eliminating distractions and procrastination. This stuff helped me a ton while I was working on Trainyard, so I hope you’ll find it useful too.


When I was young I had Attention Deficit Disorder. Not the fake kind of ADD that everyone likes to think they have, but real, Ritalin taking, psychiatrist visiting ADD. When I was in grade four, my parents gave me a calendar where I would get a star sticker for every day that I didn’t get sent out of class. There are months in that calendar where I only earned a single star.

I still have ADD, but thankfully I’ve left the Ritalin and the psychiatrist visits behind. At times I find it almost impossible to focus and concentrate on my work (as I bet my co-workers could tell you). It sucks, but it’s just the way things are, so I’ve had to come up with some strategies for dealing with it so that I can get work done anyway.

I’m telling you this because even if you don’t have ADD, you’ve no doubt had times when it’s been incredibly hard to get work done without being distracted. I’ve come up with a few things that help me stay focused, and I figure if they can help me, there’s a good chance they can help you too. This is especially important for those of you who, like me, are trying to develop games in your spare time. Every wasted minute is time you could have been spending on your game.

Stop playing games

Stop playing games. Seriously. Not fun little indie games or iPhone games, but the soul-sucking, time-stealing, life-owning games like World of Warcraft, Starcraft and Counter-Strike. As a general rule, if it has online multiplayer, a strong social aspect and isn’t free, you’ve got the recipe for a life-owning game.

I am a HUGE Starcraft fan. I spent well over 500 hours in high school playing it, and even spent 50 hours playing the Starcraft 2 beta a few months ago.  When Starcraft 2 was released on July 27th and my preordered Collector’s Edition arrived, it happened to be at the same time I was putting the finishing touches on Trainyard Express. I gave myself an ultimatum: no Starcraft 2 until Trainyard Express got submitted to the App Store. To this date, three months after the game arrived and one month after submitting Trainyard Express, I still haven’t played the game. I finally learned my lesson, and I’m getting more work done now than I ever did.

Before Starcraft 2, it was Team Fortress 2, before TF2, it was Day of Defeat, before that, it was World of Warcraft. The list of my game addictions goes on. I know there are some people that don’t play these kind of games, but I’d say those people should consider themselves lucky. It’s incredibly hard to play this sort of game only “sometimes”. They become your go-to distraction when you’re even a tiny bit unsure about what you should be working on. Ultimately, they get in the way of you completing your game.

I wish I could say “you should cut down on your World of Warcraft playing” and it would magically help, but in reality, even if you cut down on your WOW playing now, it’ll just start up again when Cataclysm comes out or when one of your real life friends asks what realm you’re on, or whatever. I can only suggest what worked for me, which was to quit cold turkey.


Email and Twitter are two huge sources of distraction for me, but I’ve learned to make them into active distractions rather than passive ones. I give myself specific windows of time where it’s ok to check my email or go on Twitter, and the rest of the time, they’re completely closed and gone from my mind. This means I don’t keep Outlook or TweetDeck open, and I definitely don’t have my phone set to send me notifications for my email.

Some people will have other sources of distraction like message boards, instant messaging and IRC. All of these are fine in moderation, but it’s good to keep track of just how much of your time they take. If they’re eating into your game-making time, you make have to take some steps to reduce their impact on your lifestyle. If you’re still not convinced that IRC is dangerous, you should probably watch the video below.


I’m sure everyone has dealt with procrastination at some point (maybe you’re even doing it right now). It’s basically when you put off the things you should be doing by doing something else. In my case, it’s lead to many late nights in the final few days of projects because I waited till the very last second to do most of the work.

It wasn’t until I read a Newsweek article titled The Lure of Tomorrow that I really began to understand the causes of procrastination. It’s not as simple as just “delaying stuff that has to be done”. Instead, it really comes down to the difference between abstract and concrete tasks. Abstract tasks are those that are slightly nebulous and unknown, whereas concrete tasks are things that are obvious and cut-and-dry.

Think about the difference between these two questions: “Tell me a type of dog?” and “Tell me why humans have a strong bond with dogs?”. The first question would be easy to answer, and the second would take a lot more thought.

In game development, there are lots of uncertain tasks. You’ve got to think about everything from how the game engine will be structured to what colour to make the enemy hats. Sometimes it can be fun, so you’ll just do it, but other times, you’ll suddenly find yourself getting distracted much more easily.

The antidote

The best cure for procrastination I’ve found is to turn abstract tasks into concrete ones. A lot of this can be done with careful planning. If you know exactly what you’re going to be doing, tasks become less mysterious and more achievable.

I’ve also found it helps to make incredibly granular todo lists. Separate every task into subtasks, and then separate those subtasks into sub-subtasks. It may seem crazy, but it works.

Wrapping up

This post is missing a section on motivation, but that’s only because it’s such a big and complex topic I decided I should write about it in a future post. In the meantime, I hope you found these tips helpful. If they worked for me, they can work for you too.

Tomorrow (Oct 27th), I’ll be doing a presentation at FlashInTO here in Toronto about the Trainyard “story so far”. It’ll be based on the blog post I wrote a couple weeks ago, but with a bit more of a Flash slant. Feel free to drop by and say hi if you’re in the area!

A month after I wrote this post, I discovered pretty much the best post on procrastination ever:

Posted in iDevBlogADay, Workflow | 26 Comments

The Week That Was

For this week’s iDevBlogADay post, I’m going to try to explain all the things that have happened since last week’s The Story So Far post. I’ll probably miss some stuff, but this’ll at least give you a general idea of what happened.

A success

My experiment from last Tuesday worked exactly like I hoped it would. The moment the price dropped to 99c the sales shot through the roof. Within a day, Trainyard went from #48 to #9 in the US charts, and by the next day, it had reached #2, achieving my goal of overtaking Angry Birds. It was a crazy plan, but it worked. Trainyard stayed at #2 for around two days, and then dropped to #3 for a few more days. Yesterday it was passed by Cartoon Wars 2, so it’s currently sitting in #4. I wouldn’t be surprised if it drops even lower in the next couple days, but that’s just how things go.

The past week has been absolutely surreal, and I’m pretty sure the life-changing-ness of it hasn’t really hit me yet. It’s been a blur and it’s been exhausting. I’m getting TONS of support emails, which isn’t really a problem, but it takes a lot of time. I think I’ve already been asked to port the game to Android over 30 times (for the record, I’ve only been asked to port it to Palm once).

Spreading the word

News of the game’s rise up the charts spread around to a variety of Apple and gaming blogs. It received a great review from TouchArcade and mentions from heavy hitters like Boing BoingTUAW, Gizmodo and Joystiq. A lot of people seemed to be more interested in last week’s blog post about the story of the game than the game itself, which was fine with me. When I wrote that post, I had a feeling it would be a popular one, but it blew away all my expectations.

All aboard the express

Trainyard Express was also influenced by Trainyard’s success. When I wrote last week’s blog post, Express had just over 500,000 downloads. Right now, it has over 2 million. Knowing that over 2 million people have played a game I made is mind boggling. Obviously I’m hoping that the soft-upsell works, but even if it doesn’t, just having that large of a user base gives me an opportunity to reach way more people than I did before. When I come out with a new game or a new feature in Trainyard, I’ll be able to tell those users about it and hopefully get some good release-day sales.

The massive number of users playing Trainyard Express also put a huge toll on the server, but it’s held up quite well so far. There are now over 380,000 solutions available to view on the site, and that number is increasing at a rapid pace. At its peak, over 100k solutions were submitted in a single day. Just for comparison, in the first three months of Trainyard’s existence there were less than 4,000 solutions submitted.

The community

Everyone has been awesome, especially in the indie iPhone dev community. I’ve received many great comments and compliments about the game and the story behind it, and I’ve loved every single one. It’s really cool to be part of an industry where despite the fact that technically we’re competing against each other in the App Store, everyone works together and is genuinely happy for each other’s success.

The local indie dev community here in Toronto has also been awesome. I’ve received a few offers to speak at events (something I’m honestly a little scared of, but I guess I’ve gotta learn sometime), and I’ve already met a bunch of other cool local people. I regret not participating in the community a bit more in the past, but I figure now is as good a time as any to start being more involved.

Future plans

I’ve now made enough money that I can live comfortably for the next year, but I’m not leaving my day job just yet. I’m planning to stick around at Indusblue till the end of the year. I really want to finish off my current projects, and I think it’ll give me time to plan exactly what I’m going to do next year.

I know that I’ll be staring my own small games company. At first I’ll probably be the only employee, but depending on how well Trainyard keeps doing, I may be able to expand to actually hiring another person or two. Starting a company means I have to come up with a company name, which is one of those things I find really hard to do. Luckily, I’ve created a Company Name Generator to help me out with the process.

Future games

At the time I released Trainyard Express I was already hard at work on a new game, one that was completely different from Trainyard, but now I’m having to rethink my plans. I’m going to refocus my attention back on Trainyard for the foreseeable future. I always had big plans for it, but it didn’t really make business sense to spend hundreds more hours updating a game that only 3000 people owned. Now that it’s popular, I’d like to really focus on it and implement some of the most requested features, like Game Center support and user created puzzles. I also have a couple unique things planned for the game that I don’t think anyone is expecting.

Wrapping up

A month ago if you told me all this was going to happen, I probably wouldn’t believe you, but here we are. It’s been an incredible experience, and I just want to say that I feel incredibly lucky and fortunate to be in the position I’m in right now.

Posted in App Store, iDevBlogADay, iOS Development, Trainyard | 62 Comments

The Story So Far

For this week’s iDevBlogADay post, I’m going to take a detailed look at the history of Trainyard, from its humble beginnings to its current position high up the App Store charts. Yes, there will be sales data. This’ll be a long one, so settle down and enjoy :)

In the beginning

Trainyard started out as a couple of scribbles on a notepad in May of 2009. You can read a detailed description of that process in my Trains on Paper blog post, but I’ll summarize it here. At the time, I was prototyping ideas for Flash games, because I’d been doing professional Flash development for four years and so it was the only game making technology I knew really well. I had plans to make a game and maybe make some money by putting it on Kongregate or selling it on FlashGameLicense.

One day, while sitting on the train as during my daily commute, the concept for a game involving trains filled with paint came into my head. I did a bunch of paper planning, and eventually coded up a quick Flash prototype nicknamed “PaintTrain”. It was awesome. I set to work making puzzles every day during my commute for the next few months, still thinking I was making a Flash game.

The familiar

As an avid iPhone user since it first came out, I had wanted to learn to develop for it, but I thought it would be way too complicated. Talk began at my work about doing some iPhone projects instead of doing all Flash work. We were given a solid week to look into iPhone development and see what we could do. I didn’t make anything substantial, but I did learn a lot, and I discovered the excellent Cocos2D for iPhone framework.

After fiddling around with Cocos2D and seeing what it could do and how similar it was to Flash, I realized that I could definitely make iPhone games. I decided that PaintTrain would be my first iPhone game, and I also decided, thankfully, to name it Trainyard.


One of the key things I’ve learned is that the first project you make with any new technology will be awful, or at least full of issues and problems. I didn’t want Trainyard to be awful, so I decided to make a simpler, smaller game first.

I spent a couple weeks creating a game with an interesting tic-tac-toe-ish mechanic called “Quaddy”. It actually wasn’t that bad, but I didn’t feel comfortable releasing it as my first game. Through the process of making it, I learned a whole lot more about Cocos2D, Objective-C, and iPhone development in general. I was ready to make Trainyard.


At this point, it was October 2009. I figured I could finish the game in 3 months, using Christmas break as a final polishing time. Oh how wrong I was. It wasn’t that development was particularly slow, but that I kept adding little features and tweaking other ones. By January 1st, the core game was playable, but the menus were sketchy, the graphics needed work, and the end was still a long way off.

At Indusblue we were building our first major iPhone app, the official Olympics app for the official Canadian broadcaster of the Vancouver Olympics, CTV. It was a huge project for us, so I spent most of my time on that, and really didn’t have time to dedicate towards Trainyard. The CTVOlympics app was a massive success, both for CTV and for our company, but I lost a couple months of Trainyard development time.

New life

Being motivated about a project after a couple months away is usually tough, but with Trainyard, I was excited. I began to work feverishly in every moment of spare time to try to get it completed. I made a huge amount of progress on everything from the graphical style to the solution sharing backend. By the end of April, the game was looking a whole lot better.

Meanwhile, my wife and I were expecting our first baby. His due date was June 11th, so I was working hard to finish Trainyard before he was born. He had other plans. Toren Rix was born May 12th, 2010, almost exactly a month before his due date. I could write many posts about how awesome he is, but I’ll save that for another time.

My work gave me a month off so I could help look after my newborn son. It was great to have some time off, and I know my wife was very glad I was around. Toren slept a decent amount, so I had more time than ever to work on Trainyard. By the end of the month, the game was done.

The marketing machine

I submitted the game to Apple on May 30th and began my marketing preparations. I created an “upcoming games” thread on TouchArcade, made a great trailer, and sent dozens of emails to major iPhone game sites and blogs. The trailer really helped to get a small core of people excited about the game. I posted on Facebook to tell my friends that the game was coming, and told every iPhone owner I knew to get ready for the game.

Trainyard was approved by Apple seven days after submission, but I delayed the release because I’d heard that you should “always release on a Thursday”. Trainyard was released on June 10th for a price of $1.99. I discovered AppFigures and began to monitor my App Store rankings obsessively.


I don’t really remember how well I expected Trainyard to do right away. The reviews from blogs and on the App Store were great. I knew people would like it, but I wasn’t sure how quickly they would tell their friends about it. It turns out that people did like it, but they didn’t have nearly as many friends as I expected. Or something like that.

I tried a variety of mini-marketing escapades, including spending $50 on AdMob, $50 on Project Wonderful (Axe Cop, specifically),  and $50 on Google Adwords. None of that worked. $50 is almost too tiny an amount to spend, but it became immediately obvious that any ad campaign within my budget would have no effect on sales whatsoever.

I should add that I definitely wasn’t disheartened. I knew it would take time, and that I had a great game that would eventually be successful. I just really wasn’t sure how to get there, but that was part of the adventure.


In my mind, there were two things that could happen to help Trainyard be successful. One was to be featured on the App Store, and the other was to be mentioned on TouchArcade. Sadly, Trainyard was never mentioned on TouchArcade. I figured they didn’t think it would appeal to their target demographic, so I forced myself to move on. I also believed (and still believe) that Apple monitors TouchArcade much more than any other site when deciding which games to feature, so that made not being mentioned an even harder pill to swallow.

Meanwhile, I’d see other similar games get both on TouchArcade and featured in the App Store. Games like Kieffer Bros’ brilliant Aqueduct seemed like they’d appeal to the same types of people as Trainyard, and yet they’d be reviewed and featured while Trainyard went neglected. Rather than let this discourage me, I turned it into motivation to try harder to get the game noticed in spite of (what I perceived as) impossible odds.

Keep calm and carry on

It’s not like the game wasn’t selling any copies. In the 4 months between launch and the end of September, I sold 2338 copies and made $3200. Not enough to live off, but decent part-time residual income. I kept working on the game, releasing two major updates, one with over 40 new puzzles and the other with full retina-display support. I also raised the price to $2.99, as I figured that the “risk difference” for a potential buyer between $1.99 and $2.99 really wasn’t that high.

The Right Lite

I’d always planned to make a lite version, but I wanted to make sure that the game was as good as possible before I did it. I went through a careful decision making process and ended up making Trainyard Express, which had 60 puzzles, all of which were completely new and different from the puzzles in Trainyard. I knew I was including too much content, but I figured that any buzz was good buzz, even if everyone was only downloading the free game and ignoring the paid one. At that point, less than 3,000 people worldwide even knew what Trainyard was, so more people knowing about Trainyard couldn’t really be a bad thing. That being said, it was still weird to pour dozens of hours into something that I knew wouldn’t make me any money directly.

Building up steam

I released Trainyard Express on September 30th, the day I’d nicknamed “Trainyard Thursday”. A day later, an editor at a prominent Italian blog discovered the game and wrote a fantastic article about it. The game shot up the Italian charts and quickly became the #1 free app in Italy, netting 22,795 downloads in its first day at #1.

Along with the Express downloads, the paid sales in Italy also started getting higher, and within a day of reaching #1, I had beaten my single-day launch profit record of $140 with $240 in a single day. It was awesome to know that the up-sell was working.

Game asplode

Word of the game gradually spread to the UK, and by October 5th, it was climbing on its way to becoming #1 in the UK free charts as well. I mention October 5th because it’s also the day Apple wrote me an email saying they might want to feature Trainyard, the paid app. I knew what that meant; the Trainyard Express experiment had officially paid off.

Trainyard was added to the featured list on Thursday October 7th at 4pm EST, and it quickly climbed the charts. Being featured is one of those things where it’s hard to really understand what it’s like until it happens to you. It’s like winning a lottery, but a lottery where you work really really hard to buy your ticket. I spent hundreds and hundreds of hours working on the game, but all that time paid off when I saw Trainyard’s silly little icon in that featured apps list. I made it.

You’ll notice that the image above doesn’t have a legend. I’ve been advised against posting specific numbers for various reasons, but I think if you compare this graph to the earlier ones, you can figure out approximately just how much a feature from Apple can affect your bottom line. It’s pretty epic, isn’t it?

Wrapping up

Trainyard Express just dropped to #2 in the UK, but it’s already been downloaded over 450,000 times (#1 UK = 80k/day, #1 Italy = 20k/day). I have a feeling that it may slowly climb to #1 in Canada and maybe even #1 in the US eventually. Trainyard is #14 in paid apps in the UK, and just hit #50 in the US. That’s huge.

I’m about to try a new crazy experiment with Trainyard. I figure this may be my only chance to do this, so as of the publishing of this blog post, Trainyard is going on sale for $0.99. This is a HUGE gamble for me that could cost me thousands in lost sales, but I’d regret it way too much if I didn’t try it. I’m going to try to drum up some support from Reddit, where awesome things have been done in the past, so please participate there if you have a Reddit account. I’ll let you know how it goes!

UPDATE: Two days after this post was written, Trainyard climbed the charts and reached #2 in the App Store (beating Angry Birds). Mission accomplished.

You can read the follow up post here:

Posted in App Store, iDevBlogADay, iOS Development, Trainyard | 260 Comments