They Do That?:
By Jason "loonyboi" Bergman
In each installment of How'd They Do That?, readers send in their questions about a specific title, and we go to the developers to find out just what magic was performed. If you've got a question, send it to us at [email protected].
elcome back to another exciting installment of How'd They Do That? where you send in the questions, and we get the developers to answer 'em. After last time's roundup of 3D programmers, we got a bunch of questions about 3D engines, so let's tackle them, shall we?
Our first question comes from Andew Ruble, who has a question about starting a 3D engine.
The Question: Where you would start in programming the games, as in would you program in the level-reading processes, or would you start with all of the physics, etc...
For the answer, we went to loonygames contributor, and big time programmer on Duke Nukem Forever, Chris Hargrove. Here's what he had to say:
Different programmers take different approaches to this. I personally am a firm believer of starting with the core, system-level operations (file handling, memory management, etc) and getting them out of the way, since everything builds on top of those. Then moving on to mid-level sections for basic rendering, sound, user input, network transfer, etc. This will allow the initial game logic code to be written, after which you start revising and adding systems that tie the game logic to other parts of the engine (i.e. levels, physics, etc).
There you go, Andrew!
Our second question comes from Arjun 'The Cyberman' Kanodia, who asks two questions:
The Question: I've always wondered how Bungie did "5d spaces" in Marathon (and Marathon 2 and Infinity) and why no other game (at least no other fps on the mac, anway that I know of) until Unreal was able to do 5d spaces?
If you can take another question: And how was Bungie able to make the Marathon map file format so easily editable when Quake, Unreal, etc. map file formats are not. Why do Quake, Unreal, etc. maps have to be "compiled" (and thus made uneditable without having the source) and why do marathon maps not have to be compiled?
Good question, Arjun! We went to Bungie's Doug Zartman for the answer:
Since I ain't no programmer, here's a greatly simplified explanation:
The answer to both of these questions is that the Marathon games are not polygonal full-3D games. Games of that type are sometimes called 2.5D (Duke Nukem "3D" is another one). The characters are sprites and the rooms are 2D polygons with a floor and ceiling height defined. All the engine cares about is what the floor and ceiling are, and what polygons are adjacent to which others. So, two polygons can occupy the exact same 2D space as long as their elevations don't intersect - it's impossible in the real world of 3D objects, but not in the world of the 2.5D engine, whereas Quake and Unreal are true 3D engines with polygonal characters. This greater simplicity in how the Marathon engine thinks about spaces allows files to be modified much more easily, without being compiled.
There you go kids! Remember, if you've got a question about games, send it to us! We're here to get the answers you crave!
Credits: How'd They Do That? logo illustrated by and is © 1999 Dan Zalkus. How'd They Do That? is © 1999 Jason Bergman. All other content is © 1999 loonyboi productions. Unauthorized reproduction is strictly prohibited, so don't try it, or we'll make you disappear. Or just throw knives at you. It's your call, really.