I woke up on New Year’s Day with one thought: “I’m going to make an iPhone game”. It’s something I’ve wanted to do for a while, but the New Year seemed the perfect place to start. The game is called Squeak’s Dreams and is a 2D platformer about a mouse who eats too much cheese before he goes to bed, which gives him cheese dreams. It’s out today and it’s been a long journey. But it’s opened my eyes…
Until now, I’d been like the music lover who couldn’t play music – loving games and critiquing them, without understanding the process of making them. Well, having now gone through it myself, I have a better appreciation of the process. So here’s what this games journalist learnt while making a videogame.
1) You don’t need coding knowledge
Turns out one person CAN make an iPhone game, even without knowing a single line of code. Yes, you need a Mac and yes, you need an iPhone Developer account (which isn’t free but you can get one at developer.apple.com (opens in new tab)), but there are tools out there to help you realise your vision. I used the amazing GameSalad (opens in new tab) which has both a free and Pro license. The Pro license lets you implement Game Center (iPhone’s version of Xbox Live achievements) as well as publish for Android, but after dropping a grand on an iMac, I can’t stretch to the Pro membership just now.
Above: Just the camera on my phone and digital image editing knowledge makes this possible
GameSalad is superb and there are so many helpful people in the forums. There are also templates to get you started. Squeak’s Dreams started from the basic platformer template. Virtually everything except the ‘grounded’ rule (which lets the game know Squeak is standing on the ground) was tweaked and remade in my game, but if you take it a step at a time, it starts to make sense. I won’t get into the rules it uses, but suffice to say it’s based on logic and ‘if this touches this, do this’ rules, which are easy to understand. But you DO need a Mac to publish to the App Store – that can’t be fudged.
2) Bugs are a pain in the ass
For example, let’s take the most basic functionality. When the player presses ‘right’ and then decides they actually want to go ‘left’, it makes sense that they’d slide their finger from the ‘right’ button to ‘left’, agreed? It took me EIGHT HOURS to make that happen. I had working buttons, sure, but they only worked one at a time – you couldn’t slide between them. Then when the slide did work, if you jumped, Squeak would stop running. It works fine now, but it’s just the most basic functionality – yet by no means a cakewalk. And if I had issues with 2D leaf rustles and ducks flying around the screen, imagine what the bug list in Skyrim must’ve been like!
Above: Bouncing on a duck that quacks (with my voice, oddly) is cute. Less so if the duck glitches out and takes off. Thankfully, Squacker here is now bug-free. MAAAK!
3) Gamers play the same game differently
It doesn’t matter if you lay out complex and measured breadcrumb trails of collectible in-game items – someone is going to just hold right and press jump, whatever you do. You have to cater for them somehow. So next time you wonder why level 1 is so easy in a game, it’s so that even these gamers get some sense of progression. Of course, they’ll need to learn how to play properly to get past this bit…
Above: Bounce across the berries and avoid the brambles. Real mice have to do this EVERY DAY
4) Difficulty level is hard to get right
Like any developer, I want people to see everything in my game. But I also want them to get some longevity out of their money. As a result, there are a couple of levels that are quite hard. I’d like to think reaching the top of the tree in the Garden is one of those ‘woohoo!’ moments, especially when it’s the last thing you do before the sweet parallax loveliness of the River. In true modern day tradition, you can’t ever see a Game Over screen in my game, so there has to be some level of difficulty. But we’ll see…
Above: It IS possible to get to the top of the tree. Strange place to put a bed, mind…
5) Music makes a massive difference to mood
When I first made the ‘clouds’ bonus level, it was silent, except for the sound of gems being collected. As soon as I added the piano music, with its gentle tempo and heavy reverb, the game sound effects sounded trivial – and I even considered taking them out. Now I’m used to them, I think they’re fine. It’s fun to collect a load of cheeses in just a few seconds and hear the chimes going, even if it does obscure the music.
Above: I’d like to think the piano in the clouds bonus level sets a mood. If not, the elephants will
6) Age Ratings are harsh!
On the surface, Squeak’s Dreams looks like the most harmless game in the world. But when I came to thinking about what was actually in it when submitting for the age rating, I realised it was going to have ‘suggestive themes’ ‘alcohol or drugs reference’ and ‘mild fear/horror’. Why? The radio in the kitchen was originally programmed to play one of three random songs by yours truly.
‘Pirate Queen’ has a reference to alcohol, ‘Hot On Your Tail’ has mild innuendo and ‘Feeling Before’ contains the line ‘I called the nurse / she made it worse / she raised my temperature / and halfway through I had to ask…’ which is pretty suggestive. Plus there’s a spider in one of the levels that is more than a little scary, if that sort of thing bothers you. So I took out two of the songs and left in ‘Pirate Queen’, resulting in a 12+. No Hot Coffee outcries for me, thanks.
7) Optimisation is a BIG deal
At one point early on, the game was 80MB. It used beautiful uncompressed photographic images and plenty of audio. But I realised it was going to be too big to download. So I squeezed and squeezed, going through up to four versions of some images, in an attempt to get it under 20MB. I did manage it (look at the Treetop pic up there and you’ll notice the reduced colour if you look hard enough), but additional audio and imagery right near the end took it up to 31.2MB.
But it isn’t just the size of the game – trying to get the game to run at 60fps took a lot of tweaking. That’s why the dragonfly stage doesn’t feature an animation when you collect a cheese. Usually, the cheese rotates, shrinks and fall away when it’s collected – that had to go to keep the frame-rate up. It’s also the reason the boss level doesn’t feature lights along the walls. It did at one stage, but it caused slowdown. Snip. On an iPhone 4S, it’s lovely and smooth. A 3GS? Well… 25fps isn’t too bad…
Above: The darkness up there on the right should have had lights in… but that pseudo-3D floor and giant cat head is apparently a lot for an iPhone to think about
8) Graphics can be too busy
Initially, I was really pleased with my backgrounds. They looked crisp, detailed and exactly what I wanted the game to look like. Problem was, they were too busy for anyone who didn’t know the level layout. So I changed most of them to a simpler, leafy design. I still kept in that old background on one level (couldn’t bear to lose it, to be honest), but took pity on the player for the rest.
Above: The work-in progress ‘busy’ background (left) and the finished version. Clearer?
I would add also that animation is damn hard, especially when you’re trying to make a realistic-looking game. The sprite for Squeak is cute… but he’s a little bit basic, in honesty.
9) PR is damn fun
I made a gameplay trailer…
…and a musical/animated trailer…
…and even handed out free cheese to my colleagues this morning. Great fun – I highly recommend it.
10) I want to make another one
Without wanting to sound corny (or, indeed – cheesy), I’ve learnt so much over the past year. I see games in a new light, too – I can see the rules that run Mario, for example. I already have ideas for more games, too, but it’s also taken a huge effort and I do admittedly feel exhausted. So I’ll be playing more Skyrim now over the break for Christmas, then starting afresh in the New Year. In the mean-time, if you should care to have a go on my venture into the other side of the gaming world, just search the UK (opens in new tab) or US (opens in new tab) App Store for Squeak’s Dreams.