Some may think that developing an indie game is an easy task, and that you can win a fortune overnight with just a very simple game and a stroke of luck. The truth is, developing an indie game requires a lot of work in different disciplines, and unless you work in a team, including a graphic designer, a musician and a salesperson, you will have to work hard to end up with a decent game in your hands.
That’s at least what I thought yesterday when I was recording the music for ‘Sympho: Adventures in Space‘, the new game that I am developing in my free time. Luckily, I know a thing or two about music, and have composed and recorded before, so I have the knowledge and the gear to record it. But that made me think about the process of developing such a complex product as a game. Of course, you can always outsource what you cannot handle, but most of the times, you need to learn a little bit of everything in order to succeed being an indie developer.
Specifically, when developing an indie game, you need:
That’s an easy one. You are supposed to be an indie game developer, aren’t you? But in the iOS world, that means that you would surely need to know something about In-App purchases, Game Center, SpriteKit/Cocos2D/Unity, and have at least basic math programming skills (projectiles, trajectories, collisions, etc). Some knowledge of AI and behavioral patterns is also useful. I had never worked with SpriteKit, the new game framework from Apple, but I love learning new things, so it served me as both a challenge and as a way of acquiring knowledge in a new area.
Graphic design skills.
A game needs to have an attractive visual design, something that would make you actually want to play it. Of course, this doesn’t necessarily mean a complicated 3D design including a motion engine, pattern rendering algorithms and stunning graphics like Diablo III. On the contrary, most iOS top games have relatively simple graphics. Think about Angry birds, Doodle Jump, Candy Crush (sigh…) or Flappy Bird. Most of these games have no complicated graphics, but they do have an inviting and alluring design, may it be the retro look, the cute characters or the general atmosphere of the game.
I love drawing, and I have a decent Bamboo drawing tablet, but I am not really a visual artist, so I opted for a simple, cartoonish style for my game, because I wanted it to have a naive and childish feeling and look, and because I could actually draw that. But believe me, drawing the graphic art for a game is hard work. Unless your game has only an 8-bit character flying with a simple animation between mario-brotheresque pipes, you need to draw the animations for the main character(s), all the enemies (walking, standing, attacking, diying?), the parallax backgrounds, and all the objects that may populate your world (coins? swords? laser guns?), and that’s a lot of time.
Music composition skills.
What’s a game without music or sounds? I have just finished adding the music and the sound effects to Sympho, and trust me, They’ve had a really deep impact on the game’s enjoyability. Just add some sound effects to your spaceship, a sword ‘chiiiiing’ when attacking an enemy, or the metallic sound indicating that you just grabbed another coin, and the game becomes instantly more pleasant and satisfying to play. Also, good background music can really breath life to a otherwise boring game. You could always use background music that’s offered for free in several sites, but that music will not be in tune with your game’s spirit, and will probably sound like the music from other game (because it would probably be in another game). If you have a Mac, it comes already with GarageBand. If you cannot get your hands on a full featured studio with a good PA, sound card and DAW like Logic Pro X, get at least a cheap MIDI keyboard controller, that’s all you need, and add some music and sounds to your game, you won’t regret it.
Unless you believe that your App is somehow magically going to get to #1 at the App Store, or get viral with no marketing campaign, you do really need to invest some time or resources in spreading the word about your awesome game. That’s something we don’t like at all. We are developers, indie developers to be more accurate, so we sometimes like to think that “if we build it, people will buy it”. The truth is, most of the times, you will need to advertise your game, and develop some marketing skills. Even thought I’m developing this game in my spare time for fun, I am still working on improving in this area. I think you’ll agree that most indie developers loathe marketing and advertising, and I am not exception, I’m happy just creating, building and exploring things, not selling them, but I think we need to be aware that this is a critical aspect of the game development process.
Most importantly, you need to know how to make your game funny and engaging. And this is the tricky part. This information cannot be learn in school or found in a book. Either you have it (probably for being playing games since you can remember :), or you need to master it by trial and error. Maybe this is the most important thing about a game, and the reason why Flappy Bird or Doodle Jump made it, because they are simple, addictive and entertaining. It doesn’t matter how awesome the playability of the game is, how wonderful and elaborate are the graphics or how amazing your physics engine works, if the game isn’t engaging, nobody’s gonna play it.
Change your hats…
This means that, during the process of developing the game, you have to switch from several hats: the producer’s hat, the developer’s hat, the composer’s hat… and the most important one, the gamer’s hat. You need to constantly analyze your game from a gamer’s perspective. Forget about the crappy yet-to-be-finished graphics, about the errors in code, and ask yourself: is it funny? Am I enjoying it? or does it need something else? faster movements? more enemies? different, more comical sounds? a better, deeper story?
Changing hats isn’t easy, but I think it is a good exercise to improve your game because, at the end, a game is about having fun, and you are expected to be having the same fun developing it as your audience would have playing it. If not, then why are you developing it anyway?