Developing an iPhone or iPad Game

How to get started

gameplay
Image Courtesty of Super Evil Megacorp
PRODUCT DISCLOSURE $

If you have a passion for developing mobile games, it's never too late to get started. While the App Store isn't quite the gold rush it was in the early days, it's still quite possible to develop an app, build a following, and make money. There's also a low cost of entry into the market; Apple charges $99 USD a year for a developer subscription, which allows you to submit iPhone and iPad games to the App Store. You can download the Xcode development kit for free after you register as a developer. But, what should you do after that? We'll show you how to get started.

What Do You Need to Start Developing Mobile Games?

Outside of the developer subscription, you need programming skills, graphics, and patience. Lots of patience. While you don't want to be a perfectionist that never publishes because they always find some small flaw, you also don't want to put out a bug-riddled product.

If you don't have an artists' touch when it comes to graphics, don't worry. There are a number of resources available for free or cheap graphics. If you're a one-man shop, you need enough skill to create buttons and put together a serviceable user interface, but most of us can handle that with a few lessons on how to use Photoshop or the free alternative Paint.net.

Which Development Platform Should You Use?

If you only intend to develop for the iPhone and the iPad, Apple's Swift programming language makes the most sense. It's a rapid development language compared to the old Objective-C, and when you develop directly for the device, you can use new features of the operating system as soon as they're released. If you use a third-party development kit, you will often need to wait for that third-party to support the new features. There are a number of third-party iOS emulators that can come in handy, too.

But don't dismiss third-party development kits. They're useful if you plan on releasing your game across multiple platforms. You want to avoid the "build a game in an hour" development kits. They're oftentimes too limited to develop complicated games. Here are a few solid platforms that are free to use for independent developers who fall under certain revenue limits:

  • Unity. This is one of the most popular third-party development kits, especially for those who use 3D graphics. You can start using Unity for free so long as your annual revenue is less than $100,000.
  • Corona SDK. If you're looking to create a game fast with 2D graphics, the Corona SDK is a solid choice. It uses LUA as its programming language, which is both flexible and very quick. Corona SDK's personal edition is free and doesn't have a revenue limit. The enterprise edition allows offline builds and the ability to create your own custom API, which makes it very flexible.
  • PhoneGap. One of the most popular third-party tools, PhoneGap offers a lot of support and third-party plugins. If you land more on the graphics side than the programming side, this can give you a real leg up. PhoneGap also uses web-based tools (HTML, CSS, etc.) as the core of the development experience. It's free.

What About Graphics?

If you don't have an artistic bone in your body, graphics can seem like a giant roadblock. But there's a way around it: asset stores. These marketplaces let you buy pre-made graphical assets for use in game development. The downside is your game's visuals won't be unique.

  • OpenGameArt. One of the most popular sources for free graphics come from OpenGameArt. Most of the assets in this store fall under a creative commons license that usually requires attributing the graphics to the artist.
  • Unity Asset Store. One great part about using Unity is the asset store, which has visuals from a lot of different genres and includes both 3D and 2D graphics. Best of all, you don't need to use Unity to use the asset store.
  • GameArt2D. This site has a nice "freebies" section and a good collection of royalty-free graphics that don't cost an arm and a leg.
  • Scirra. The Scirra store includes both graphics and audio assets like music and sound effects.
  • Game Assets at Reddit. This subreddit doesn't contain actual game assets, but it's a great discussion forum for finding assets.

General Mobile Game Development Tips

Here are a few more generalized tips to keep in mind when creating your first game app:

Start Small

Why not jump directly into your project and learn these games? For one, game development is hard. Depending on the scope of your project, you may be working on it for months, a year, or even several years. Even if your concept is relatively simple, getting your feet wet with a small project is a good idea. Great programming is a matter of iteration. Each time you implement a feature, you will get a little better at coding it. In the end, developing a small game will help your main project turn out better.

Publish Fast

Coming up with s simple concept and developing it to the point where it can stand on its own in the App Store allows you to learn about the publishing process. Not only will you find out how to publish apps, but you will also learn about the post-publication process, which includes marketing your app, getting it at the right price point, implementing the right advertisements, patching bugs, etc.

Break Your Game Into Parts, Build Game Engines, and Publish Multiple Games

It's important to take a project, break it into its various parts, and then break those parts into even smaller parts. Not only does this help you keep organized, it also allows you to see progress on a project that could take months to complete. Your game likely needs a graphics engine, a gameplay engine, a leaderboards engine, and various parts like a user interface, menu system, etc. 

The key to smart development is to always lookout for repetitive pieces of code and take it as an opportunity to build a function or class around that code. For example, placing a button on the screen might take several lines of code, but there may only be a few variables that change each time you place a button. This is an opportunity to create a single function for placing the button in which you pass those variables, thus cutting down the amount of time it takes to develop a menu system.

This same concept applies no matter the scope of the project. Building up a set of reusable code and code "engines" can make future game development much easier.

Have Patience

Game development can be a long process and it takes a lot of patience to see it through to the end. It's important to set aside some time each day or each week to develop. The biggest trap first-time developers fall into is taking time off to give yourself a fresh look at the project. This leads to the "Oh yeah, I was developing a game last year, whatever happened to it?" moment.

Unless you're developing a game that can be built in a matter of days or weeks, you will probably hit a wall. You may hit several walls if your project has a lengthy development cycle. But it's important to keep working on it. One phrase writers often repeat to themselves when working on a novel is to "write every day." It doesn't matter if the writing is good. Skipping a day can lead to skipping two days, a week, a month...

But that doesn't mean you need to focus on the same thing every day. One trick to dealing with the wall is to switch to another part of the project. If you are coding a complicated engine, you might spend some time looking for graphics for your game or looking for sound effects you can use in your user interface. You can even open up Notepad on your computer and simply brainstorm.

Don't Forget Quality Assurance

This mantra of patience is never more important than on that all-important last phase of development: quality assurance. This phase isn't just about squashing bugs. You must also evaluate various portions of the game based on the one metric that really matters: is it fun? Don't be afraid to make changes if you don't feel like your game is meeting the fun requirement. But, also keep in mind you've been playing and testing the game since development began. You don't want to fall into the trap of thinking the game is boring because you're overly familiar with it. Think about how that first-time user is going to feel playing the game.

Quality assurance is important because that initial release is very, very important. This is never truer than when an independent developer or a small team releases that game they've been working on for months and months. The very best marketing is the organic downloads that occur when the game is released on the App Store. The more polished the game, the better its initial reception, which leads to more downloads in the long run.