This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.

Title

Doom Technology

Description

Doom III is going to be ground-breaking in many different ways. First of all, it doesn't seem that it will attempt to replicate the super-fast gameplay style of the original Doom. In <a href="http://www.msnbc.com/news/758337.asp?newguid=8053A0CD61C841AFB3B627D84838B310&cp1=1">There’s no ignoring Doom III</a> on <a href="http://www.msnbc.com/">MSNBC</a>, John Carmack says <iq>If you ... have everybody running around at 100 miles an hour, you would lose the immersion.</iq> It will be <iq>about the fear, the scary, extraordinary, unknown environment and not knowing what can happen.</iq> There are many departures for <a href="http://www.idsoftware.com/">id</a> from their standard 'formula' of game construction. Attention to content is paramount in this game, with quite high hardware requirements in order to assure that artists don't have to dumb down their models or textures. From a post on <a href="http://slashdot.org/">Slashdot</a>, <a href="http://slashdot.org/comments.pl?sid=33453&cid=3619372">High end hardware reasoning</a>, again by John Carmack: <bq>The comfortable minimum performance level on this class of hardware is determined by what the artists and level designers produce. It would be possible to carefully craft a DOOM engine game that ran at good speed on an original SDR GF1, but it would cramp the artistic freedom of the designers a lot as they worried more about performance than aesthetics and gameplay.</bq> The renderer for Doom does all light-source and shadow rendering in real-time, with no precompiled lighting information. In addition, environments will be much more interactive than they have been in <a href="http://www.idsoftware.com/">id</a> games in the past. <iq>With the new Doom, there is no separation [between static and dynamic elements]</iq>, so gone are those unshootable lights and unmovable tables. The lack of static lighting information allows the engine to use movable objects throughout, including moving or rotating lights, breakable walls, etc. In a demo, <iq>... a buffalo-sized hound from Hell nearly broke through a solid wall trying to get at the player.</iq> <a href="{data}/news/old_attachments/images/hellhound.jpg"><img class="frame" align="right" src="{data}/news/old_attachments/images/hellhound_tn.jpg"></a>As Tim Willits says, <iq>You can move around in it and knock boxes over and break stuff. It’s ‘in your face’ immersive.”</iq>. Carmack chimes in that <iq>You’re not going to know where there is a safe piece of a wall.</iq> That is, any portion of the environment could move, break or give way, with completely believable physics (look at the railing being squashed by the hellhound near the end of the video, or in the screenshot to the right). Carmack describes the new engine in <a href="http://www.gamers.com/news/1156460">Master of Doom: Carmack Speaks</a> on <a href="http://www.gamers.com/">Gamers.com</a>. The renderer also uses <iq>discrete, projected lights, full-time bump mapping, and global unification of light-surface interaction</iq> to make a more believable world. This means that creatures have the appearance of much more detail (bump-mapping) and all polygons in the scene are treated the same, with respect to occlusion, shadowing, transparency and lighting (global unification or light-surface interaction). He goes on <iq>Once you experience the consistency of the Doom world, other games start to feel more like puppet shows.</iq> With Doom, all surfaces are dynamically lit and there is no distinction made between static (world or environment) and dynamic (model or player/creature/entity) surfaces so that <iq>... lots of effects with light and shadow that people have always wanted to see in games ... just work naturally now, with no special hacks.</iq> The sound engine is <iq>Dolby digital, six-channel</iq> (<iq>full dynamic 5.1 channel sound mixing, and multichannel playback of studio sounds</iq>) and the physics engine has been completely rewritten. In fact, most of the engine has been rewritten. An article at <a href="http://www.gamespy.com/">GameSpy</a>, <a href="http://www.gamespy.com/e32002/pc/carmack/">Q & A with John Carmack</a> quotes Carmack as saying, <iq>after our move to C++, there is very little code remaining from the Q3 codebase at this point.</iq> And, he goes on to explain his approach to programming (which is why you just can't help admiring the guy): <bq>There are some tough judgement calls to be made during development about whether something is an elegant extension of our chosen technical paradigm, or if it is unjustified work. Having the inclination and authority to just say "no" to feature requests has been an important aspect to being able to write quality code. Too many programmers agree to random feature requests without thoroughly considering the impacts. I try to err on the side of elegance in implementation, rather than feature coverage.</bq> For implementers of mods and levels, the Doom engine promises big changes as well. Whereas the current game engines require a long precompiling stage before viewing a level, Doom's <iq>...tools are now built in to the game ... The game also uses the same map file that the editor uses, so the original source data can be opened up with any copy of the game.</iq> So, while the amazing renderer means artists will spend more time making models and level textures that take advantage of the engine, level builders will have a much faster turnaround for testing. <bq>What this means is that you'll be able to walk around in a level, press a key, bring up the editor, place some lights, and go back to the level.</bq>