Great apps are like babies…
very easy to conceive but very hard to deliver!
– Ted Mico, Interscope / Geffen / A&M
Everyone and their dog has an app or game idea. The skill to implement that idea, and implement it well, is much less common. If you are a designer and love games, this post is for you. The past year and a half have taught me a lot about being a graphic designer and game designer — but not a coder — and what that means when it comes down to actually making and publishing a game on the App Store.
So you’re not a coder. What CAN you do?
Do what comes naturally to you. Use the things that you’re really good at, then find others who are really good at the other stuff, and get them on your side. It can be tempting to think you can do it all yourself… believe me, you’re going to have enough to do without having to learn how to code. Building a good team allows each team member to pour all of their energy into what they are best at and are passionate about.
But before you even start looking for a programmer, there are a few things you should be doing.
If you wait until your app is finished to start marketing it (and yourself), you’re missing the point. Of course you can’t market something that doesn’t exist (much… but that’s another discussion), but you can get out there and be known. Hang out on the Touch Arcade forums. Get on Twitter and meet other devs, the iPhone dev community is incredible. But most importantly, don’t forget to go outside!
Getting referred to someone is worth a thousand forum posts. Get involved locally in user groups, even if they’re not specific to gaming or programming. New media groups are great because of the mix of talent you meet, and everyone travels in the same kinds of circles. You never know who will be the person who knows the person who is perfect for your team.
Start collecting email addresses. This may seem old school, but go get a free MailChimp account. Any time you have a game idea, put up a teaser page with a “Let me know when this comes out” signup form. Having a store of email addresses that you can legitimately send announcements to can be crucial come launch day.
Needs more awesome
The best thing you can do for yourself — and this will help you find a programmer — is to make your idea way more awesome than it already is.
You really have to turn it up to 11. You can do this in a number of ways, but primarily you need to prototype.
A surprising number of game styles can be prototyped on paper, not just RPGs. Puzzle games, action games, platformers, and even FPS games. Prototyping helps you think about the details and mechanics of your game in a way that you wouldn’t have, just thinking it through in your head. I found that grabbing a notebook and scribbling out each screen helped immensely with clarifying the design of the game.
A couple articles on the subject:
Paper Prototyping: 5 Facts for Designing in Low-Tech
Gama Sutra – The Paper Chase: Saving Money via Paper Prototyping
There are a number of tools for doing this, the simplest being something like iMockups for iPad or Keynote. It’s surprising how much you can fake with Keynote, and it can really give you a feel for how the app is supposed to look and work. Here’s a video of an example, actually running on an iPhone.
The point of prototyping: Iterate. Get feedback. Repeat.
If you can really hammer out your game design early, you can help prevent that feeling of needing to change it later in the dev cycle, when change is so much harder (and more expensive) since you’ve already invested so much into the way it is.
When getting feedback, don’t take criticisms personally. In fact, use forms to get feedback. Here’s a great post by @MarkusN on how to create effective ones that actually generate useful information.
Having a good design doc with lots of mockups will help tell your programmer a lot more about what your app is supposed to do than just a whole bunch of text.
Not only should you constantly be getting better at what you’re good at, you should also get into Xcode. I got the excellent screencast series Writing your first iPhone application by Bill Dudney. It’s now over a year old, so I’m not sure how much of the SDK has changed, but it really helped me understand Xcode and Interface Builder. I was able to create all of the UI for Face Race myself. This allowed my programmers to focus on “real” code (most programmers hate doing UI stuff).
This also has the added benefit of enabling you to talk to your coder and understand most of what they’re saying. Good communication is essential, so it helps a lot if you speak their language, if only a little.
I also recommend learning Core Animation (@neror is the guy to talk to here, check out his awesome code library, FTUtils), because it’s fun.
Have a plan
Get organized. Find some business and marketing plan templates. Here’s some Canadian resources, I imagine business plans are fairly “nationality-neutral”. If you’ve gone through all the steps and have everything figured out, you’re going to look a lot more appealing to a potential team member.
The big question: How do you find a programmer?
Having a really good idea helps… Your enthusiasm about it will be contagious (or annoying, in which case it might not be as good an idea as you think). Having a well-thought-out, well-prepared idea demonstrates to your future programmer that you have it together and are ready and able to produce a professional product. So, you’ve got your idea, how do you actually find someone…?
Programmers are expensive
And rightly so.
You need money, which means you need funding. Having an awesome prototype is the single most important step to getting funding. Look into government grants or funds for this kind of thing in your area, you never know what might be out there.
But there are ways to work with a programmer if you don’t have tons of money…
iPhone programmers are highly sought-after, and it’s just too much time/risk for them to work for revenue share, especially for someone inexperienced.
Start small. Find a young, but talented programmer (maybe no iPhone exp). Get them some intro training materials, pay for their dev status, lend them an iPhone. A talented programmer can pick up iPhone dev very quickly, and someone young might be looking for a cool project to add to their portfolio, and could be more willing to work exclusively (or mostly) for rev-share.
Do written contracts. Talk about what happens if your coder has to stop partway through the project; how does that affect their rev-share?
Get a small app on the store. For your first app, start small. Do it for the learning experience. Getting a finished app on the store is a huge accomplishment. Just don’t let your first app be a free app. This diminishes your own value as a developer. Once you have a larger repertoire of apps, you can experiment with other pricing models.
Consider a work-share. Dedicate a certain number of hours per week for each other’s projects. Track your time for everything; I use On The Job to make this super easy. Awesome software by @danmessing.
This can save you both the extra time taken fiddling around with things that you’re not so good at. You programmers out there, wouldn’t you like to have a designer in your back pocket? Programmers need designers too:
Don’t sell yourself short, you (designers) are very important too. For example: White Peak’s Labor Mate (a contraction timer app) had a terrible “stopwatch in a diaphragm” kind of icon — sorry Kirby, harsh but true 😉 @KirbyT hired a professional designer to redo his icon and here’s the result:
Again, meeting someone face to face increases your chances of doing work-share projects a thousand-fold. If you can pull it off, go to Apple’s Tech Talks; go to 360iDev (seriously, it’s awesome); go to WWDC. The contacts you make there will be way more important than anyone you could meet online, guaranteed. It can be expensive, but it’s well worth it.
Effectively communicating with developers
Go read this great article on Smashing Magazine, basic points here:
- Provide adequate documentation
- Be decisive
- Be available (communication is key)
- Stay focused, avoid feature creep
- Set realistic deadlines
- Test it yourself
Read that whole article, and take it to heart. To a programmer, working with someone like this is a one-in-a-million experience.
Be something that people will talk about
Make your project itself a story. What makes you unique? People like a good story; share yours. Here’s a great post by Area 161 on the importance of a good personal story.
- Make awesome prototype
- Have plan
- Find programmer
- Be involved in development
- Sell game
Don’t: Go to a programmer and say, “Hey, I’ve got this awesome idea for an iPhone app, wanna make it for me and split it 50-50?” They only hear: “You do all the work, I’ll take half the money.”
Do: Get your poop in a group. Acknowledge the amount of work involved. Take control of the project. Plan it out. Be prepared. Be professional. Make an awesome prototype. You take all of this to a potential programmer and it’s a whole different ballgame.
This talk was first given at the April 2010 360iDev in San Jose. You can get the video here for $3.50.Others I highly recommend: David Whatley’s keynote (especially for new indies), Owen Goss’s incredible improv prototyping session, Nathan’s Core Animation, Mark Johnson’s marketing session (some good discussion there), Natalia’s “Making a Living on the App Store”. Apparently Noel and Keith’s GL sessions were good, but I didn’t see them. Rod Struogo’s intro to cocos2d was also excellent.