Mobile Game Development – Getting Started

Disclaimer: I’m not a mobile game developer by trade. It’s just a fun hobby for me and a nice departure from my day job of enterprise software development. My perspective is that of someone who does it on his own time, not for an employer. My experiences may be different than yours.


For many, many months, I’ve been spending my free time after the kids go to bed working on a new mobile game. As I announced in a recent post, I am finally going public with it. Mirror Maze is a mobile game for Android and iOS. Working on a cross-platform mobile game has been a lot of fun and frustration. I learned a LOT during the process and I have decided to write a series of posts to document the things I wish I had known when I started. This knowledge would have saved me a lot of time and frustration.

As the first post in the series, I want to talk about my motivations, how I decide on ideas, and some other random things to keep in mind when considering writing a mobile game (or app). This may be the least technical post of the series, but necessary to lay the groundwork.


Game development has always been something I’ve enjoyed doing. I’m talking about 2D games that aren’t terribly complex to develop. As soon as I knew enough about coding to start fumbling my way through applications, I was developing games. However, I didn’t really start getting halfway serious about game development until I started to mess around with mobile apps on Android. Mobile apps solved a problem that always kept me from trying to share my games in the past: Distribution.

Mobile app stores give developers a single place that they can upload their apps to. Users from around the world can go into their device’s app store and find that app. That was an awesome step forward. The problem now is that there is a lot of competition in the app stores. A LOT. Getting your app out there is only the first step. After that, you have to get your app noticed and THAT is the hard part. Since marketing your app is a massive topic, which I don’t feel qualified to discuss yet, I’m going to steer clear of it for now. The reason I bring it up is because there’s a very good chance that you can write the best app in the world and NOBODY installs it. So, let’s talk about motivations.

What Motivates Me?

I’ve worked on a lot of side projects over the years and I have never regretted any of them. Whether the project went anywhere or fizzled out, I always gained knowledge. I’ve worked on games, mobile apps, websites, and desktop apps. Most of them have either gone unfinished or fizzled out before gaining any traction with users. I’ve had a few mobile apps and games that did gain some modest traction, but they are my exceptions so far. I’m not motivated by fame or notoriety. Fortune would be awful nice, but I have yet to find that with any of my apps.

What really motivates me is the desire to try something new and to learn. Whether it’s something fun or challenging or both, I enjoy trying new things and the things I learn along the way. Sometimes it’s trying a new development technique that drives me. Other times it’s a new technology. Sometimes I just have that burning itch of an idea that I can’t get rid of without trying to scratch it. In every case I’ve also gained enough knowledge that it was worth doing to me.

My point is, don’t start developing a brand new game or app expecting it to immediately get millions of downloads and make you filthy rich. In fact, don’t even expect either of those things to happen at all. The odds are not in your favor. That’s not to say that it’s impossible, just improbable. So think long and hard about your motivations before you embark on your own development journey.

Where do I get my ideas?

As any creative person will tell you, inspiration can strike at any moment. And that moment may not be very convenient. The same is true for app and game ideas. In the early days of my software career, if I got an idea for a personal project, I would immediately jump in and start coding. After many failed projects and lots of hours spent on those projects, I’ve gotten a little more skeptical. Now I keep a list of ideas that I periodically refer to and add new ideas when they come. Since I never know when the inspiration will hit me, I keep my list of ideas in cloud-based note taking apps that I can access with my mobile device or my computer. I have some ideas in OneNote and some ideas in Evernote. Some day I’ll consolidate into one place, but it’s nice to have that list handy wherever I am. It also allows my ideas to simmer before I try to move on them. Plenty of ideas lose their luster after you give them serious thought.

Having the list is only part of the story, though. I also like to prioritize my list every now and then to make sure that Thing I’m working on is really the best thing I should be focused on at the moment. I prioritize my lists based on a few things.

Is the idea interesting to me? If you’re going to spend your own time on something, you have to like the idea. Eventually the new shininess is going to where off and you’ll have to have the drive to keep pushing. If you don’t like the idea, eventually your motivation will fade and you won’t finish the project. If that happens, hopefully you at least learn something along the way.

Will the idea be interesting to others? If your plan is to keep this as a personal project, for learning purposes or your own satisfaction, this isn’t as big of a deal. However, if you want to share this idea with the world, some market research is in order. Start by talking to your friends and see if you get blank stares. If the idea is simple enough to prototype, it’s usually easier to explain ideas to people when they have something to look at.

Do I honestly have the skill set to do the idea justice? It’s good to be honest with yourself for this one. If the idea involves a technology or or development technique you aren’t familiar with, are you willing to learn? Going back to motivations, that may be the very reason you want to try the idea in the first place. If you want to stay in your comfort zone, be objective about whether the idea fits into that comfort zone.

How difficult will the idea be to develop? This one can help you prioritize one idea over another. If you are being pragmatic, you can prioritize the ideas that are easier to develop first, to get something out the door. If you are doing it as a passion project, maybe you are willing to tolerate more difficulty to see your idea realized. Again, your motivations will help add or remove weight from this point.

With one of my games that had modest success, I learned another interesting lesson. If your idea is trying to mimic something in the real world, maybe a game that people have physically played, the bar is immediately raised in terms of what people are willing to tolerate. For example, I made a dart throwing game years ago for Android. Darts is a physical game that lots of people have played at bars or in arcades. So immediately people have an idea in mind of how the game should work and are less tolerant if the game doesn’t meet their expectations. That showed in the comments because there was almost a perfectly equal amount of “love it” comments and “hate it” comments. My suggestion here is to try to stay away from ideas that people have a preconceived notion of. If you can’t do that, be prepared to go to extra lengths to meet those notions.

The idea for Mirror Maze came to me while I was working on a completely different game concept. I immediately knew it was not going to be as difficult to develop as the game I was already working on and would probably appeal to a broader audience. The concept was simple enough that I could implement a super basic proof of concept app to show some family and friends. After sharing it with a few people, I knew I had a winner on my hands and I put the other game on the back burner for the time being.

Once you understand your motivations and have your ideas figured out and prioritized, it’s time to figure out how you are going to implement your idea and what technologies to use. In my next post, I’ll talk about how I figured this out for Mirror Maze.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *