Tread Marks - Interview With Seumas McNally
04/15/99 - Manveer "Eidolon" Heir

Seumas McNally is the lead programmer of the upcoming tank racing game, Tread Marks, being developed by his company Longbow Digital Arts. He is a very interesting and different person, and one of the smartest people I have ever had the pleasure of talking to.

Voodoo Extreme: How are you going to handle publishing? Self-published? On-line only?

Seumas McNally: As we've had success with self-publishing over the Internet in the past, we're currently aiming to do the same with Tread Marks, at least initially. We're still open to other options though. If response to an initial on-line only release looks good, self-publishing or co-publishing into retail stores would be a possibility.

VE: What has been the toughest part of programming the deformable terrain in Tread Marks, and describe the basics of how you overcame this problem.

SM: I'd have to say the hardest part was simply coming up with a good, general terrain engine that would render a height field and dynamically adjust polygon usage based on distance and frequency (bumpier terrain needs more polygons). The engine started out as a software "voxel" renderer similar to NovaLogic's games, but after feeling the power of hardware acceleration, I decided I needed to convert it to polygons, and later to drop the software version entirely. I tried a few 100% home-grown algorithms for level of detail management, but didn't have much luck. I then read the ROAM paper (another terrain engine), and the idea of binary triangle trees with pre-computed variance values struck me as being ingenious, so I built my own terrain engine around those basic concepts. The easy real-time deformation came out of there still being a voxel-style height and color map beneath the polygonal surface.

VE: What exactly are voxels? I have heard a lot about them, but I never fully understood the concept...

SM: True, honest to goodness "voxels" are to volume as pixels are to flat 2D imagery. They're little uniform 3D cubes that represent space, often with color and density. They're commonly used for medical imaging, where the true 3D representation of density through a solid is important. Voxels in the true sense haven't really been used in games (except for small sprites, sometimes using octree surface-voxel representations). What NovaLogic popularized as "voxels" really aren't; they're simply a 2D height field, where each grid coordinate has a color and a height value. They still represent volume, but as an extension of a flat plane. The biggest advantages they have over true voxels is their low memory requirement, and speed of rendering. The disadvantage is you can't have caves or tunnels, but since they are rather rare in nature, a 2D height field can adequately represent 99% of the terrain features found in the real world.

Software based voxel renderers commonly work a bit like texture mapping algorithms with surface displacement, usually plotting pixels directly to a frame buffer without any notion of polygons or other common 3D graphics primitives. This makes them difficult to translate to hardware accelerated rendering (notice the lack of hardware support in Delta Force), but it can be done with the appropriate algorithms to tessellate the height field data into triangles for hardware to handle.

VE: Explain this ordeal on you getting kicked out of kindergarten? What did you do... stick crayons up the other kids' butts or something?

SM: No, not quite. :) I wasn't bad, just different. After a couple of weeks, me and my nutty parents (who hated getting up at 7:30 AM about as much as I did) decided we'd prefer to go to school for just 2 or 3 days each week, but the school said all or nothing, so the rest is history. I just like to say I was kicked out, it sounds more rebellious.

VE: Wow... what type of parents did you have? Were they "hippies" (And I mean that in a nice way :)?

SM: Yes, I guess you could say they were hippies. :) And I don't think they've changed much, seeing as they're part of the development team for Tread Marks.

VE: What was school like since you were home schooled?

SM: Very different. It wasn't even normal for home-schooling, really. Not many workbooks, rote learning, or tests, but a lot of creative projects, playing, reading books, discussions, educational TV, computers (some educational software, mostly fun stuff), and video games. LOTS of video games. I think I knew I wanted to make my own games very early on, and my parents did a lot of things to make that possibility easier.

VE: What are the advantages and disadvantages to having your own small development group?

SM: Compared to writing games on your own, there are things both ways. It's a lot easier when you have someone else to do the things you're not that good at, and it's great to have other people directly involved who you can brainstorm ideas with. On the other hand, creating an entire game by yourself is something that all programmers should do at some point. You gain a new perspective once you know the entire game creation process from the inside, from graphics, to levels, to programming, to sound and music. I think it also helps later when designing tools or interfaces for other artists to use, and when creating placeholder art or models to test new features or ideas you have on your own.

VE: Do you find, then, that because you are the only programmer and you have few artists that you must know how to use many of the art programs, on a somewhat basic level?

SM: Yes, I think so. I also have a different take on the programs; while I might not be as creative in the art creation department, I do know a lot more technical tricks and techniques for creating specific effects that I can help share with the others.

VE: Who should play Lara Croft in the upcoming Tomb Raider movie?

SM: Nell McAndrew, or Rhona Mitra. It's hard to decide.

VE: Any thoughts on the Aureal A3d API, or have you not received it yet?

SM: I've just read through the documentation so far. I like that it's a completely free and totally inclusive 3D and 2D sound solution for Windows, and I also like that it has a similar feel to OpenGL in regards to API construction. I'm planning to try switching to A3D as the main Windows sound API for Tread Marks soon, assuming nothing goes wrong.

VE: What are your thoughts on adding weather effects, like snow and rain?

SM: A definite possibility. Weather conditions may be implemented as a subset of "alternate versions" of some or all maps, with specific retexturing for snow, mud, grassy, hot and dry, etc.

VE: Which 3D cards, if any, do you expect some problems with?

SM: I don't expect many problems with 3D cards, except for 3DFX. Aside from having washed out colors (fixable with a load-time gamma adjustment, or the gamma ramp extension they're implementing for Quake III) and no particles (a tougher problem, but solvable), the current OpenGL situation is fuzzy at best. I intend to fully support 3DFX cards before Tread Marks ships though, either through improved OpenGL drivers spurred on by Quake III, inclusion of the Mesa 3D OpenGL clone, or as last resort, a Glide version of the rendering engine.

VE: 3dfx doesn't support particles? Wow I always thought they did...

SM: I don't believe they support anything other than 3-point polygons in hardware (points and lines are emulated with polygons), though I may be wrong(!). Their current public Beta OpenGL ICD doesn't display points larger than 1 pixel, though hopefully that bug/limitation will be fixed, as their MiniGL appears to display large points in Quake without trouble.

VE: Why didn't you guys name your company something snazzy, like "Retarded Yak Entertainment" or "Barrel of Dead Monkeys"? I mean Longbow Digital Arts sounds so... military.

SM: Okay, so the name's a little boring. :) We initially wanted the name to be general enough to cover 3D animated short videos (a couple of which we still have on the back burner), games, and graphics tools, though we have been concentrating primarily on games for the last while.

VE: No, the name isn't boring, I just love the "alive" ones like CaveDog, Redstorm, and Raven :P But that's just me...

SM: Yeah, but those cool names are all taken. :]

VE: What do you like and hate most about the computer industry in general?

SM: I like the way the Internet is paving the way for small companies with good products and ideas to jump into the big leagues on their own terms. By the same token I hate the way so many _Internet_ based gaming sites mostly ignore small companies who are themselves based on the Internet, and concentrate on the big retail shelf names (certain sites excepted ). There are already enough print magazines to cover the big time end of gaming, IMHO, and print mags can't decently cover the on-line end due to lag times.

VE: Hah... well I work over at PlanetQuake on a site as well... maybe we can start PlanetTreadMarks :-)

SM: Hmm, sounds good. :)

VE: How is the proposed ladder ranking system going to work?

SM: We're still bashing out the details, but it will probably be something along the lines of a 100-competitor ladder, each with a name, a skill, perhaps a favorite tank, and a preferred driving style. You'll pick your starting rank (within limits), and then go up against computer opponents from close to your level. If you wipe their asses, you'll gain rank, if you get bitch slapped, you'll lose rank, and so on. The difficulty of the racing will then be tailored to your specific skill level, to always give you a fun challenge. There will probably be certain courses and weapons that you only have access to after a certain rank, and there may also be bonuses awarded for marksmanship and driving skill.

VE: How many times do people mispronounce your name (Pronounced Shem-ess if I am not mistaken)?

SM: Normally, all the time. :) It was really weird being at the GDC though, since everyone could pronounce my name! It helps that Seamus Blackley (note spelling) has been around for a while first.

VE: Sorry, who is Seamus Blackley?

SM: Formerly of DreamWorks, he worked on the physics for Trespasser. Now he's at Microsoft working on the Fahrenheit API.

VE: Since Tread Marks is your first "major" game, do you feel your design is at all too ambitious?

SM: I'm pretty confident we can finish what we've set out to create. I've been careful to not set my sights too stupidly high (seeing as we only have 4 people), so I think what we want to do is manageable, and any extra we can pull off will be icing. The basic design concepts have already been proven, so the task from this point on will be "merely" fleshing the product out to its whole.

VE: How does the AI work? Does it "cheat" (I.E. knows all the turns beforehand) or does it learn as it races?

SM: The AI doesn't "cheat", per se, but it does have a preferred driving line plotted out on the map before hand that it generally tries to follow. I may try adding some learning, or at least some extra heuristics, as at the moment a really good human player can beat the AI in pure driving (ignoring weapons).

VE: What is the best way to implement that AI? Psuedo-neural net?

SM: I haven't dug into AI in a big way yet, so I can't be too specific. I'm leaning towards finite or perhaps fuzzy state machines to give the computer tanks extra brains. I may try some sort of learning AI, but the problem is that when the track changes shape after a few hundred craters, the learned reactions may break down, and basic heuristics would probably be needed.

VE: How will weapons work? Will tanks outfit multiple weapons BEFORE the race, or do they pick up weapon "power ups" during the race?

SM: We're planning for a power-up system, since some of the weapons will be rather special and would be silly if used more than once or twice. There may be ways to outfit tanks with certain special weapon add-ons before the race though. We're just getting into that aspect of design now, so I can't be too specific. (I hate design documents, can you tell? :)

VE: Don't you think design doc's could help you in the long run?

SM: That's debatable. If you're working on the next Half-Life, with a huge scripted plot and relatively stable engine technology to build on, then of course a design document is needed (and a big one at that) to have any sort of consistency throughout the game. However I don't think a design document is important when you're building a game where the levels themselves are less important than the way the game engine plays, and when the engine underlying it all is being built at the same time. You wouldn't believe how quickly the best laid ideas can be shown to be rubbish when actually tried out in the game, and also how quickly new nifty ideas can spring forth. I wouldn't want to stifle the creative process by plotting out a single direction and end-point that the game design must reach before anything is tested. That said, we have put a lot of ideas on paper, and we've also thrown out a lot of ideas and changed others. If we had written a design document way back and stuck with it, Tread Marks would probably be a boring dune buggy racing game now.

VE: Stories in racing games...

SM: Never seen one that I thought added to the game. I don't think it's really needed, but we might come up with some sort of explanation for battle tanks doing laps, at least.

VE: No! No! No! Screw the story, no one cares and it is just sad... in the manual go "This is a tank racing game... there is no story, because it would be lame and cheap. We know you don't care about the story, so instead of wasting time on one we made the game even better!"

SM: Thanks for the suggestion. :) I wonder what other people think?

VE: Predictions for the future of 3dfx?

SM: Not rosey, unless they come out with a 32-bit part that smokes the competition and the quality of their OpenGL drivers suddenly takes off. We wouldn't have the cheap and powerful 3D graphics accelerators we do now if it wasn't for 3DFX, but they're starting to lag the rest of the industry.

VE: Where did you guys get the idea for a Tank racing sim? One to many re-runs of America's most dangerous car chases?

SM: Don't watch those shows much. :) I'm not sure where the idea came from exactly, but it was 100% original when we came up with it (I swear!). The game that is now Tread Marks started life as a dune-buggy racing game (back with the software voxel renderer), but there wasn't anything really inspiring about it. The terrain engine even then lended itself perfectly to mutability, and in thinking of ways to leverage real time craters and such, I suppose the idea of driving a vehicle with a rather large crater producing gun as standard equipment seemed somehow logical.

VE: Do you see any draw backs to having such a wide area of movement? Am I going to get lost and not be able to find my way back?

SM: I can't see any real drawbacks, except that if you're slow enough to get smacked in the ass at the edge of a cliff you can have a long climb back up at times. There will be a direction finder and a map, so getting lost shouldn't be a problem.

VE: Will the game be optimized for 3DNow! or KNI instructions?

SM: Probably not directly, but it will take full advantage of OpenGL drivers that are optimized for SIMD. (Bug your driver writers, kids!)

VE: How will TM take advantage of today's hottest 3D accelerators? 32 bit color, large texture sizes, maybe even S3TC?

SM: 32-bit will be a definite, though the game looks surprisingly good even in 16-bit on most cards (3DFX has some alpha-blending image quality issues). Textures are being kept reasonably small to facilitate operation on older 3D accelerators and for faster Internet downloads of betas and demos. Most textures will be at least 256x256 though, at 16 or 32-bit. If I can get an S3 card to test on (hint, hint) I can add support for S3TC easily enough.

VE: Boxers or Briefs?

SM: Both. (No, no, not at the same time!)

VE: Wow, the rebel wears underoos =) We though you might like to *ahem* free-ball :P

SM: Hah hah. I'm actually pretty normal and boring in some respects. ;)

VE: What do you think sets Tread Marks apart from other racing games?

SM: The totally destroyable terrain, and the weight of the vehicles. The maps can turn into utter swiss cheese after a few laps, and it really adds another dimension to driving and fighting. Special weapons such as the Nuke and the hill raising weapons will really twist the possibilities beyond anything that has been seen before.

VE: Are the physics of Tread Marks based on real physics, or just what "felt" right to you?

SM: The physics are "real" as far as gravity and scale are concerned, and the general way objects collide and interact, but beyond that it's mostly aimed at providing the best feel and play experience. In a game like this, 100% correctness shouldn't get in the way of fun.

VE: Will it be possible to "die" in Tread Marks?

SM: Only in the Death Match modes, most likely. The closest you'll probably come to "dying" in the racing mode is getting so totalled that your turret gets blown off, leaving you weaponless.

VE: What about repairing then?

SM: Oh, of course. Probably through a combination of continuous auto-repair and power ups to boost the rate or provide instant repairs.

VE: Favorite game you are currently playing...

SM: The only game I'm playing at the moment is Abe's Exodus, which is entertaining enough to keep me coming back. My favorite gaming experience of late was playing all the way through Half-Life.

VE: Will it be possible to make your own tracks when Tread Marks comes out?

SM: Definitely. Either the specs or the terrain editor itself should be released shortly after Tread Marks goes gold.

VE: What other type of customizability will Tread Marks have?

SM: It will have a lot of higher-level customizability. By editing plain text files (and supplying your own graphics and models where appropriate) you'll be able to tweak existing tanks and weapons, create new tanks and weapons, new trees, new explosions, add new sound effects, etc., without any programming. I'm not sure whether the source code that actually makes the tanks and other entity classes tick will be released though. It would need a C/C++ development environment to use, so would only be of interest to truly hard core types.

VE: Star Wars... does it make you sp00ge when you see the new trailers?

SM: They're cool. From what I've seen of the trailers, the story doesn't feel as grand as that of the original, but we probably haven't seen anything close to the big picture. I'm expecting to be happily blown away, as the master of Science Fiction space drama shows the up-starts how to do it yet again.

VE: Why exactly is it so hard to create realistic trees? I have read in many interviews that trees are extremely hard and challenging to make realistically. Why is this?

SM: The basic problem is that trees contain an astounding amount of complexity in a very small space, and when using the real world as a model, you usually want an awful lot of them packed into the same area. More specifically, fast 3D graphics is about simplification and representation, and trees are very difficult to simplify. A car is easy to simplify; you throw together a few boxes, maybe round some edges, and you have a shape that looks very much like a car. A tree is difficult to simplify without making it look less like a tree and more like an abstract sculpture, which is why most trees in 3D games are either flat sprites (which are a super simplification in 3D geometry while retaining detail in visual appearance, but with their own trade offs), or look like somebody's idea of a wind chime. Often one or a combination of the above simplifications is enough to produce a convincing result, but it will be a while before there is enough 3D performance to do trees "correctly" in a general sense.

Lots of thanks go out to Seumas McNally for letting me interview his stank-ass and to Dave 'Octane' Morrison for contributing some questions (Dave is out backup web-chump here at VE =) If you haven't already checked it out, go and read me preview of Tread Marks I wrote a few weeks back. I got my grubby hands on a pre-alpha copy and it was damn cool :)