Wiki

Duncan Botwood Interviewed

We interviewed Duncan Botwood on GoldenEye and Perfect Dark for N64, and learned some fascinating new information. A humongous thanks to Duncan Botwood (and George Kelion) for their gratious and wonderful help and responses.

Duncan on:

The Fans
I'm glad you've had so much fun from GoldenEye, I still enjoy hearing this from people.

The GoldenEye Setup Editor
We released the GoldenEye Setup Editor in October 2007, a powerful tool to create completely new levels in GoldenEye, or modify existing ones in almost every aspect popular. It has spawned a sister site and plenty of new levels. We asked Duncan about his GoldenEye development experiences, and what he thought of our editor.

Congratulations on having the first ever GoldenEye Editor... that's one more than we had when we were making the game! At the time I had zero experience of making videogames so that's how I assumed things were done. Now, however, I'm tempted to borrow your phrase 'atrocious brute-force method' to describe the process. My overwhelming memory of the development is one of everyone mucking in and helping each other, of pride in what we had made, and in utter surprise at the level of success that we achieved afterwards.

Early Career
Martin Hollis was the lead member for GoldenEye, and the game was his brainchild. He sought to recruit a bunch of smart, eager, and talented guys of various disciplines. One such one was Duncan. GoldenEye was modelled and levels created by using a tool called Multigen, a flight simulator. Using expert and creative maneuvering, the team used Multigen (along with some expertly coded converters) to handle their level needs.

I was the fifth member of the GoldenEye team to join, after Martin, Mark, Karl and Beatrix. As a designer I was expected to plan out the levels, and that was that, but I was able to do much more. I'd been attending a course on a 3D architecture tool called AutoCAD before joining Rare, and so I started to use Alias 2.5 and MultiGen, and their subsequent versions and derivatives on the Silicon Graphics machines. I also had a modicum of 2D artistic ability, and created some textures for use in the game, and used my sense of 3D space from my time on an Architecture degree course to make levels. I wasn't the greatest computer artist in the world, but I got better over time. I had no coding experience whatsoever, but I learned a limited amount to be able to set up levels to a certain degree - more on that later.

Contributions to GoldenEye
GoldenEye has a variety of solo levels, most taking place in situations straight out of the movie. Bunker was the first level in the game, considered my Martin Hollis to be the most polished level of all of them. The majority of level creation was done by Karl Hilton, and the majority of setups were by Dave Doak, but others helped.

I planned out the number of levels we'd have in the game, the early mission to the unfinished bunker etc, reusing as much of the graphics as possible. I also planned most of the objectives including the cheap-ass 'Minimise Scientist Casualties' one, of which the small dark part of my game designer soul is evilly proud.

I constructed some of the level backgrounds - the majority of the Dam level; the Gasplant and Runway levels; Severnaya exterior; the end cave section of the Jungle; the Water Caverns; and the Temple, Egypt, Library and Caves multiplayer maps, some of which were reused for the bonus levels. That included texturing and shading them too, after I learnt from Karl's excellent work on the other backgrounds. Karl did everything else apart from Statue Park, which was Beatrix's work, and the main section of the jungle level, which was Ady Smith's work.

I made several props for the game, including the slightly awful military truck in the first level and the Russian Special Forces helicopter from the Severnaya exterior level amongst other things. I was able to make very low-poly-cost models that still bore at least a tiny resemblance to their source model, which was useful. I also made the Iris Door model for the Water Caverns - then left it up to other people to get working. Eventually Dave sorted it out, bless him.



Rare didn't hire professional actors to do the guard movement, in fact, it was all done in-house.

I did 99% of the motion-capture acting for Beatrix, using two different systems: a horrible smelly neoprene fitness suit attached by cables to a flock-of-birds system that had been used for Killer Instinct, which has a working range of about a metre and a half (just try doing a forward roll in that distance), and what has now become the standard for game and film industry motion capture, an IR camera/shiny ball reflector/unflattering black lycra outfit combo in a freezing metal barn in the depths of winter.

One of my main jobs after the construction work was complete was level setup. 'Fun' Story number one: I placed virtually all of the navigation markers in the game using MultiGen, and linked them up. Manually. By typing the connections into a setup.c file. This was not a fast process. Martin came into my room to ask me what I was doing (answer: exactly what you asked me to do, Martin - linking the effing pads up, thank you so very much) and was so aghast at the glacial speed that he went away and wrote a converter based on an exploit of a feature in MultiGen, where a user could create a polygon with two vertices. From then on I linked the pads with the weird polys and everything went about a million times faster. If only he'd have done that three months earlier.

Level setup also involved guard and object placement, guard patrols and objective setup, dialogue and so on. Guard placements and patrols I could do, object placement was easy, dialogue fine...but objective setup was beyond me requiring as it did the creation of virgin code rather than my cut/paste/intuit technique. Dave Doak was brought onto the team to do that and other stuff, and because he's a very clever chap he was able to set up some more complicated objectives without bothering Mark to do it for him, like I had to do. So you can blame him for having to protect Natalya!




Multiplayer
One of the main reasons for GoldenEye's popularity is its multiplayer, which people have been coming back to since the beginning. Steve Ellis was largely responsible for this, getting a copy of the solo game's source code and miraculously turning it into multiplayer. Little do people know this mode was almost not to be.

Once the main game was done, Nintendo told Tim and Chris Stamper that on no account were we allowed to do a multiplayer mode because that would be the height of lunacy so late in the project. So we did one, in a month. It was coded by Steve Ellis, with whom I shared a room at that point, and set up by me. Karl contributed several backgrounds as well. My backgrounds tended towards having large rooms with high ceilings, because I was exceptionally good with the grenade launcher at that point.

His skills
I started doing interviews with journalists, with one memorable trip being to Edge magazine journalists at their offices in Bath; at that point I was using the dual-analogue controls, and within the first thirty seconds I'd shot the hats off two guards and shot a third in the bum as he ran away. I've never been able to do that again.

Pride
I'm most proud of the whole thing. It was the first game I ever made, and it was amazingly successful. I'm also proud to have been a part of that team. About the only thing I can think of that I'd like to have included in the game was 'fewer bugs', and possibly 'more frames per second'.

Debug Menu Removed Options
GoldenEye actually contains a comprehensive debug menu, unlocked via a cheat device such as a GameShark. In it, there are plenty of options, many that do things like see Bond from outside his body, turn on invincibility, remove props, etc. Some no longer do anything, so Duncan gave some insight into what they did.

"Show Patrols"
This I think drew lines on the game view that went from the chest of the guard to the next node in his patrol, as well as displaying the whole path, from node to node. Possibly I'm thinking of PD64 there, but the two systems were obviously similar.

"Room Blocks"
If I recall correctly this drew a transparent block around the room to show the extent of the volume. It would have been useful for showing any odd overlaps between connected room volumes that were giving us graphical drop-out bugs.

"Obj Load" "Weapon Load"
Possibly these were commands to reload the objects and weapons. Another possibility is that they displayed (that is, dumped out to a text file) the memory load of the different item groups.

"Explosion Info"
Aside from the obvious 'information about the explosion', I don't know what that displayed. Possibly texture info, possibly framerate (although we'd probably have known it was low).

"Magic Fog"
Since we didn't have an in-game editor, it can't have displayed any controls - reviewing any changes to setup needed the MultiGen and setup.c files to be saved, and the whole game converted. Potentially it may have toggled the fog on or off. We ended up using the fog as a graphical shading effect rather than as a culling tool.

"Port Close"
This might have turned a portal off.

"Port Inf"
I think that was displaying portal information - the name of the portal, and the names of the two rooms it connected. Portals were meant to be the occlusion-culling system, and they were the bane of our life... they were never meant to handle the large, open environments like the top of the Dam, so Martin had to hard-code the portal list into the level code by hand to get it to work. It was most suited to interior corridors and small rooms. They also had strange little foibles, like having a preferred direction based off the normals, which meant that you'd have to link the rooms in the correct order in the setup.c file or the portal wouldn't work. Although it sometimes did. I hope I'm getting across the keyboard-snapping frustration here.

"Pr Room Loads"
Dunno, I'm afraid.



Perfect Dark
Perfect Dark, while building on the GoldenEye engine, sought to add significantly more customization than GoldenEye in multiplayer and expanded solo modes with cut-scenes. Gone were the days of fixed weapon sets, predefined characters, and the James Bond universe. Everything in the game was enhanced, such as lots more guard audio chatter, secondary functions on guns, bigger levels, pushing the envelope as far as it could go. They even were developing a face mapping tool to allow a user to add their own face to Perfect Dark before its cancellation.

Game design - I planned the whole story, the levels and objectives and designed the way the weapons would work, including secondary fire modes. I set out the multiplayer mode, though I didn't do the challenges.

Level Construction - I made a few main story levels, though less than on GoldenEye: the main ones were Carrington Villa and Pelagic (not my best); I made the Skedar, Ravine and grid multiplayer maps (as well as being the original author of the Temple and Facility/Felicity maps).

Object Construction - I made and textured several of the guns, including the Laptop gun and the (human) sniper rifle, as well as several of the props.

Writing - I wrote the Cutscene script, and recorded voice for a few characters.

Setup - Fortunately I'd had to do less of the navigation pad work, but I had to fix any errors because I was the most familiar with the process... similarly when we had portal issues or background graphics bugs, I ended up fixing them.

Retaking the Institute was going to be a full-on assault against the Skedar in the Institute building... we had the Carrington Institute: Defence level anyway, so it got cut. The Pond Punk was possibly going to be the meeting place of a contact or something like that, but that was only ever very early on in the design stage, and it was probably quickly dropped due to reasons of time. Oddly, I don't think I ever planned anything for the observatory at the Villa... it's only really a character piece for Daniel Carrington.




Closing
Congratulations again on your own achievement. If only we'd had something like that at the time...

%s1 / %s2