One On One With Mat Noguchi
By Evil Otto
September 26, 2002
The word "tool" has quite a history at Bungie. One of the levels in the second Marathon game was named "Flight of the Toolator." The word is often used around the office to describe new hires, old hands who've made newbie mistakes, and of course Marketing. But there are different, better kinds of tools; namely, the tools we use to create our games. We haven't said much about Halo's editing tools, and you can imagine the emotional turnmoil experienced by a humble tools programmer when the game to which he made integral contributions gets a ton of favorable press and none of it mentions his hard work. Of course we don't have a humble tools programmer; we have Mat Noguchi.
We asked Mat a bunch of questions about Halo's tools and several other things; he is a witty guy with an opinionated worldview. I suspect that some of his more provocative musings here will provoke some heated debate on our forum. I must warn you that whenever Mat plays Halo, people down the hall shut their doors in a futile attempt to block the steady stream of high-decibel obscenity that issues from Mat's mouth, and while this written interview is significantly quieter it does contain a handful of words you can't say on television, so steer clear if that sort of thing offends you.
Describe exactly what you do at Bungie.
I am the tools, sound, and low-level engine stuff programmer/bug smasher for Halo 2. I work on everything that no one should notice, like level loading and hardware resource management. My secondary job as bug smasher means that whenever something goes horribly wrong in the game, I'm called in to diagnose and fix the problem. I'm the equivalent of The Wolf in Pulp Fiction.
Before you joined the Halo team, what did you do?
I was a drone in the Visual Studio army assigned to "research" in my team. Not exactly the most exciting or rewarding of careers.
When you started on the first Halo game, what sort of situation did you walk into? What was the first serious task you worked on?
Imagine God (the judeo-christian one), right before "FIAT LUX." That was the state of the halo tools when I joined in December of '00. My first (and continuing onto this day) task was to create a visual editing tool that the designers and artists could use that didn't suck. Suck being a relative term describing the old in-game tools used to create and modify levels.
When you say the old in-game tools sucked, could you be more specific? What was wrong, and how did you fix it?
Back in time immemorial, you placed points in the level by running to that point as the cyborg and hitting a button. Very tedious and time consuming. When you edit a level, you need a more global perspective on what you're doing; running around in the cyborg doesn't let you do that.
The main thing I did was to allow the user to place points in the game using the mouse and flying around without being attached to the cyborg.
Points could be anything, from scenery to AI firing positions (places the AI use). Since you can't have a good level without AI data or objects, you had to place them in some sort of editor.
Could you describe the basic Halo editing tools?
There are 3 main tools that we use every day to make yummy Halo goodness:
- Tool: this tool, aptly named tool, is the swiss army knife of Halo tools. Anything that can be run from the command line runs in tool, e.g., creating models from raw text data, compressing sounds, building level data, etc.
- Guerilla: this tool is the basic tag (game data file) editor. Very simple, but very powerful.
- Sapien: this is the in-game level editor. It lets you create and do pretty much anything you'll need to do to make Halo levels. Some notable uses are: populating levels with scenery, creating cinematics, scripting levels, etc.
For those who don't know, could you explain what tags are and how we use them?
Tags are the resource files Halo uses. These include everything from the raw model and sound data to the parameters for the weapons to the level layout and scripting. Basically, the tags are the template from which the game is run.
With the tags, you can take the existing shipping build of Halo and add in features never considered before. After Halo shipped, the artists got together and made a map called deathrace, with brand new vehicles (including the unicycle), all without changing a single line of code.
What feature or facet of the Halo tools are you most proud of?
The fact that they work :) Actually, I'm most proud of Sapien, since that's the tool everyone used to make Halo more than just a pretty picture with noise.
Tell us something cool about the Halo tools that we'd never guess.
I wrote the very first version of Sapien in two months. It's amazing how six months of boredom can sharpen a mind to a mono-filament edge.
Apart from Halo, what's the coolest thing you've ever worked on?
Halo 2 :) As fun as Halo development was, Halo 2 will be that much more fun.
What are your goals for the Halo 2 tools?
Make it so easy to make cool levels that a monkey could do it.
Was there anything specific about the Halo tools that you disliked and plan to improve for Halo 2?
The original batch of Halo tools that I created were a bit rushed; they were a bit unstable, and updating or changing the tools took a lot of time. After Halo shipped, I spent a month rewriting sapien so that during the development of Halo 2, I'll have an easier time updating and fixing it. Also, there are a lot of other features I'm going to add, including some really cool integration with the Xbox.
Have you done anything especially cool for Halo 2 that you're allowed to talk about?
Well, I've improved our sound engine so that we can play more sounds at with higher fidelity all the time. Most of the sounds in Halo were played at the equivalent of AM radio on a typical receiver. For Halo 2, we're going full-bore, with sound as good as that you get from a professionally recorded CD. Basically, the best audio experience out there.
Other than Chucky's ass, what's your favorite stimulant during a late-night hacking session?
Pepsi. That, and the knowledge that if I don't finish what I'm doing right now, the game will suck.
What do you like to do in your copious free time?
I like to bitch about how much games suck. Nothing pisses me off more than an almost good game that has a shitty UI flow or controls.
What defines a sucky game?
Games that don't have flow. Flow can include the ease of UI use, the loading times, plot, and the general gameplay mechanics. Games that violate this sort of flow tend to leave me a bit irritated. That's mostly games with shitty UI and long (and unnecessary, as we proved in Halo) loading times.
What's the worst game you ever played?
There are two: Devil May Cry and Final Fantasy X.
Devil May Cry had one major flaw, aside from the camera: a clunky continue system that didn't really work. Since using a continue did not reset your status to the point it was at before you continued, it was often better just to restart the level. Of course, since there was no option to restart the level, you had to quit to the main menu and restart from there. Which wouldn't be so bad, if it were Halo, but since it was DMC on the PS2, the loading times sucked. They should have just had a restart level option.
Final Fantasy X was a moderately un-sucky game up until you actually had to kick some serious ass. First off, they kept the classic random battle scheme, which in general sucks, and sucks more when you get your ass kicked repeatedly, and sucks even more when the battles happen with high frequency. Square managed to have a fun RPG without random battles in both Chrono Trigger and Chrono Cross; I don't understand why they didn't do the same thing for FFX.
Secondly, they made it frustratingly cumbersome to revisit previous levels until the very end of the game, when you finally got an airship. Most of what Final Fantasy was about was revisiting old places to discover new secrets. The lack of fast transportation kind of screwed that element.
Thirdly, they completely destroyed the process of uber-izing your character at the end by making every ultimate weapon only attainable by some idiotic twitchy-finger mini-game, as opposed to deduction and exploration. Having to play a chocobo racing game with shitty controls is about the most frustrating moment in FFX (along with random battles up the wazoo). At that point I plugged in my Game Shark, bumped all my characters up to the maximum stats, and just watched the rest of the game.
To turn the original question around: what are your favorite games?
Mm... good question. I'd have to say non-sucky adventure games, like Zelda 64 or Castlevania: Symphony of the Night.
Console vs. PC games: do you have a preference?
I prefer console-type games. Aside from web games, PC games are too expensive to play (except at work). The last time I upgraded my computer was with a $500 GF2-Ultra card that was subsequently superceded by the GF3. True, it was a bad investment, but the upgrade cycle to play PC games kind of sucks if you don't want to spend a lot of money on your PC. Not to mention shitty UI, driver hell, and retarded windows integration. (Alt-tab support is a fucking joke. The last good game for the PC from a usability standpoint was StarCraft. That game ran onanything.)
Console games at least have provide a consistent experience for all players. They're cheap, they last a while, and you can play from your couch. I have a very comfortable couch.
What's your favorite Halo multiplayer map? How about favorite multiplayer game types?
My favorite map is Hang 'Em High, although I am partial to a game or two on Putt-Putt. [Editor's Note: Putt-Putt was renamed Chiron at the end of development.] Of course, everyone else hates that map, so I don't get to play it often. Hang 'Em High is the best map to play snipers on with a small group of people; rockets too.
The best non-team multiplayer game has to be super rockets on Hang 'Em High. That's where you give everyone 400% health and rockets. It's a lot of fun, except for that stupid shooting-out-of-your-ass-when-you-turn-180-degrees bug.
For team games, I've become partial to team rockets race on Blood Gulch with warthogs. That has got to be the most explosive, entertaining variant out there, especially towards the end when everyone realizes where the last players have to go.
What's the most difficult aspect of developing tools?
Taking what people ask for and turning it into what they want.
Are there any special skills you need to have as a tools programmer that other coders for a game development team might not have?
Patience and determination, along with an eye for usability. Nothing sucks more than a tool that doesn't do what you think it should do.
What's a typical work day like for you?
Now that I'm the sound programmer, I have to check-up on Marty every once in a while to make sure he hasn't died from being old or fallen asleep in his keyboard or started ranting about the good ol' days. The rest of my day is spent designing new things for Marty and Jay to use in the sound engine, coding up the next best thing for our tools, bitching about load times and how much they suck, or stamping out YAJJB/F (Yet Another Jason Jones' Bug/Feature). I seem to run into a lot of the last kind recently.
Bugs in Jason's code?!? I don't believe it. Give me an example.
The best bug was crashing the game when you loaded a map from the main menu. I caught that after looking at some corrupted data and realizing it was a color value. That was fun. Most of the other bugs I fixed were engine issues that cropped up from using Sapien. Those are pretty boring. Except for the fact that there were a lot of them. And that I had to fix them all. I don't quite understand how Jason managed to write games that didn't crash as soon as you started them, but I guess that's just luck.
What's the most rewarding part of your job?
Aside from fixing all the bugs left in the code by Jason Jones, I'd have to say it's giving the artists and designers the tools to do their job faster and better. That, and getting free shit.
What's the best bit of free swag you've gotten so far?
From Microsoft: free subscription to Xbox Live. From Bungie: The elite statuette.
What advice do you have for all the kids out there who want to grow up to be just like you?
Play lots of games. Look beyond the pretty pictures and pick out what sucks about a game. Know what you like, and what you don't like. Assume nothing. Understand yourself. Never let first impressions last.
And for those who want to get into the game industry: Never think you're not good enough; make someone tell you.