Here Im mostly asking about PC games, as the full 3d era in console gaming was pretty much started with the PS1 launch (December 1994) and the N64 launch (September 1996).
Case in point is two of my favourite games, Star Wars Dark Forces (February 1995), and Dark Forces 2 (October 1997), pretty much the same formula, but totally different technical capabilities.
Dark Forces was solidly lumped in with the Doom era of games, being 2.5D. Basically the environment was 3D, enemies were rendered by a 2d billboard sprite, and for Dooms case, all levels were essentially on a 2D grid, with the appearance of raised ceilings and uneven floors essentially kludged into the engine. Dark Forces slightly expanded on this by somehow adding in the ability to have multiple levels (is it only 2 different vertical levels or more?) and the ability to pan looking up and down ([although this again seems to have been a hotfix to an inherent issue in raycasting engines](https://en.wikipedia.org/wiki/File:Camera_Rotation_vs_Shearing.gif)).
So then a little under 3 years later Dark Forces 2 is released by the same publisher, you can do pretty much everything you can in a normal game engine, look in any direction, completely 3d environments, and the graphics still look passable even now.
I get that there are some technical hurdles to cover between 2D games and full 3D, particularly without a graphics card (first hitting the market in 1999) to reduce the performance issues with rendering only what is in view (occlusion I think?). What I dont get is how the technical issues were solved so quickly between 1995 and 1997, and in particular why the 2d grid necessity went away so quickly.
In: Technology
Doing true 3D polygons requires a lot of floating point operations (the PS1 did use intermediate integer shortcuts on top of dedicated floating point hardware which is why PS1 games have that distinctive warped perspective and shimmering) but in 1995 the target for PC games was still the 486. The fact that the makers of Dark Forces demanded a whole 8MB of RAM when there were still many people with only 4MB drew some interesting complaints at the time.
Unfortunately the big performance difference between the existing base of 486 users and the new Pentium adopters was the processor’s floating point performance. That’s why Quake (1996) required a 75Mhz Pentium and even on a 100Mhz 486 would run at about 10fps (I know because I only had the 486 at home so it was easy to compare just how big a difference the Pentium’s floating point unit made). So the two advances that allowed for 3D games where processors with strong floating point performance (Pentiums) and dedicated accelerators cards that could do many floating point operations in parallel (even better than a Pentium).
By comparison 2.5D games required no floating point operations and could use small integer based lookup tables. 2.5D games are based on a very simple ray casting. For each vertical line on the screen the game projects a ray along the 2D overhead grid until it hits a wall. It then takes the distance to the wall to determine which scale lookup table to use and draws an appropriate vertical strip of pixels taken from that walls texture, which unlike 3D texturing aren’t from arbitrary points but rather a simple vertical line using that lookup table to know when the duplicate (stretch) or omit pixels to draw it at the correct scale.
Latest Answers