Home   Personal   Games   Work  

Ncik @ Radivarl  


Stuntman (J2ME)

Back in 2002, Infogrames released a game called Stuntman on the PS2. It put the player in the role of a stuntman in several films, needing to drive various vehicles in a way dictated by the predefined story plot. This included things like smashing through crates, making jumps, chasing cars, dodging explosions (but getting close enough to make it look dramatic), perform handbrake turns at set points, and other such stunt-driving techniques. The game was generally noted for being extremely hard to succeed in (the levels were long, and the string of things the player needed to do was very complex).

iFone (not to be confused with the iPhone) got the mobile rights for this game and I ended up assigned to the project. And, to cut to the chase, my version was noted for being extremely hard too. I just claim I was being faithful to the original, heh.

So, anyway, I ended up creating a top down driving game. The original PS2 game had 6 different fictitious 'films' you would be a stuntman for, so we ended up making 4 different games the player could download onto their phones, each based on one of these films. Each game had 5 main levels (and the in game tutorial) that all took place on one giant map (about 150 screens in size), with a separate map for some of the unlockable bonus levels (each came with a Stunt challenge, Speed challenge and Precision challenge). The maps were based on a large set of 16x16 tiles for each game and had variable height data (so the car you were driving would react different driving up or down a slope, driving into the side of a building, or attempting to make a jump off a ramp and between rooftops). We also created a quite nice (so I thought at the time) skinning system for the front end to give each game a unique feel whilst retaining (pretty much) a singular codebase for all the games. A lot of work went into creating a scripting system to define the "plot" and requirements for each level, as well as automating the movement of other vehicles in the scene that the player had to interact with (e.g. a car driving around a marketplace that the player had to chase, or 2 trains that the player had to dash between). Here's an example:

# add some urns to hit
addobject=1 type=0 posn=9.8,77
addobject=2 type=0 posn=10.2,75.5
addobject=3 type=0 posn=9.8,74
# some boxes on the bridge
addobject=4 type=1 posn=15.5,57
addobject=5 type=1 posn=15.5,60
# set the player's position
playerstart posn=7,114 dirn=0
# aim the player out and to the right
pointer=1 posn=7,108.5 dirn=0 disappeardist=2 flyby
pointer=2 timer=POINTER1 posn=15,105 dirn=90 disappeardist=2
# down
invischeckpoint=1 end1=14,106 end2=14,99
stunt=1 timer=INVISCHECKPOINT1 type=stop boundary=17,113.5-20,115.5 score=2 flyby
# second stop box
stunt=2 timer=STUNT1 type=stop boundary=16,106-18,108 score=4 flyby

One of the real pain areas of this game was some of the devices we had to support couldn't handle more than one key being pressed at a time. If you think about it, when you're typing in a phone number or writing a text message keypresses come in a logical order, one after another. As a result, quite a few phones weren't technically capable of reporting to a downloaded app that the user was pressing two keys (e.g. the ones we wanted to use to accelerate and steer) at the same time. End result was we ended up having to come up with a completely different steering mechanism for those handsets - it... kinda worked. I mean, technically you could complete all the levels with it, but it played havoc with the difficulty curve - handbrake turns became a piece of cake whilst simply driving down a tight alley became a nightmare.

We also made a version of the game (that I believe was embedded on some Motorola phones) where the player could play a level and SMS their time to another person and on receipt of that SMS their game would attempt to load up and get them to try and beat it. Pretty cool early use of the ability to do that with some apps. It's not a feature many even try and use even now.

Not sure how popular the game really was, but a shot of the game in progress ended up in a Vodafone TV advert here in the UK, which was pretty cool to see.

The actual versions (based on films in the PS2 version):

A Whoopin' & A Hollerin'

A Dukes of Hazzard parody, the player is evading the local police whilst tracking down the real moonshine bootleggers. Yehaw!

Blood Oath

A John Woo film parody, the player plays various members of local gangs. Several of the levels even see the player avoiding helicopter gunfire, and more.

Scarab Of Lost Souls

An Indiana Jones parody, the player drives a jeep around a desert marketplace, avoiding tanks, chasing villains and knocking over local crockery displays. I designed the levels of this one and, errr, I don't think they're as good as the two previous games.

Live Twice For Tomorrow

A James Bond parody. I've gotta admit we were kinda running out of ideas when we hit this one. Personally, I feel it's the weakest of all the games and I don't think there's was too much original in it.

007 Hover Chase (J2ME)

Back in 2003, Vodafone UK had the license to do a 007 game. At the time, the main Bond movie around was Die Another Day, so being assigned to this project meant I had a legitimate excuse to go see the film at the cinema "for research purposes". Sweet! I own a copy of most of the 007 movies (except for those with George Lazenby and Timothy Dalton in them - gak!), so getting to see the new one was quite exciting.

Shame the movie really kinda sucked. Bad CGI, a 78 hour long double-entendre trading in the middle of the movie, and yet more bad CGI meant I came away totally unimpressed by it.

But anyway, enough movie critique - we came back from it and thought what part of the movie we could make into a game, and the starting scene with the hovercraft chase through the minefields seemed an obvious fit. Especially with the engine work we'd put into Stuntman previously, that'd help give an engine leg-up to get the project done quickly.

I really liked the front end we came up with for the game. Not as statically unanimated as one previous titles, we actually put some effort into it due to us only really making the game for about 3 or 4 handsets (oh my word, I can't believe there was a time when that was acceptable), and they were all pretty reasonable so we could actually spare some space on presentation for a change. I even wrote an animated version of the iconic "James Bond walking into the gun barrel, turning and shooting at the camera" style intro, with the red blood filling the screen to become the red Vodafone logo. Additionally, we even had an animated in-game level intro with Bond surrounded by people with guns, a cutaway to him pressing his watch to trigger loads of explosions, and then he'd jump into the nearby hovercraft and race off into the level.

Essentially, we kept a very similar underlying rendering engine as Stuntman (except on the Sharp handsets, which had an interesting built-in real-time replattesation option for sprites which meant we could varied coloured versions of the hovercraft with no run-time impact, which the others couldn't have), except the gameplay involved keeping on going and going through checkpoints until you finally ran out of health. We figured this kinda fitted the film better as Bond gets captured at the end of the chase, so we didn't want to introduce as "well done, you won!" concept to the player's actions - no matter how far you got, you always got a "Bond in a prison cell" finishing screen. It was simply all about high scores.

A requirement for this kind of gameplay, obviously, is either a repeating pre-defined course (which didn't make sense for this), or a run-time generated one. We opted for the latter. That was quite interesting to code, and I ended up generating the course in a 64x64 grid so the track could turn any way I wanted (so the action was full 360' during the gameplay), and even fork into multiple branches. The landscape varied between mud, marsh, barbed-wire lined paths, and there were enemy hovercraft that would try and bash your one which you could either try and shoot, or shoot neighbouring mines to destroy them.

The latter required this auto targetting system, and of course I needed to do a more drifty hovercraft handling for the steering (which worked out well), and there were pickups you could snatch which gave you boost, or more powerful guns, or replenished your health... the standard things.

On top of that, we added difficulty levels and a couple of arcade modes you could unlock (a race around a pre-defined track, and a battle with multiple hovercraft in a restricted arena setting).

This was also the first game I created where the released build has cheats included in it (although I doubt anyone heard about them). If you paused the game at any point, you could enter any of the following:

  • 66673 (Moore) - gave you more ammo for your gun
  • 2666379 (Connery) - put the player's health back to max
  • 2767626 (Brosnan) - gave the player the Shielded powerup for a time
  • 5293629 (Lazenby) - put another 30 seconds on the checkpoint timer
  • 325866 (Dalton) - gave the player the Uber-Gun pickup
  • 86323663 (Vodafone) - unlocked all the arcade modes
  • 4666 (Iomo) - gave the player a ton of the Nitro pickup

All in all, I was pretty happy with how the game turned out.

Pub Pool (J2ME)

This was the first of the various Pub games we created and sold at iomo. I can't recall where the idea of making a pool game came from exactly, but Cam and I threw the basics of this together in just 2 weeks! We also have this game to thank for Cam's creation of bald-headed "Terry", the iconic landlord that featured in every Pub game we created.

The front end was styled around a darts scoreboard or menu blackboard you might find in a local pub, and the game contained only the very slimmest of game modes and options (you could customise the felt colour of the table, and that was about it). The physics were rudimentary and showed a lot of flaws on later reuses (the pack would stick together in the break, the guidelines weren't always accurate), but ignoring all that I think the game turned out pretty well in the tiny timescale we spent on it.

Additionally, the other reason it was so feature light is, after 007 Hover Chase, we wanted a game that could be ported to as many mobile handsets as possible. Being as simple as it was, it did make this a relatively simple task for this game.

To be honest, there's not a great deal more to say about this one. Steve took the game and integrated the Kayak multiplayer connected layer into it for the GDC conference in 2004. At that point, it had also been ported to run on BREW handsets and Steve was able to demo the game multiplayering between J2ME and BREW handsets, which was quite impressive at the time.

Most that table was actually created in code to be scalable to any resolution. Also note the smooth colour gradiation and edge anti-aliasing on that powerbar! Sheesh - I was really proud of various tiny features in this at the time...

Tomb Raider (J2ME)

So, at this time, Eidos were looking to also get into the mobile market. Of course, the key IP to bring into that space for them was Tomb Raider. Unfortunately, we're still in a time period where we have to support handsets that have a 64KB download limit. So, again, we don't want to overreach, right?


Our end result was an episodic 2D action platformer in the traditional Tomb Raider style. Run, jump, solve puzzles, shoot enemies. Following the general principle we use in Stuntman, I ended up creating a script-driven game, with very little unique code required for each episode. Each episode contained 15 levels (trimmed down to 12 levels for the very low-end handsets), and total play time was about an hour, which was pretty heavyweight given the limitations we were working under.

Graphically, I think the end result came out very nice. The top-tier handsets had some nice multi-layer parallaxing going on, Lara had 50+ frames of animations to cover standing, crouching, walking, running, jumping, leaping, falling, climbing and dying. There was all the usual block pushing and pulling, avoiding spikes and arrows and firepits, as well as negotiating moving platforms. Although a 2D game, it really captured the core concepts of Lara's treasure hunting exploits.

(A minor point of note, but this was also the first game I ended up porting into Chinese.)

We also had a bit of tie-in to an official Eidos website. As you played the game on your mobile, various items you picked up in your inventory had secret codes attached to them. If you visited a particular Eidos url, the codes would unlock things like level maps, story info and higher resolution images of various items from the game.

At the end of the day, I think we did a lot better job in creating a set of coherent episodes for Tomb Raider. We were clearly running out of steam at the end of Stuntman, but the story playing out well right to the end of the final level here. We even had a nice summation cutscene at the end of Episode 3. I think this balancing act came out well because we juggled the level designs between 4 different people across the 3 games, so no-one got too burned out.

Here are the three episodes we ended up with:

The Osiris Codex

Lara is commissioned to retrieve an Egyptian artifact, a manuscript that details Egyptian alchemy and Osiris (The Egyptian god of resurrection and eternal life). What's the chances she'll run into snakes and mummies along the way...?

Unique features: Snakes, Mummies, Wire Slides

Quest For Cinnabar

Now visiting Tibet, Lara is tasked to explore a hidden monastery to retrieve a priceless ancient vase containing Cinnabar, a substance used in the creation of life-affirming tinctures. Could there be a connection to Egypt?

Unique features: Ghost Skulls, Evil Monks, Mystic Teleporters, Absailing Ropes

Elixir Of Life

Bringing the vase and manuscript to an old Scottish castle, a hoard of robots try their best to part Lara from her items. Maybe she'll discover her employer - the last recorded owner of this place was born in 1875...

Unique features: Guard Dogs, Robots, Conveyor Belts, Electrified Floors, Teleporting Doors

Tiger Woods PGA TOUR 2004 (J2ME)

So, in 2003 we were asked to create a sequel to TW03 (you create games early, so the game title fits when you get around to releasing it, as a result you make TW03 in 2002, TW04 in 2003, etc.). Unfortunately, either the timespan or the budget (I can't remember which) wasn't very high, so we ended up just reworking TW03. We dropped in a new course (Sawgrass), reworked the front end to better fit the front end of the upcoming PC game... but generally, that was it. We didn't really change the renderer or game modes a great deal. Okay, black and white handsets were no longer required (although the codebase contained legacy information and renderers for them, just in case they were asked for... which they never were), but the difference between TW03 and TW04 really was just the course, in its basics.

Look - we even used the same Tiger head graphic as the year before.

In some places, I don't think the game went down as well as the original, but I guess that isn't expected one year on.

One thing we did spend a lot of time on, however, was adding a connected version! We created some additional courses that the player could download, and additional game modes and the like, all of which could have been really interesting. Unfortunately, I don't think the connected version of the game actually distributed anywhere, even though it was mentioned in a few press releases. This was a shame - it really would have made the transition between TW03 and TW04 all the greater.

dbi 3D Golf (J2ME)

Essentially, "dbi 3D Golf" was just a rebranding and slight rework on TW04. The basic reason for this was that there were some territories that Digital Bridges didn't have the rights to release a Tiger Woods game in (such as in the US, where another company had the mobile rights at the time), but they still wanted to release a golf game. Understandable from a revenue perspective, of course. So, basically, the game was pretty much idential to TW04 except we replaced the obviously iconic "Tiger" images with "nameless generic caucasian character" (just to be totally clear we weren't including a "kind of Tiger" character, which could have been legal trouble), and replaced the Sawgrass course data with a made-up course of our own.

That was fun - creating a golf course. I think I spent about a day coming up with that. Obviously none of us in the company were really golf course designers or anything, so it was a combination of mildly lacklustre but with the occasional slightly unrealistic area just to look good in the maps and the 3D renders.

Being a rebrand of a reworked project, this wasn't the most excitable project to be working on, but it turned out okay, I guess.