Evolution of FPS Renderers

I'm planning on creating a ppt presentation on the pivitol engine renderers that paved the way for the FPS genre, with pics and some tidbits on each. I was wondering if you guys could help me out by providing me with some innovative aspects brought to the table by each game renderer, exploited in-game upon initial release (not the renderer/engine's hypothetical capabilities), along with the corresponding high end video processor and/or cpu available when the game was officially released. Here is the list:

3D w/sprites (Raycasting)

Wolfenstein 3D:
CPU: 286
VPU:

Ultima Underworld: Not a raycasting engine as the rest, however it allowed the player to look up, down, and jump: actions never-before-seen in a renderer. In addition, walls weren't limited to straigh lines and could be diagonal. It allowed for in-game fog, a limited form of perspective correction, and some 3D objects.
CPU:
VPU:

Doom: Brought trully 3D levels and dynamic lighting based on 256 colors, but did not allow for looking up, down, or jumping, as Ultima Underworld did 2 years before it.
CPU: 386/486(xs33)
VPU:

Duke Nukem:
CPU:
VPU:

3D w/polygons, lightmaps, and basic texture mapping

Quake 1: First attempt at 3D with polygons and texture mapping w/ widespread perspective correction, although limited to every 16th pixel with interpolation for those in-between; initially a software rendering approach.
CPU: Pentium Pro
VPU:

Unreal: Initiation of the 3D accelerator as a major factor in game rendering performance and asthetics.
CPU: Pentium Pro
VPU: Voodoo 1

Quake 2: Colored Lighting
CPU: Pentium Pro
VPU: Voodoo 1

Quake 3: Use of software shaders and introduction of shadow volumes. One of the first games to support hardware T&L for accelerated geometry processing.
CPU: P3
VPU: Voodoo 3/TNT 2

Unreal Tournament: Slight Enhancement of Unreal engine
CPU: P3
VPU: Voodoo 3/TNT 2

Unreal Tournament 2003: Use of pixel shaders to accelerate terrain rendering, along with T&L/vertex shaders for large loads of level geometry (size & detail) at playable framerates.
CPU: P4/Athlon XP
VPU: R300

Widespread use of shaders at the vertex and pixel level, although use of precomputed lighmaps and vertex lighting, as in games before

Halo: Material pixel shaders for visual enhancement and post processing. Vertex shaders used mainly to accelerate rendering.
Baseline: DX7 class
Target: DX8 class
CPU: P4/Athlon XP
VPU: R3x0

CryEngine: Material shaders for visual enhancement and post processing at the vertex and pixel level. A mixture of shadowing techniques including shadow maps and stencil shadow volumes. Normal mapping for high detail characters w/o the need for high polygon counts.
Baseline: DX7
Target: DX8/9 class
CPU: P4/Athlon 64/XT
VPU: R3x0

Complete real-time lighting model, at the pixel level, w/global dynamic shadows

Doom 3: First attempt at per-pixel phong shading with a unified scheme including stencil shadow volumes. No solution for indirect lighting. Shaders used to accelerate rendering, more so than for visual enhancement or post processing.
Baseline: DX7 class
Target: DX8/9 class
CPU: P4/Athlon 64/XT
VPU: NV40/R420

Combination of the highest quality rendering techniques available for real-time rendering
UE 3.0: Another variation of the per-pixel phong shading model for direct lighting (point/spotlights) with the addition of fuzzy/soft shadows w/shadow buffers and a limited solution for indirect lighting. Offers extensive use of HDR rendering and a shader material system for visual enhancement and post processing effects.
Baseline: DX9 class
Target: DX9 class
CPU: TBA
VPU: TBA
 
Hopefully I can get someone to help me host it when I'm finished so you guys can enjoy it too.

I'd like to instill in my friends and family, who play games with no real appreciation for the advancement of technology, a sense of wonder and excitement at the progresson of the virtual world. This will serve as my answer to them when they ask me why I visit this site so frequently or why I'm so interested in 3D technology. My response will be: "because it has and will take us to very exciting places"; then I'll show them the presentation. Maybe they'll recognize how much technological work goes into these "silly" games we play. Go and tell Pixar/Dreamworks that their renderers are "silly."
 
Luminescent said:
Wolfenstein
Quake 1 (486 w/ fpu was required to play the game)
Unreal
Quake 2
Quake 3
Unreal Tournament
Unreal Tournament 2003 (I believe it was a radeon or a geforce 2 on debut)
Doom 3 (GF3 on debut and R420/NV40 w/AMD64 on release)
Source (P4 and 9800 pro on debut)
UE 3.0 (NV40 on debut)


Wolfenstein was probably the days of the 386/early 486(DX/SX 25/33/50/66). Video would have been Trident/S3/Matrox/Cirrus Logic maybe...

Quake 1 was around with 486/K5/Pentium/PPro (The readme has JC yapping about how PPro rocks for Quake). Video was S3 Virge/Trio, Matrox Millenium, Trident, Cirrus Logic, Rendition, NV1. Quake 1 was originally software-only rendering. Then VQuake, GLQuake, and S3's Quake for Virge showed up.

Quake 2 - Pentium, PPro, K5/K6. Voodoo1, S3 Virge/Trio, PowerVR. Software and 3D Hardware rendering

Unreal - Pentium, PPro, P2, K6/-2. We had Voodoo1/2s, Riva128, PowerVR, Rendition V2200s, S3 Virge/Savage3D, Sis junk, NV1. Basically only the Voodoo1 (Glide), Savage3D (S3 Metal), and maybe PowerVR owners could do decent 3D cuz the game had very limited D3D early on. Software rendering was somewhat of an option if you had a top of the line CPU. Unreal's software renderer was extremely optimized and delivered great quality (it even does a limited pixel filtering to remove blockies and is optimized for 32bit color). Unreal uses lots of MMX for audio and software rendering.

Quake 3 - P2/P3, K6-2/-3. Voodoo2/3, TNT1/2, Matrox G400/G200, PowerVR maybe.

UT - Same as Quake 3

UT2003 - P3/P4, AthlonXP. Geforce2/3, Radeon8500.



Massive brain drain....oh gosh i need a nap now. Somebody fill in the missing stuff....
 
Luminescent said:
I'm planning on creating a ppt presentation on the pivitol engine renderers that paved the way for the FPS genre, with pics and some tidbits on each. I was wondering if you guys could help me out by providing me with the corresponding high end video processor and/or cpu used to debut the engine (i.e. NV40 was used to debut UE 3.0, GF3 for Doom 3) along with the optimal or high end system available when the game was officially released. With some specifications we can more closely observe the correlation between # of transistors and software which exploited this hardware by using it qualitatively, for performance, or both. Here is the list:

Wolfenstein
Quake 1 (486 w/ fpu was required to play the game)
Unreal
Quake 2
Quake 3
Unreal Tournament
Unreal Tournament 2003 (I believe it was a radeon or a geforce 2 on debut)
Doom 3 (GF3 on debut and R420/NV40 w/AMD64 on release)
Source (P4 and 9800 pro on debut)
UE 3.0 (NV40 on debut)

doom is missing from the list.

wolfenstein worked even on 286, though I think 386 was out when it came
It used constant-Z rendering on walls, rendering them vertically ( ie inner loop was not horizontal scanline but vertical line.
monsters were done with sprites.

doom worked on 386 but needed 486 to run well, and came when 486sx33 was the most commonly sold machine.
Doom used constant-Z rendering for walls, roof and floor , it rendered walls vertically and floor/roof vertically.
monsters were still done with sprites.
doom used math coprocessor to initialize some tables when starting the game; if the mahcine did not have an FPU then this initialization was done using software floating point which was slow -> starting the game took longer time. But after this initialization phase, everything was done with fixed point.

quake rendered everything "without tricks" , everything based on perspective corrected 3d triangles. Quake also used FPU for all geometry calculations.
quake could run on 486DX but it needed pentium's pipelined FPU to really run well.


Descent is also remarkable game/game engine, you should include that.
(between doom and quake)
It used some trick so that it could use constant-Z rendering to all surfaces even though the constant-z-line was not directly vertical or directly horizontal.
AFAIK descent also did not use triangles but quadrangles as it's basic primitive. Also monsters were done with these.
descent did not need much more CPU power than doom, ran well with 486's.
 
I didn't include Doom because it didn't seem like a significant step in engine design from Wolfenstein, imo, and from the description of its rendering techniques above (thanks, btw), I stand on that conclusion. There are many great in-between games that I did not include (ie half-life), however these are based on a variation of one of the above-mentioned engines.

I'm not sure about include descent, as it does not include the rendering of human/humanoid characters, which is a major aspect of rendering that I would like to make a point out of. The fps genre has been the one to pioneer 3D technology and rendering in the last few years, which is why I chose it; I know there are many other great engines, but it is a more visible contrast if all the games in the presentation share the first person perspective.
 
Luminescent said:
I didn't include Doom because it didn't seem like a significant step in engine design from Wolfenstein, imo, and from the description of its rendering techniques above (thanks, btw), I stand on that conclusion. There are many great in-between games that I did not include (ie half-life), however these are based on a variation of one of the above-mentioned engines.

I'm not sure about include descent, as it does not include the rendering of human/humanoid characters, which is a major aspect of rendering that I would like to make a point out of. The fps genre has been the one to pioneer 3D technology and rendering in the last few years, which is why I chose it; I know there are many other great engines, but it is a more visible contrast if all the games in the presentation share the first person perspective.

Er. If I remember correctly Doom was so spanking fantastaic because it was the first FPS that allowed more than a single plane view (You coiuld look up and down in doom). No FPS before that, could you acutally look up and down. But I could be wrong...
IMHO Dooms renederer was way better than wolf's. Wolf only allowed for square rooms. Doom allowed for more flexable level design then any game FPS previous to it, but then I dunno if falls into the renderer category.
But I can see your point about not including it...I just think the level of detail that doom allowed for was definitlly a step above wolf by quite a bit.

Cheers!
 
Hmm, perhaps then Doom was to Wolf what Unreal Tournament was to Unreal. I guess I may include it, then. I mean, it is part of the progression of 3D environments. If I chose not to include it, I would have to omit some of the other 3D engines which weren't a revolutionary step ahead of their predecessors.
 
I want to vote for Doom aswell, since it is far superior to Wolfenstein in terms of rendering and realism (for example the use of illumination).
You couldn't look up and down in Doom though... I believe that was later added in ZDoom or such. I believe Heretic was the first Doom-like game with up/down viewing.

And I think Quake 2 and 3 can be dropped from the list, since they don't add anything significant over Quake 1 (the OpenGL version of Quake 1 ofcourse).

Perhaps you could also include Halo, as the first(? at least on xbox?) FPS to use shaders on everything, considerably increasing the realism of the world, the characters, and the special effects (bumpmaps on everything, specular highlights, reflections, refractions, shadows... etc).
 
The first FPS (hybrid in this case) that allowed up/down viewing was Ultima Underworld, in 1992.. and remains to this day one of the most overlooked 3d engines ever, having a similar featureset to the Doom 3d engine (and more, see up/down capability) two years before Doom hit the shelves.
 
hkultala said:
doom is missing from the list.

wolfenstein worked even on 286, though I think 386 was out when it came
It used constant-Z rendering on walls, rendering them vertically ( ie inner loop was not horizontal scanline but vertical line.
monsters were done with sprites.

I agree that Doom is missing.

Wolfenstein ran pretty well on a 286, but it needed a VGA card, which was not all that common in 286s (EGA was the standard). Wasn't the mode called MCGA or something like that? 320x240x256, I believe IBM used it first in their PS/2 computers, the 8514/A graphics adapter or something like that (they also had a matching 8514 monitor). I had one of these in a 386 PS/2 with MCA bus -- I think it could do 800x600 in 16 colors and 320x240 tops in 256 colors. These were the days. I preferred my 286 though, a spanking 10MHz with 287 math processor, Tseng Labs ET-3000 VGA graphics, original Sound Blaster and 80 MB SCSI hard drive! :devilish: I miss that system...

hkultala said:
descent did not need much more CPU power than doom, ran well with 486's.

Aaaah... Descent. I have never been defeated in Descent ;)
 
Luminescent said:
I didn't include Doom because it didn't seem like a significant step in engine design from Wolfenstein, imo, and from the description of its rendering techniques above (thanks, btw), I stand on that conclusion.
Then you might as well go ahead and remove Quake 3, because Q2--->Q3 is not any bigger of a step up then Wolf3D--->Doom (maybe even smaller).

mangrove said:
Wasn't the mode called MCGA or something like that? 320x240x256
AFAIK that was just plain 320x200x256.
 
hkultala said:
Descent is also remarkable game/game engine, you should include that.
(between doom and quake)
It used some trick so that it could use constant-Z rendering to all surfaces even though the constant-z-line was not directly vertical or directly horizontal.
AFAIK descent also did not use triangles but quadrangles as it's basic primitive. Also monsters were done with these.
descent did not need much more CPU power than doom, ran well with 486's.

No, it didn't do constant-Z rendering, it used horizontal scanlines with perspective correction just like quake did.

Perpsective correction is costly (needs two division, or one division and two multiplization) so both Descent and Quake calculated it for every 16 pixel only and used linear interpolation in-between.
Descent had 2 div, done on the CPU - it run well on 486 or it run quite well on Pentium in 640x480.
Quake had 1 div and 2 mul, done on the FPU - so it needed a Pentium to run well.
 
Alright, I edited the list to include Doom. In addition, I'm not going to add much about Quake 2 and 3, as well as Unreal Tournament and Unreal 2, as they're only modifications of the original quake/unreal engine.
 
PC only? Anyway i always liked the Forsaken game and engine back then which kinda is a FPS.
 
Luminescent said:
Unified lighting model, including shadows, at the pixel level
Doom 3 (GF3 on debut and R420/NV40 w/AMD64 on release)
UE 3.0 (NV40 on debut)

I though UE 3 didn't have a unified shadowing system??
 
Doom: First FPS with the ability to render true 3d levels. Wolf3D had levels that were all on one flat plane, in Doom you could go up stairs, jump over platforms, etc... This is big. Also it used the diminished lighting effect (things further away are darker) which was quite an achievement at the time.

Quake 2 introduced colored lighting, right?
Yes, that was one of the key features of Q2 over Q1 (GLQuake anyway, otherwise hardware rendering obviously).

Quake3: Introduced programmable shaders (done in software) for the first time. Very limited by todays standards but it should be noted.

I would seriously question the inclusion of UT2k3 in the list as it added nothing in terms true rendering advancements as far as I'm aware. Feel free to correct me on that but it seems purely more polys, bigger textures. Nice, but not revolutionary. I would rather include FarCry as the first game to make good use of PS2.0 but its not really revolutionary either and PS2.0 use is still limited. Very pretty game nonetheless.

HL2/Source does make large use of shaders but I don't see its renderer being particularly advanced compared to say the CryEngine. Its strength is in other areas and I wouldn't really include it when talking about graphics but I know many people disagree on that :)

UE3: Not unified lighting or shadowing!!! The strength of that renderer actually seems to me to be that it uses every trick known to man to get the highest quality frames it can. It still has precomputed lighting (radiosity) as well as realtime perpixel lighting, it uses several shadowing techniques etc... Its impressive but like FarCry I can't think of anything that it does that really sets it apart (maybe now but by the time its released most of the techniques will have been used extensively). It just does everything it does very well and combines a huge amount of techniques.
 
Back
Top