Hi, I'm Amir Rajan. I graduated from college in 2006 with a degree in Computer Science. My career before 2013 was mostly as a contractor for hire (through consulting firms). I did .NET development (C#) and then later branched out into Node.js, Rails, and mobile.
Currently, I'm an indie (mobile) game developer. I built A Dark Room iOS. Here's the soapbox I usually jump onto when someone asks me about what type of games I build:
Games are important. They provide stress relief. Being in my thirties, it's hard to find time to play the games I played when I was a child (where you have to sit for a good few hours to make progress). Most mobile games don't capture that feeling of escape I used to get. It's frankly hard to do that when you have short play cycles and the limited attention of a busy adult.
I will never forget staying up late at night playing a video game (with the volume turned down so my parents don't hear). I just really miss being able to escape into a new world. The games I build try to capture that feeling, but in the context of a busy adult who just doesn't have those kinds of hours of gaming available to them.
It started off as a sabbatical really. Around March of 2013, I just needed some time off. The corporate development environment was just weighing on me. I decided to take a year off to work on what I wanted to work on (and just live off of my savings).
I saved and lived a pretty frugal life (even now I try my best to live below my means). Having that lifestyle let me save enough money to just take some time off when I needed it. Again, I feel I was lucky in this. Picking software development as a profession kept me gainfully employed after college and let me put away huge chunks of money (while still have a pretty comfortable life for me and my wife).
During that time off, I just wanted to explore new tech and build what I wanted to build. About three months in I came across a web-based game called A Dark Room, and reached out to Michael Townsend to see if he'd be okay with me porting it over to iOS (with my own spin to it). Building a "production quality" game has always been on my bucket list, so this was a good opportunity. It took me about 4 months to get everything ported over. (I used a platform called RubyMotion, as Objective C/XCode was just too painful to work with.) It pulled in very little revenue after release, but through my grassroots marketing efforts (and a lot of luck), A Dark Room iOS hit the number one spot in the App Store in April 2014.
When I came across A Dark Room, my primary goal was simply to enjoy a labor of love. From a business standpoint, there was some validity in doing the port because of the positive feedback the game got on HackerNews and Reddit. My current game, called A Noble Circle, takes a much different approach to what I did with ADR. The first version of A Noble Circle was barely playable (you can read about the progression and revenue here).
I released the first version of the game about a month in, for free. After about two minutes of pretty rough gameplay, a message was given to the user with regards to how broken I felt the mobile gaming landscape was. I also promised to release updates monthly and encouraged them to give me feedback via the reviews. This iterative approach to game development was well received. After three months I felt A Noble Circle was worth charging for. It's now generating revenue even though it isn't complete. People get excited to see new updates, and continue to recommend the game to their friends and family.
I self-funded my sabbatical, and accidentally made a top selling app. Most of the time I feel it was a lot of stupid dumb luck that I'm even successful at all.
After A Dark Room fell from its number one spot, I began to panic a bit. I felt as if "the party was over" and started looking for work again. (No, building a number app doesn't let you retire to the Bahamas, unfortunately.) My wife and I wanted to check off the "buy a house" item from our list, so I used ADR's money to put a hefty down payment on a house. Being the crazy frugal person that I am, I wanted to pay off the rest of the debt. So, I picked up contract gigs from Q4 of 2014 to Q1 2016. I still wanted to build games, so during this time I worked on a pre-sequel to ADR called The Ensign, and a new IP called A Noble Circle (all on nights and weekends). The income from those contract gigs (plus the passive income from ADR, TE, and ANC) gave me the means to pay off the house, furniture, student loans, and our cars. Imposter syndrome is a very real thing, and I struggled with it for a good year after ADR's meteoric rise and fall.
Aside from the "lost year of 2015", my work schedule was pretty consistent. I worked 6 hours a day, every day. The best part of being on my own was being able to turn off my alarm. I woke up when I wasn't tired anymore, and slept when I was. Your mileage may vary, but it was an incredibly productive schedule for me (although you do lose track of what day it is pretty quickly). Taking advantage of co-working locations (and having an exercise schedule) helped me keep track of time.
Today, things haven't changed too much. I still work every day, I still sleep when I'm tired, and wake up when I'm not. I still exercise. I still network with people (except moreso over lunch as opposed to going to co-working locations). Making a successful game opened up a lot of speaking opportunities for me, so I present quite a bit these days, my most recent one being the presentation I did at RubyKaigi 2016 on game development with Ruby. And I've written a book, too, about surviving the App Store as an indie game developer.
I chalk up a lot of my success to luck, but then I look back at all the marketing I did. Throughout the development and release of ADR, I kept a developer log and was extremely transparent with regards to monthly revenue and download numbers.
With all these long form entries, I took to Reddit and stayed active in the /r/gamedev and /r/apphookup communities. I'd give out promotion codes on /r/apphookup if they'd read my entries, which provided a means for users to see that I was a real person and not a nameless company. On /r/gamedev I spent most of my time talking about revenue and the inner workings of the App Store. This "marketing" helped me keep a strong following and helped my future titles become successful. Here are some of the posts I've done:
I rely heavily on people knowing who I am as a person (and how much I care about game development, the end product as much as the progression). Interacting genuinely with people that reach out to me has become an incredibly important component of my "brand". You can't fake this, so don't try to.
I released A Dark Room to the App Store for $1.99. It had one stupid screenshot and a small description. I found that setting the price to $0.99 led to a proportional increase in downloads. I left it there because "the gaming customer base" is large, and the more people that played my game, the more opportunities existed for a word of mouth recommendation.
Here are the revenue numbers for the first year of ADR:
November was when I started to panic and began doing contract work. Sales did end up picking back up in 2015, however. Here is a rough estimate of my "walk away" income:
There are a couple of caveats for the numbers above:
I'm wrapping up A Noble Circle by the end of this year. I have 3 other game ideas in pre-production. And I've ported A Dark Room to Google Play. (It's still too soon to make a judgement on whether it was worth it. Right now it's making only 5% of iOS's revenue.)
In all honesty, I just want to keep getting my small piece of the "iOS/Android mobile gaming pie". I'm not looking to have a large team that builds games. I'm not trying to conquer the world. I just want to build what I want to build, on the schedule I want to keep, and try to do that as long as I can. If the well runs dry, then I'll go back to a 9-5. Somehow, I keep surviving with this mentality. I don't know why, but I'll keep writing and presenting about it.
I probably should have ported to Android sooner. At the time RubyMotion was iOS only (it's now cross platform which is why there is an Android port now). The thought of rewriting everything in Java was not appealing to me at all, but I probably wouldn't have had the "lost year of 2015" if I did the port and had additional income coming in from another market. My future games will target both iOS and Android (again because of RubyMotion). My next games will be written in motion-game, which is a Ruby wrapper around Cocos2dx. I'm also keeping an eye on Arcadia.
Discipline and habit. When "passion" and "the thirst to create" wax and wane, I just power through with habit. I wake up. I work on stuff that needs to be worked on. I sleep when I'm tired. I wake up. I work on stuff that needs to be worked on. (Emacs' org-mode helps tremendously for prioritization of stuff that needs to be done.)
I continue to live well below my means. It's absolutely maddening to see so many people work a job they don't want to work, so that they can pay for stuff they don't really need. Time is by far the most valuable "thing/piece of stuff". How much are you selling an hour of your life for (the whole aspect of the hour... time away from your family, time away from the things you enjoy doing)? Is it worth it?
Get something out there. Build something and ship it. You don't have to put in a huge marketing effort with a soft/quiet launch. So get something in the public, find a niche community that is willing to give you feedback, listen to them, and iterate.
My games:
If you have any questions for me you can ask below in the comments:
Do you know the reason for the income growth in 2014?
Damn beat me to it nice work, im going to try it later when i get the money on google play
Great read, thanks for sharing! It's nice to see things from an entirely different angle to what I know, i.e. game/app development.
What particularly resonated with me is that everything takes time, and with consistence and discipline you can make something happen, with a good dose of talent of course.
I appreciate the transparency here also! Now I want to go try the game!