The godfather of First Person Shooters, Wolfenstein 3D, turns 20 years old this month. In celebration, Bethesda has released a free browser version of Carmack and company’s classic.
The browser version is available here through Bethesda’s official website. A version for iPhone, iPod Touch, and iPad called Wolfenstein 3D Classic Platinum will be available for free for a limited time. Below our a few details on the game’s once incredible engine taken from its Wiki Page.
“To render the walls in pseudo-3D, the game uses ray casting. This method emits one ray for each column of pixels, checks if it intersects a wall, and draws textures on the screen accordingly, creating a one dimensional depth buffer against which to clip the scaled sprites that represent enemies, powerups, and props.
Before Wolfenstein 3D, the technology had already been used by id Software in 1991 to create Hovertank 3D and Catacomb 3-D for Softdisk. Other games using the Wolfenstein 3D game engine or derivatives of it were also produced, including Blake Stone, Corridor 7: Alien Invasion, Operation Body Count, Super 3D Noah’s Ark, Rise of the Triad, and Hellraiser, an unreleased Color Dreams game planned for the PC and the Nintendo Entertainment System.
According to id Software programmer John Carmack, the game’s engine was inspired by a technology demo of Looking Glass Studios’ and Origin Systems’s first-person role-playing video game, Ultima Underworld: The Stygian Abyss from 1991. Carmack claimed he could make a faster renderer. In this he was successful. The Wolfenstein engine lacks many features present in the Underworld engine, such as ceiling or floor height changes, sloped floors and lighting, but it ran well on relatively weak hardware.
The secret behind engine’s performance is vertical scanline scaling algorithm. Unlike later engines and hardware rasterizers, the texture coordinate for the pixel is not calculated at runtime. Instead, a fixed set of several hundred rendering functions is generated during game startup (or viewport size change) where all memory offsets are fixed. To keep the number of these procedures small, height is quantized, which can be easily seen when player is close to the wall, but not looking at it at a right angle.”