Monday, July 1, 2013

How to Build an iOS Game


Before you start, please read the warning notes in my last post: Why you should NOT build an iOS game

So, we've got that covered, and you're obviously obstinate about building an iOS game anyway.

Buiding an iOS app is not that hard if you know what you're doing. If you don't it is. I came from the latter position, and am happy to make the road somewhat smoother.

What to do:

1. Get a Mac


Yep, if you don't have one yet, you need to get one. iOS development can only be done on a OSX system, thus get a MacBook or something.

2. Get an iPhone / iPad


It's nearly impossible to develop a good app without being able to test it on the final product. So if you're building an iPhone game, you need an iPhone. Building an iPad game? Get an iPad.

3. Get the Tools


Download the most recent XCode application for your (shiny new?) mac. Go to the Mac App Store and type in XCode.

4. Get the SDK's


This step depends on you're game. In most cases it's an excellent idea to get a gamekit SDK to do much of the tedious work for you. It helps getting the graphics and sound together and aids in making animated transitions, etc easier. My pick was Kobold2D, which includes Cocos2D. It's free and you can download it at: http://www.kobold2d.com. At the moment it doesn't support 3D animations so if you need those, you need to get a different SDK. (most iOS games do without 3D anyway, see Angry Birds, Hay Day, etc and only use 2D images). Another popular option is to buy the Unity SDK. It's being used in many games as well. Check which fits your need best.

Make sure that the SDK you pick is able to do what you want. Do not save a couple of bucks on the SDK, just to spend weeks or months programming the missing features.

5. Get an iOS Developer License


It's needed to put your app on the App Store. Also useful if you need to ask question to the Apple Developer staff. Where to get it: https://developer.apple.com

6. Learn Objective C


To build an iOS app you need to program in Objective C. Get to know the language and the possibilities before starting out on your dream app. It saves you from having to keep rewriting parts of it.

Assuming you can programming already, I found the video tutorials by Paul Hegarty fantastic. You can download them for free here: iTunes Paul Hegarty Following these will help you to build simple iOS apps. Another wonderful resource is the site of Ray Wenderlich. Once you've mastered the basics, let Google be your friend ;) If you can't program yet, the tutorials of Paul Hegarty might be steep learning curve. Not impossible, just hard. Maybe it'll be a better starting point to take some programming classes off or online and to follow some basic tutorials.

7. Get to Know the SDK  


Get to know how to do stuff with the SDK you chose. Follow some tutorials and see the best practices. Again, Ray Wenderlich has some good ones for the Kobold2D/Cocos2D SDK.

8. Think Out the Game


Coding costs lots of time. Changing plans midway costs lots of time. Thus, write down you plans beforehand. Try to think out as much as possible before starting out.
  • What's the goal of the game?
  • Why would I play it again? 
  • How do I earn points? 
  • Do I compete against others or myself? How do I compete? 
  • Is the game too hard? Too easy? 
  • Is the game paid for/free? 
  • Do I want in-app purchases? If yes, why? where? Why would someone buy them?  

9. Marketing


Yes, you need to start marketing before you start building.
Unless of course you don't mind if nobody plays it. Hoping to make the top app lists by chance is like hoping to win the lottery. Not the best of business plans.

Ask yourself:
  • What's the earning model for this game? (free with ads, paid, in-app purchases) 
  • Who would play this game?
  • How can I reach these players?
  • Do they visit certain blogs, websites, read certain magazines?
Steps: 
  • Identify ways you can get to the pottential end users 
  • Build a teaser website 
  • Build a facebook page, twitter account, blog, etc.
  • Get in contact with your future users and keep them updated on the progress of your game
  • Build an audience before you launch, so users will download the game when it launches
  • Bring out teaser images, videos, etc.
  • Keep doing this until you launch
Marketing your app is the hardest and most overlooked step in developing a successful game. You can find more info on how NOT to do it here.

10. Draw the Game


Don't save time on planning. The more you know in advance, the better. Draw out all the game transitions. Draw out all the graphics.

  • How does the menu look?
  • How does the game background look?
  • How do the controls work?
  • What does the player see on launch?
  • Where are all the labels located?
  • How do you transition from screen-to-screen?
  • When and where is sound played?  

11. Design the Software


Before starting to code, always design the software first. It saves time later on.
  • How will you save data?
  • Do you need a database? If so, what fields, etc do I need?
  • What classes are you going to need? What functions?
  • Do you need additional SDK's for things such as Facebook integration?
  • What settings will you allow? Can you save them in NSUserDefaults?
  • How will you load images? As seperate files? As sprite sheets?
  • What about sound? How will you load it?  

12. Design the Graphics


Though luck creating your own graphics. Unless you're a graphical artist this is probably not your cup of tea.

This leaves three options:
  • Make it yourself anyway and suffer with bad graphics (really bad idea)
  • Hire someone to do the graphics. Make sure you're on the same line regarding the image your game needs to portrait. This is a good option if you have the budget and want to create a specific/unique look for your game.
  • Buy graphics online. Many graphics such as buttons, icons, etc can be bought online at a reasonable price. Don't spend hours designing a bad looking version of a button that costs $8 to download.  

13. Create the Sound


Like for graphics, you probably are not a sound magician. So again, take you're pick of the above three options.

14. Build the Game


With all the previous steps taken, you should now know how to build the game.

15. Test, Test, Test Again  


A game that crashes is a bad game. The following steps should take care of the most obvious mistakes.
  • Try all different ways of playing your game.
  • Finish the game multiple times.
  • Press all the buttons in random and various orders  

16. Get Dumb Users


Yep, your nemesis as developer is the end user.
They will use your game in a way you did not expect and not use it in the way you did expect.
They will ignore your instructions and help buttons.
They will crash the game in ways you can't.
They won't understand the menu.
They will get bored after one game.

Make sure you tested the game on real life users. Don't test just on your co-developers or on your boss. Test the game on persons who have never seen it before. Don't explain the game. If you need to explain it, you're lost. Ask them to criticize anything about the game. What do they like? What do they dislike?

How to find these users?
  • Friends
  • Family
  • Co-workers from different departments (finance for example)
  • Online (distribute the game for free to beta-testers)  

17. Get it On the App Store


Upload your app to the App Store. Don't make the game pubic yet, as you need to market your game

18. Market the Game


The hardest part of it all. This is a whole different story all together. Read the story.

19. Get a Swiss Bank Account / Enroll for Unemployment Benefits

(in case of the former, don't forget me ;))

Any steps I missed?
Do you have any suggestions?
If you're developing an app, keep me posted!
Please leave your comments below.

Success & Keep Koding!
Freek Sanders
MakeMeBlue

No comments:

Post a Comment