Being an interactive developer, I’ve been following Shaun Inman for quite a while. He fills that much coveted role of designer/developer/problem solver/creator of all great things very well, and in my industry, that’s the kind of person you want to pay attention to and learn from all you can. Recently he started talking more and more about his new passion, game development. I knew I had to play his newest game, so I played through (and barely put down until I beat) his latest creation, The Last Rocket for iOS. The game is amazing. It’s a puzzle game where you play what equates to a cute anthropomorphized rocket trying to escape certain destruction. Seriously, just go play it. Its got great music, great style, and fun story/motivation. That’s my review, just play it! Anyway, after that I knew I had to get into Shaun’s head and see what makes this modern renaissance man tick. I recently had the chance to ask him a few questions about his process, his aesthetic, and what’s coming next. Read on and have your mind blown. (Also, great thanks to Shaun for providing links for his answers to just about EVERYTHING you’d want to look up later!)
Alex (Horrible Night): While some of us in the web development community already knew your name from things like sIFR Flash text replacement, Mint, and Fever, now you’re entering the world of games with quite a few excellent titles. How long have you been developing games and how did you get your start heading down that path? Also, thoughts on iOS as a gaming platform in general?
Shaun Inman: I’ve wanted to make a game since the first day I picked up an NES controller. I tentatively dipped my toes into the game development water in January 2009. My first game design was Horror Vacui, a two-player abstract strategy board game originally developed for the Homebrew Channel on the Nintendo Wii. It was written in C using the toolchain created by the homebrew community and then quickly ported to the iPhone.
Around that time I had a bit of an epiphany. Mint had been out for a while and Fever was just around the corner. Both are full-fledged applications but neither sprang out of the ether fully formed. Mint was preceded by ShortStat, Fever began as Peeriodicals. If I wanted to make games, I had to start somewhere. Around that time I also realized that the skills I had acquired designing and developing web apps could be applied to the game design and development process. Also, I had been composing and playing music for almost 15 years. I wrote quite a bit about the gameplay design and development for that first attempt.
An iPhone/iOS port was a natural choice. I had been experimenting with Objective-C (a superset of C) and iPhone app development. As a gamer, it took me a while to warm to iOS as a gaming platform. As a child of the 80s I have an inherent distrust of any controller that lacks a d-pad. But as a developer the appeal was immediate. Enrollment in the iPhone developer program was painless, which stood (and still stands) in stark contrast to the draconian demands Nintendo places on its licensed developers.
HN: Your games tend to hearken to the classic 8-bit aesthetic that we all know and love. While that style was originally created to fit within the technical constraints of hardware at the time, these days it usually seems to be an artistic choice more than a functional one. Today most tools it seems even hinder good pixel-art creation with things like anti-aliasing and so on. So for your games, how do you go about creating 8-bit art, badass chiptune music, and semi-retro game mechanics for today’s high-res and very capable devices?
SI: In addition to the aesthetic appeal of 8-bit graphics and sound, I find that the arbitrary constraints of the limited visual palette and audio channels helps me stay focused.
For the artwork and animation I use Photoshop, usually working at 200%-800% zoom level. Believe it or not I don’t use the pencil tool. I block out shapes with the shift key and marquee tool then fill with option+delete. All of my games to date have been limited to the original NES color palette. I usually start with a character’s silhouette and then do some basic animating while thinking about its volume before adding any surface detail. This is a practice that evolved from working out the art style for the Mimeo and the Kleptopus King (development of which is on hiatus while I build up my chops). In game, all artwork is stored at size then scaled to at least 200% using nearest neighbor interpolation to maintain the crisp edges.
I compose my music in GarageBand with an M-Audio Keystation 61ES USB keyboard and the YMCK Magical 8-bit Plug to (temporarily) simulate that NES sound. I limit my compositions to the four core channels available on the NES (with the exception of Mine, All Mine on The Last Rocket soundtrack which uses a second triangle wave channel generated by the NAMCO106 extension chip). Once I work out a loop I like, I drop it on my iPod and listen to it off and on for at least a day to make sure I don’t have any changes before transcribing it to Music Macro Language (MML). From there I use a TextMate bundle I created to convert finished MML files into a single NSF. In game I use Blargg’s Game Music Emu library to emulate the NES sound chip in real time.
In The Last Rocket gameplay was heavily influenced by the level design of classic Miyomoto games like Donkey Kong or the original Super Mario Bros. where the level design *was* the instruction manual. The gameplay and controls were designed to acknowledge and even embrace the limitations of a touch screen gaming device. I really tried to focus on the gradual introduction then layering of skills, providing a relatively safe environment to learn before introducing dangers to challenge. Play is at its core a cycle of learning followed by mastery but I think a lot of modern games forget (or at least fail to capitalize on) this.
HN: Recently you competed in the 21st Ludum Dare 48 hour game-jam competition. Your entry, Data Entry Sentry, was just one of almost 600 submissions from a wide range of developers varying in both experience and notoriety. I’ll go ahead and say the three entries I was most excited to try were the games from Notch, Adam Atomic, and yourself. With indie developers and game development competitions like the Ludum Dare becoming more and more well-known, what tips would you give someone deciding to create their first game or competition entry?
SI: Ludum Dare is an interesting competition. With only 48 hours to make a game from scratch you’re really racing against the clock, not the other participants. You just don’t have time to worry about what “the competition” is doing. The goal is to stay focused on what matters: your gameplay.
I try to generate a couple of solid gameplay ideas the night the theme is announced then sleep on them and pick the most feasible interesting one the next morning. Then you just need to focus on creating a playable version of that idea as quickly as possible so you can start evaluating its strengths and weaknesses. Once everything is technically working you can start tuning the game to eliminate or improve on the emergent behaviors your initial ruleset produced. I try to complete a first tuning pass by the end of the second night so I can focus the final day on the graphics and music or perform triage if the gameplay isn’t salvageable. You really can’t afford to worry about graphics or sounds until you’ve found the fun. Sometimes you won’t get there but as a learning experience, failure is more valuable than success – especially when that failure only cost you 48 hours.
HN: Now on to your newest game, The Last Rocket. I recently made my way through the whole game (barely being able to put it down I might add) and really enjoyed it. The style is retro, the music is great, but the game mechanic is a really fresh combination of the puzzle and platformer genres. The difference that really stuck out to me in this title was the storyline. Even though the player’s motivation is pretty simple, I really feel like it does compel you to play just one more puzzle. You always want to head for that exit sign. The first question about the game is how did you get the inspiration for the game and that cute little rocket? And the second is about the puzzles. How do you go about creating puzzles for a game like this? Do you figure out the different types of levels first, or just dive in?
SI: Almost everything in The Last Rocket grew out of the limitations of touch screen input. The initial design doc I drafted for myself focused on a single, simple input method: tap. I had grown disillusioned with button overlays and the baggage of physical d-pads and buttons. I’ve written a bit more about this in A Treatise on Touch. Gameplay was initially inspired by the NES game Metal Storm (like VVVVVV which I hadn’t actually played until late in my development process).
The original story was about a damaged, legless robot aboard a derelict starship falling into a star. In order to move around the level the robot could reverse the onboard artificial gravity and limply fall from one side of the screen to the other. He was going to collect parts to repair the ship and ultimately himself. But there isn’t anything heroic about saving yourself and the idea of a sparking, limp protagonist was kind of depressing. The idea of a harmless rocket trying to escape a similar situation occurred to me almost immediately but the heroism of rescuing the onboard AI evolved over the course of development. It took about four months of struggling with the story before the creation of the AMI character and her relationship with Flip.
Level design was the most challenging part of the process. For almost four months of development, gameplay consisted of only spikes, fans and switches. I was struggling with keeping things interesting for just 36 rooms so I went back and reread my notes from a playthrough of New Super Mario Bros for the DS. The most significant realization to come from that experience: every single level of that game introduces something new. A new power-up. A new enemy. A new ability. A new combination of abilities. Or something is taken away (like the safety of solid ground below a tricky jump) creating a new challenge.
So I went back to The Last Rocket with a fresh eye. Flip needed an injection of new to keep things interesting, to keep you learning and mastering over the course of the entire game. I took emergent abilities like double-back and juggling and designed threats and situations to educate and challenge. This lead to the creation of mines, rusty girders and flame jets. Lockwalls and vents explored variations of existing gameplay elements. Blinds were a way to add replay value and encourage exploration. I analyzed existing challenges to determine what made them challenging, what I could take away or add to decrease or increase that challenge and developed new levels to explore the full range of possibilities. After months of aimless level design, rooms finally had a sense of progression and a logical means of grouping into decks. I arranged boss rooms to test the abilities learned over the course of each deck.
HN: Last question time! What’s next for you?
SI: More games! I just released an update to The Last Rocket that adds Game Center leaderboards and achievements. I already have some ideas for a sequel with new types of gameplay and an interesting narrative development. Let’s see… I’m tinkering with adding an online Versus mode to Horror Vacui 2 and polishing up an iOS port of my most recent Ludum Dare game Data Entry Sentry. After that, I’d like to continue to explore touch-based platformer controls with a Mario Bros.-esque multiplayer game based on some characters from the Kleptopus Kingdom.
HN: (Ok, almost last question!) Anything else you’d like our readers to know about you, your games, and everything?
SI: “Behold my true form, and despair!” says the *real* last question! If you liked The Last Rocket and think it was worth more than $3 check out the pay-what-you-like soundtrack. I’m still struggling to make game dev work as a full-time gig so every bit helps. Oh, and if you’re stuck on 07-07 check out this tip and trick video.