Thursday 10 January 2013

Slamjet Stadium: Get Ready!

Slamjet Stadium is nearing completion! I'm about to send out build 0.80 to testers, marking the point where it is "content-complete" with only tweaking and testing outstanding before it's ready to launch.

This is a very exciting stage to be at! I've put a lot into this project, including working over Christmas and staying up late coding to pretty weird music (it helps me concentrate!), so seeing it all taking shape is a wonderful feeling.

For those not yet familiar with the game, Slamjet Stadium is a local multiplayer iPad game. It's physics-based variation on football set in the distant future, where players are free to cheat and play dirty, using traps and power-ups to mess up their opponents, or simply stealing players from the other team. This youtube video shows the game in action!

So what's new in the final version?

Single-player is now complete, and I just want to balance the level of difficulty, which means plenty of testing and tweaking! There's three difficulty settings, each one affecting the level of speed, accuracy and behaviour of the AI opponents.

A final three teams were added to the roster, making a grand total of six, plus one secret boss team. Below are the new non-secret teams: the Precinct 9 Police Bots, and the Fanboys.

The Police Bots are heavier, and have a lot of power behind their shots, but their thin-shaped hoverbikes demand a bit more accuracy than other teams. The Fanboys' buggies are floatier and bouncier, but the ball gets and extra boost of speed when it bounces off them.

Musician Tom Parfitt, who wrote the soundtrack and sound effects for Greedy Bankers, has created the musical themes for each team, and they sound terrific. He's done a fantastic job of capturing the vibes behind them, and the main theme is superb. I'm very glad to have him on board!

Building the Arenas

The arenas have had a bit of a revamp too. I've made a lot of effort to make sure that the look-and-feel of the game is good. The arenas need to feel like complete locations, and they need to pop visually as well as being fully readable - that is, it should always be clear what's interactive and what isn't. The images below show how much has changed in the original basic stage, now called the "Vents Zone".

Making the colours rich was important, and a lot of that came down to reducing the brightness and upping the saturation in the colours I used, as well as using a variation in hue among scenery elements. I'm sure there's an entire blog post I could write about the decisions I made on the visuals!

There'll be seven stages in the initial release of the game. The "Torus Parkway" stage below wraps around itself Asteroids-style - that is, you hit the ball out of the top and it'll reappear from the bottom.

My particular favourite is the "Cross-up Arena" where the active goals switch every 30 seconds. The glowing bars on the ground offer extra feedback to show which goal a player should be aiming at.

You may have noticed the metallic centre-circle on each stage. Every so often this will glow, to show that a power up or stage hazard is ready. Tapping the circle activates it, and the arrow shows which player it will affect. So players have to race to tap it at the right time so it will affect them positively.

Tapping this power-up would give "Rage" power to the red team

Designing the User Interface

One final bit of visual work, which any game developer will tell you is more work than it looks, is the menu interface. I've had a lot of fun making these - much more than any sane developer is supposed to! The menu items appear on floating televisions which bob up and down, which means that even the menu screens feel alive.

Behind the scenes, it's all driven by a scripting engine which I put together for all UI elements in the game. Most of the data is written into Property Lists (PLists) which give commands to build UI objects with different images, locations, and ways of moving. The PList also to connects UI elements to commands, allows them to grab bits of in-game data, and move in sync with other elements on the screen.

The menu screens and UI elements are plotted out by files that look like this

Putting together UI elements in Greedy Bankers was hard work, so for Slamjet I wanted a system that was simple to add elements and easy for me to tweak with new variations. I didn't realise I'd effectively built a scripting engine until well after it was implemented!

So where to now?

The project's getting very close to completion, which only small tasks left on the to-do list. I still want to do some more playtesting before I release it, and make a lot of tweaks so it's very impressive. I'll be sure to keep you all posted!

If you like the look of the game so far, please do tell your friends about it! Below is a link to the trailer, which hopefully says all I need to about the game.

I can't wait to get Slamjet Stadium out into the App Store and the wide world!