Quake - Game Engine


Quake popularized several major advances in the 3D game genre: it uses 3-dimensional models for players and monsters instead of 2-dimensional sprites; and the world in which play takes place is created as a true 3-dimensional space, rather than a 2-dimensional map. Some previous 3D games, such as Duke Nukem 3D, Doom and Wolfenstein 3D used some mathematical tricks to simulate the 3-dimensional world. This allowed a true 3D view, but was so restricted that only looking straight ahead would give a sense of 3 dimensions.

Reducing 3D complexity to increase speed

Quake - Game Engine

Quake was the first true 3D game to use a special map design system that preprocessed and pre-rendered the 3D environment to reduce the load when playing the game on the 50-75 MHz CPUs of the time. The 3D environment in which the game takes place is referred to as a map, even though it is three-dimensional in nature rather than a flat 2D space. The map editor program uses a number of simple convex 3D geometric objects known as brushes that are sized and rotated to build the environment. The brushes are overlapped in order to create an enclosed, empty, volumetric space, and when the design is complete the map is run through the rendering preprocessor. The preprocessor is used to locate two types of empty space in the map, the empty space enclosed by brushes where the game will be played, and the other empty space outside the brushes that the player will never see. The preprocessor then strips away the back-faces of the individual brushes which are outside the game-space, leaving only the few polygons that define the outer perimeter of the enclosed game space.

It was possible to edit a processed map by opening it in a special vertex editor and editing the raw vertex data, or to add or remove individual triangle faces. Though difficult, this technique was occasionally used by cheaters to create windows in walls, to see normally hidden enemies approaching from behind doors and walls, and resulted in an anti-cheat mechanism used in recent 3D games that calculates a checksum for each file used in the game, to detect players using potentially hacked map files.

Once the map had been pruned of excess faces that the player inside will never see anyway, the polygon count can be reduced by 50% to 80% compared to an original unprocessed map. On the 50-75 MHz PCs of the time, it was common for this pruning step to take many hours to complete on a map, often running overnight if the map design was extremely complex.

Hardware 3D acceleration

Quake - Game Engine

Quake was also one of the first games to support 3D hardware acceleration. While initially released with only software rendering, John Carmack created a version of the Quake executable that took advantage of Rendition’s Vérité 1000 graphics chip. OpenGL support was soon added in the form of the GLQuake executable for Windows 95 and higher. Many believe that this kick-started the independent 3D graphics card revolution, “GLQuake” being the first application to truly demonstrate the capabilities of the 3dfx “Voodoo” chipset at the time. The only two other cards capable of rendering GLQuake were a professional (very expensive) Integraph 3D OpenGL card, and, later, the PowerVR cards.

Impact on modern game design

Quake - Game Engine

Nearly all the games created after Quake have used this 3D preprocessing optimization, which enhanced the speed of the game on a personal computer or gaming console. 3D games are therefore able to push the limits of visual styles and effects because so much excess modelling data was stripped out before the end-user ever saw the game.

In this way, most games are significantly different from professional 3D CAD and design problems, where there is no time available to do preprocessing between an engineer making a change and seeing it on the screen. Nothing can be thrown away to increase the rendering speed of a 3D engineering model, since any part of the design can change at any moment. For this reason, professional 3D graphics cards are significantly more expensive and powerful than the 3D cards used in home computers simply for playing games, because the professional 3D card needs far greater processing power to deal with the full complexity of an un-preprocessed 3D render space.