I’ve spent the last two days wrapped up in game development and it’s produced some fantastic results.
I set out initially to further refine my code base for making arcade games. What fell out of that process was quite eye-opening in that I realised I could tie quite a few operations together within the code and produce some nice effects.
Assembling the framework for the game takes just minutes these days so now being able to quickly define the basic presentation of the game in little more than half an hour is a real boost and means that I can concentrate on the specifics of the game itself.
The game (which I’m currently calling Hellspawn since endless waves of creatures spawn in to the scene to be blasted in to tiny pixels) is essentially my take on Jeff Minter‘s stunning Gridrunner from 3 decades ago. Like Jeff I love colour in my games but for me this has been a bit of a departure since the style is very much of the very early days of the video game arcades.
I’m generally most comfortable when I can use a broad palette and have several pixels to play with. For Hellspawn I’m going for the pixelated look and setting a 2px brush in Photoshop. I’m also using fairly vibrant “web safe” colours as they really stand out against the dark grid that scrolls behind the action. I’m not sure this will be the most screenshot friendly game I’ve made but I’m aiming for a game that is possibly the most frenetic.
So the challenge is in presenting a playable game to the end user. Like all my games this is designed with mobile in mind and specifically iOS. I test on iPhone 4 and iPad. The game scales to fill the screen on whatever device is is played on so the gamer gets the full screen to play with.
My initial focus was on filling the screen with aliens. I’d wanted to re-create Robotron. The challenge there is of course converting the two joystick approach to a touchscreen. Something had to be sacrificed.
I took a long look at Robotron and play it for some time. I also played Gridrunner and newer Gridrunner++ from 10 years ago. The thrill of these games is common – blasting things to pieces. I had to have a game where the focus was on reducing sprites to an explosion of dots and colour.
I’ve always liked Gridrunner’s presentation. The sight of squares filling the screen is quite pleasing for me. Especially when juxtaposed against the circles, dots and random shapes that fly around above them.
I wanted to make a big deal out of this. I really wanted to fill the screen with chaos. Almost Bangai-O style chaos.
So I set out to create some simple pixel graphics and threw them around randomly.
For the player I decided to have a starship that runs along a rail. Initially I just slid it left and right effectively bouncing between end points. The ship autofires a stream of laser shots. Roughly 10 on screen at any one time.
I then implemented an icon that the player controls. As I was drawing it I liked the look of a spinning orb with some kind of a magical glow that span around it so I stuck with it.
As with Rebel Rescue I ensured that the player could touch any place on the screen to initiate full multi-directional movement. This is of huge importance. The alternative would see the player’s finger masking the orb. Definitely not a good idea.
The orb acts liked a magnet for the starship’s lasers. As you direct the orb it can be quite mesmerising watching the laser shots as they arc around the screen blasting sprites to pieces.
I’m thrilled by the effect.
The added bonus of unifying my code base also means that I have some neat routines at my disposal for presenting special effects. This is a game that really needs special effects.
I later re-worked the player’s path code so that I could define multiple paths. The player is now presented with a rail that wraps the screen in some circumstances. As the ship moves along the rail between waypoints it spins to face the right direction for the action.
I’m absolutely thrilled by what’s come out of the last 48 hours of development and look forward to launching the game on Mozilla’s Marketplace and our own PlayStar.mobi once its complete.