Hi Octane

In which I feel like I should expand on that tweet...

Jennifer Scheurle, a game designer from down under, recently posted a tweet asking devs about any hidden design mechanics they'd used and never told the player about. The dev community duly obliged and I felt compelled to chip in with that one about the vehicles in Hi Octane all being the same*.

Well, that tweet is far and away the most popular tweet I have ever tweeted so I think it's time I talked a bit more about the crazy experience that was Hi Octane. Sure, I've mentioned it before and we've definitely done an article in a retro magazine somewhere about it, but I've just picked up a bunch of followers on Twitter so I may as well make the most of it.

The Setup

The way I remember it goes a little something like this.

Set the way-back machine to the mid 90s and fill up the ol' Bullfrog Nostalgia machine to capacity. We were in the final of 3 offices on Guildford's infamous Surrey Research Park and in the rosy glow of EA's buy out**. There were several main projects on the go - Dungeon Keeper and both of the 'Wars' games - Syndicate and Gene.

Peter gathered everyone together because EA had just been in touch. It turns out that someone quite high up the food chain had made a bold statement at a recent show. EA was going to be The PC publisher of whatever quarter was just coming up. The crowd went wild.

Once the dust had settled, someone a little further down the food chain had pointed out that EA were not actually releasing anything on PC in that particular quarter. #awkward.

So they picked up the phone*** and gave Peter a call. It was pitched to us like we'd be really bailing them out of a hole and they were desperate for something - anything - that we could release in the next 8 weeks. The options were to either rush out one of the existing projects or build something from scratch. Peter didn't want to rush Dungeon Keeper (as would become blatantly obvious by the complete re-write that game went through) and the other games were just as big in scope and no-where near completion.

So we decided to build something from scratch. It would mean working crazy hours and cutting plenty of corners, but it sounded very exciting. 

The Plan


We would take the Magic Carpet engine - the basics of which practically all Bullfrog games were made in from this point onwards - and create a multiplayer racing game. Why a racing game? It seemed like the simplest thing to do. Why multiplayer? Well, that was a Bullfrog tradtition - as long as you already have the network technology, making a multiplayer game is much simpler than a single player one as AI and building single player missions and stuff is very time consuming to get right.

We'd use vehicles, so there didn't have to be animation.

The vehicles would hover so there didn't have to be wheel physics or ground collision and friction and stuff.

We'd need a name. At that point the phone rang. Peter answered****. It was for Joe Rider. Everyone laughed. We called the game Joy Rider.

The Team

The team was headed up by Sean Cooper. He basically made a name for himself as the go-to guy when you absolutely had to get a project done.
Fin McGechie, a long-haired me and Mark "Shuntly" Huntley

Glenn would be in charge of the engine. That is, Glenn would throw together some kind of bastard child of the Magic Carpet and Dungeon Keeper engines. Also, we'd have to use his fledgling 3D model renderer for the vehicles. It was all very experimental and pre-dated things like z-buffering so you had to get really creative with polygon draw ordering if you wanted to make concave shapes.

Mike Man would step off Syndicate Wars duty to build the models and Paul McLaughlin would be on hand for the terrain textures. Mark Huntley would be in charge of the AI whilst Barry Meade and myself would build the tracks. Later on, Darran Thomas would take charge of building the intro sequence.

It didn't stop there though. At various stages, almost everyone in the studio got involved in some form or other - it was a team effort. There was, dare I say it, a real Dunkirk spirit. There was this ridiculous thing we were going to try and do and a lot of important people were relying on us to do it.

Two Weeks

The game was fully playable by the end of the first two weeks. We had a test track, the network code and a rudimentary handling model.

The handling was basically a version of Thrust or Asteroids - you'd steer left and right and apply a thrust forward to move. There wasn't much friction, so a lot of the time you were pointing in a direction other than the one you were moving in. It was fun, but pretty tricky to control in any meaningful way.

The boost would change everything. Rather than a simple, press-button-to-boost, method, we opted for something a bit more dramatic. Holding the button down would start to charge the boost gauge. If the player ever released the button or the gauge filled to maximum, the boost would be applied, giving the vehicle a massive kick up the backside. Not only that but we'd zero out the velocity before doing so - killing any drift and causing you to launch off in the direction you were pointing.

This did very interesting thing to the races. People would tear off down the straights then there'd be a chaotic pile at the corners where those that were trying to line themselves up for an exit would be getting slammed into by those arriving at full chat. The trick became knowing when on the straight to start charging up the all-important boost.

Too late and you'd be in the corner, at the mercy of those coming in behind you. Too early and you wouldn't be pointing in the right direction, probably slamming into the outside of the corner, wasting all of that lovely speed.

To start with, there was only one vehicle - the KD1 Speeder. Basically, Kevin Donkin was obsessed with DeLoreans and it made sense that one of those could fly a bit, so that's what we went with. It was also a neat shape - basically convex - which didn't stress the model stuff out too much.

Fleshing It Out

Hi res on the PC. Well, some of them anyway.
We were pushing for 6 vehicles and 6 tracks.

Making the tracks was a lot of fun, but there were all sorts of hoops to jump through. Setting the textures was easy - you'd set that on a cell by cell basis. Making the heightfield was also pretty simple, if a bit tedious. You'd manually set the height of each vertex by number. Later on, Sean added some tools to allow you to do gradients but things like banked curves or halfpipes were all added manually.

Racing over a pure heightfield isn't the most exciting thing in the world, so we added buildings. This is where the Dungeon Keeper part of the engine came in with the ability to have vertical blocks displayed. Each part of the map could have a 4x4x4 cube of blocks placed in it. Constructing the block array was a bit of a mission - it involved 3D projection of textures based on where they appeared on the corresponding sides. That is, if you wanted a cube to appear in one corner of the grid, you'd place a single texture in each projection of top, front and side. Where the projections intersected would be where your cube would appear.

One of the other interesting things about the building tech was that each cube was skewed by what the landscape was doing underneath it. Eventually we worked out that we could make more organic or rough shapes by really messing with the underlying terrain and rocky tunnels were born. One was christened the Tunnel of Goats - Paul was a big Father Ted fan although the rest of us had yet to hear of it over here.

The vehicles weren't huge fans of colliding with terrain elements, so we also added invisible barriers to guide them around buildings. Eventually, we'd use these to constrain the entire map so that people couldn't just wander off into the distance.

To make the AI (and the player's position display), we added a series of checkpoints around the map. The player's position was determined by their proximity to the closest checkpoint (which resulted in some crazy fluctuation at certain points) and the AI would pick a random spot on the next checkpoint and head for it at speed. With careful positioning, we were able to steer the damn things around the track. Both of these systems are still my go-to initial designs for simple racing game prototypes BTW.

Firepower


Next up were missiles and guns. Guns would just hitscan forward whilst missiles would be projectiles that homed in on people and exploded. They were real game changers.

Not in the sense that they were original or anything but more in the way the game played. It's very easy to concentrate on racing. It's very easy to concentrate on shooting things. It's very difficult to do both things at once.

This, coupled with handling, turned each race into complete chaos. The corners would become a roiling boil of destruction as whoever got there first really had to nail the boost timing lest they become so much debris from everyone else unloading as they approached. 

If one could avoid the chaos and stretch a lead, they'd be unstoppable as everyone from 2nd on down would be too busy getting blown up by the pack. This is quite a common trait in combat racing games and the dreaded Blue Shell had yet to be invented...

Catch Up

A few of us used to make regular pilgrimages to an arcade in Aldershot. The multiplayer delights of Virtua Racing or Final Lap were our weapons of choice. In fact, Final Lap was where we really used to exploit the catch up feature. One person would sit on the start line until everyone else had completed a lap. Then they'd nail it and see just how much ground they could make up. It was always ridiculously close.

There was much debate over whether or not to implement a catch up feature. For all that it promotes close racing, it can also feel very artificial and doesn't reward skilful play. To that end, a number of compromises were made.

First, catch up would be as subtle as possible. That is, it wouldn't affect anything that the player could see outright. That means, no top speed increase - the most obvious way of doing it. Instead, players further down the order would have their lateral friction increased - making it easier to negotiate the death corners - and have their boost last longer - giving them more speed on the straight.

Catch up would also only be in effect until the leader entered the last lap. Then it was disabled, meaning the dash to the line was completely fair. In that way, you'd have the best of both worlds - close racing for the majority of the game but a skill-based decider at the end.

The Vehicles

By now all of the vehicle models were in yet they still used the same handling model as the original car. I'm pretty sure the intention was to make them all different but we were running out of time. The stats on the vehicle select screen made perfect sense and were pretty representative of how we'd want them to end up but... we just never got around to it.

It's funny how it works out though. Even people in the office who knew the vehicles were all the same would feel like they could plow through things in the Jugga or nip through tiny gaps on the Outrider. The Flexiwing was always derided as being too flimsy, whereas the KD1 Speeder was the Mario - old faithful. Well balanced if not exceptional in any area.

The Big Change

5 weeks in and everything was going swimmingly. Then the biggest change in the game occurred - Peter played it. More correctly, Peter played it and sucked.

He couldn't handle the cornering and got very frustrated with the whole thing. He demanded the vehicle handling was re-written to make it more direct - less drifty. Ultimately, he wanted to be able to turn around in the track without bashing into the sides.

Whilst this change certainly made the game more accessible, it also lost some of its charm and skill. I don't think people were particularly happy about it but we only had a couple of weeks to go and plenty more things to work on.



The End

Towards the end, everything was a blur, although that could also ring true of the entire project. We started it with crunch and we finished it with crunch. Every waking hour was spent at the office. Some sleeping hours too. But we managed it. The gold master was burned a mere 7 weeks after we started and was on shop shelves a week after that.

The project was a lot of fun - especially before the global handling model change went in. Sure, the hours were brutal but there was a real sense of camaraderie and 'us against the world'.

When viewed outside of the time constraints, the game wasn't Bullfrog's greatest. It also came out just as Wipeout reared its glorious head and promptly got kicked to the curb.

But the fact that it's still capable of sparking debate, 22 years on must count for something, right?

* The rest of the thread is also total gold dust. Any aspiring designer could do a lot worse than to go through it with a fine-toothed comb.
** Rosy at the time at least.
*** In those days, that's how people used to communicate with other people that were too far away.
**** Peter always answered the phone. It used to drive the secretaries mad...

Comments

  1. I remember getting a whole 2 days (a weekend at that) to optimise the crap out of the ps1 version, and at that point discovering my highly efficient fixed point integer maths collision system I donated from Syndicate Wars had been changed to use use floats, but the ps1 didnt have a floating point unit :( The fun gameplay part I seem to recall Peter breaking was the delayed turbo boost, charging it up before the corner then releasing as you go round was awesome..

    ReplyDelete
  2. Awesome write up, I miss the glory Bullfrog gaming days!

    ReplyDelete

Post a Comment

Popular Posts