DOOM 3 & DX9

With all the discussion lately about how Half-Life 2 will run on ATI hardware compared with NVIDIA accelerators, BonusWeb.cz shot off an email to id Software's John Carmack to ask how DOOM 3 and other games are likely to be impacted by the difference between the two graphics platforms running DirectX 9. Here's how he responded:
Unfortunately, it will probably be representative of most DX9 games. Doom has a custom back end that uses the lower precisions on the GF-FX, but when you run it with standard fragment programs just like ATI, it is a lot slower. The precision doesn't really matter to Doom, but that won't be a reasonable option in future games designed around DX9 level hardware as a minimum spec.
View : : :
102.
 
"Standards"
Sep 18, 2003, 17:27
"Standards" Sep 18, 2003, 17:27
Sep 18, 2003, 17:27
 
Again, to clarify the situation:

The idea behind standards like DirectX and Pixel-Shader specs is to provide two things:

1) Provide a standard set of programming functions and interfaces for programmers to use

2) Provide a standard set of features that all hardware should implement completely, if it wants to claim that it "meets the spec". Ideally, the features should all act / look the same - though performance will probably differ between products.

The idea behind Microsoft having these standards, is that it can use its market position, money, and influence to coerce hardware-makers to conform to the spec a LOT better than trying to get them to do so voluntarily. OpenGL is based around committees and consortiums of manufacturers & developers. As such, it takes longer for revisions in the spec to be approved; and it is up to each individual to implement and "conform to" the spec (and look at how many years its been, and how many chips & drivers STILL don't implement all of the older OpenGL stuff properly). Having a monopolistic power like MS drive development may not be the ideal solution - but it gets results; and for gamers its a "win".

According to what we've seen, nVidia's card does NOT meet the PS 2.0 spec of using FP24 (24 bit) precision. Therefore, a true apples-to-apples comparison of DirectX9 / PS 2.0 features leaves nVidia behind; because it must deal with the "doubled-up 16 bit mode" that it has to run to meet/exceed the spec'ed 24 bit mode. ATi runs this mode natively; and doesn't suffer any performance penalties as a result.

So using the STANDARD as a measuring-tool, ATi steps out ahead of nVidia. Can nVidia beat ATi? Certainly, under certain circumstances: When not using DX9, PS2.0 shaders, or anything higher than 16bit precision for effects - nVidia can still out-perform ATi.

The thing is, as games get more complex, developers are going to have less and less time to devote to "hand coding" alternatives and special code-paths. The "standards" are becoming more popular and more important all the time; and increases in game-complexity will only drive this further along.

Look at how much automation and specialization is being built into art & architecture tools for games these days... Soon, some of those automated / "assistance" aspects are going to need to be incorportated into programming environments, to enable games to be developed on a reasonable time-scale. Engine-licensing was a "first step" in this direction - automation via the use of other people's existing code. However, this can be awkward; and the learning time for someone else's engine eats into the time-benefits of licensing it in the first place. Furthermore, you are constrained to all the limits and compromises someone else made; and they usually made them without ANY idea of what you want to do with their code.

I forsee eventually having integrated development environments that largely automate the basic processes of coding a graphics engine; and the increasing adoption & conformity to "standards" will help this as well - as the compilers and development tools will be MUCH more feasible if they can create "vanilla" code (automatically or with minimal direction) that works for everyone (and since its defined by you, it doesn't suffer the problems of being "someone else's code" like engine licensing). The dominant paradigm will then shift to programming as a means to "define the rules" of the game (physics, interaction, movement, victory conditions, etc); and you will see a "split" in the game-programmer role... Part of these people will end up working on the "developemnt environment" and "tools" - pushing the latest and greatest visuals & physics routines, and optimizing the automated aspects of the development tools. The others will become more like "game designers who code", in a sense that their programming will have much more to do with gameplay, and less with hardware access, memory-management, etc. Art will still be the biggest bottleneck in games development; although the tools for that are getting better - however increases in detail/fidelity are still outpacing the development of most art/architecture tools.

Wow, talk about a rambling topic-diversion!

Take care,

--Noel "HB" Wade


Date
Subject
Author
1.
Sep 17, 2003Sep 17 2003
4.
Sep 17, 2003Sep 17 2003
7.
Sep 17, 2003Sep 17 2003
9.
Sep 17, 2003Sep 17 2003
12.
Sep 17, 2003Sep 17 2003
23.
Sep 17, 2003Sep 17 2003
2.
Sep 17, 2003Sep 17 2003
3.
Sep 17, 2003Sep 17 2003
5.
Sep 17, 2003Sep 17 2003
6.
Sep 17, 2003Sep 17 2003
16.
Sep 17, 2003Sep 17 2003
20.
Sep 17, 2003Sep 17 2003
21.
Sep 17, 2003Sep 17 2003
24.
Sep 17, 2003Sep 17 2003
     Re: No subject
55.
Sep 17, 2003Sep 17 2003
      Re: No subject
56.
Sep 17, 2003Sep 17 2003
       Re: No subject
60.
Sep 17, 2003Sep 17 2003
       Re: No subject
81.
Sep 18, 2003Sep 18 2003
        Re: No subject
8.
Sep 17, 2003Sep 17 2003
10.
Sep 17, 2003Sep 17 2003
13.
Sep 17, 2003Sep 17 2003
14.
Sep 17, 2003Sep 17 2003
15.
Sep 17, 2003Sep 17 2003
11.
Sep 17, 2003Sep 17 2003
18.
Sep 17, 2003Sep 17 2003
17.
Sep 17, 2003Sep 17 2003
19.
Sep 17, 2003Sep 17 2003
22.
Sep 17, 2003Sep 17 2003
25.
Sep 17, 2003Sep 17 2003
40.
Sep 17, 2003Sep 17 2003
27.
Sep 17, 2003Sep 17 2003
32.
Sep 17, 2003Sep 17 2003
33.
Sep 17, 2003Sep 17 2003
38.
Sep 17, 2003Sep 17 2003
26.
Sep 17, 2003Sep 17 2003
30.
Sep 17, 2003Sep 17 2003
31.
Sep 17, 2003Sep 17 2003
62.
Sep 17, 2003Sep 17 2003
64.
Sep 17, 2003Sep 17 2003
    Re: 26 WRONG
96.
Sep 18, 2003Sep 18 2003
     Re: 26 WRONG
83.
Sep 18, 2003Sep 18 2003
    Re: 26 WRONG
36.
Sep 17, 2003Sep 17 2003
39.
Sep 17, 2003Sep 17 2003
45.
Sep 17, 2003Sep 17 2003
    Re: 26 WRONG
63.
Sep 17, 2003Sep 17 2003
28.
Sep 17, 2003Sep 17 2003
29.
Sep 17, 2003Sep 17 2003
35.
Sep 17, 2003Sep 17 2003
37.
Sep 17, 2003Sep 17 2003
41.
Sep 17, 2003Sep 17 2003
47.
Sep 17, 2003Sep 17 2003
48.
Sep 17, 2003Sep 17 2003
42.
Sep 17, 2003Sep 17 2003
   ???
44.
Sep 17, 2003Sep 17 2003
    Re: ???
50.
Sep 17, 2003Sep 17 2003
     Re: ???
46.
Sep 17, 2003Sep 17 2003
109.
Sep 19, 2003Sep 19 2003
110.
Sep 19, 2003Sep 19 2003
111.
Sep 20, 2003Sep 20 2003
115.
Sep 22, 2003Sep 22 2003
116.
Sep 22, 2003Sep 22 2003
34.
Sep 17, 2003Sep 17 2003
43.
Sep 17, 2003Sep 17 2003
49.
Sep 17, 2003Sep 17 2003
51.
Sep 17, 2003Sep 17 2003
61.
Sep 17, 2003Sep 17 2003
65.
Sep 18, 2003Sep 18 2003
66.
Sep 18, 2003Sep 18 2003
67.
Sep 18, 2003Sep 18 2003
79.
Sep 18, 2003Sep 18 2003
80.
Sep 18, 2003Sep 18 2003
101.
Sep 18, 2003Sep 18 2003
84.
Sep 18, 2003Sep 18 2003
85.
Sep 18, 2003Sep 18 2003
86.
Sep 18, 2003Sep 18 2003
87.
Sep 18, 2003Sep 18 2003
88.
Sep 18, 2003Sep 18 2003
90.
Sep 18, 2003Sep 18 2003
94.
Sep 18, 2003Sep 18 2003
52.
Sep 17, 2003Sep 17 2003
53.
Sep 17, 2003Sep 17 2003
54.
Sep 17, 2003Sep 17 2003
82.
Sep 18, 2003Sep 18 2003
57.
Sep 17, 2003Sep 17 2003
59.
Sep 17, 2003Sep 17 2003
58.
Sep 17, 2003Sep 17 2003
68.
Sep 18, 2003Sep 18 2003
69.
Sep 18, 2003Sep 18 2003
70.
Sep 18, 2003Sep 18 2003
97.
Sep 18, 2003Sep 18 2003
71.
Sep 18, 2003Sep 18 2003
72.
Sep 18, 2003Sep 18 2003
73.
Sep 18, 2003Sep 18 2003
75.
Sep 18, 2003Sep 18 2003
76.
Sep 18, 2003Sep 18 2003
78.
Sep 18, 2003Sep 18 2003
74.
Sep 18, 2003Sep 18 2003
77.
Sep 18, 2003Sep 18 2003
89.
Sep 18, 2003Sep 18 2003
91.
Sep 18, 2003Sep 18 2003
92.
Sep 18, 2003Sep 18 2003
93.
Sep 18, 2003Sep 18 2003
95.
Sep 18, 2003Sep 18 2003
98.
Sep 18, 2003Sep 18 2003
99.
Sep 18, 2003Sep 18 2003
106.
Sep 18, 2003Sep 18 2003
107.
Sep 18, 2003Sep 18 2003
108.
Sep 18, 2003Sep 18 2003
100.
Sep 18, 2003Sep 18 2003
 102.
Sep 18, 2003Sep 18 2003
"Standards"
103.
Sep 18, 2003Sep 18 2003
104.
Sep 18, 2003Sep 18 2003
105.
Sep 18, 2003Sep 18 2003
112.
Sep 20, 2003Sep 20 2003
113.
Sep 21, 2003Sep 21 2003
114.
Sep 21, 2003Sep 21 2003
117.
Sep 23, 2003Sep 23 2003
118.
Oct 22, 2003Oct 22 2003