# Wolfenstein 3D engine

Il Wolfenstein 3D engine (noto anche come id Tech 0) è un motore grafico sviluppato, per la maggior parte, da John Carmack di id Software. Fu utilizzato per la prima volta nel gioco Wolfenstein 3D del 1992, e in seguito utilizzato in licenza da altre compagnie. Il codice sorgente è stato reso disponibile il 21 luglio del 1995, e in seguito sono stati realizzati alcuni port atti a migliorarne le prestazioni.

## Storia
### Creazione

Il motore grafico è stato scritto da John Carmack, durante i primi mesi di id Software, nel 1991. Le intenzioni di id furono di rendere il motore ottimizzato su Intel 80286, con il supporto per lo standard all'epoca più diffuso, che era EGA; solo successivamente sarebbe stato aggiornato per funzionare anche su VGA. Un prototipo, privo di texture mapping, venne usato per Hovertank 3D, e una versione più evoluta (ma sempre a 16 colori) per Catacomb 3-D. Rispetto ad altri motori grafici della stessa epoca, come quello tecnicamente superiore di Ultima Underworld: The Stygian Abyss, il W3D engine era notevolmente più veloce, e non necessitava di hardware particolarmente potente per funzionare.

### Eredità

Il W3D engine ha avuto il suo peso e la sua importanza, sia nella storia dei videogiochi che in quella della computer grafica. Da questo motore sarebbero stati sviluppati infatti il Doom Engine, Quake engine e successivamente l'id Tech 2, avvicinando sempre di più i videogiochi alla rivoluzione della tridimensionalità sfociata da metà anni 90 in poi. IGN ha inserito Wolfenstein 3D nella lista dei 100 migliori sparatutto, all'11º posto; ritenendo, il passaggio dal 2D allo pseudo-3D del motore grafico, una vera "metamorfosi" epocale e direttamente o indirettamente responsabile della nascita dei successivi sparatutto in prima persona.

## Caratteristiche

Scritto principalmente in assembly, e in minima parte anche in linguaggio C, restituisce un rendering 2.5D, che appare però simile al 3D, grazie all'algoritmo di ray casting. Il metodo del ray casting consiste nel mantenere primitiva la geometria digitale (un numero molto limitato di poligoni) del mondo da rappresentare; dunque non può essere utilizzato con tridimensionalità reale.
Il funzionamento del ray casting è simile a quanto accade nell'occhio umano, ma inverso: le immagini percepite dagli occhi, sono create da raggi di luce riflessi dall'ambiente circostante, che formano una figura nella retina; nel gioco Wolfenstein 3D, si verifica il contrario dato che i raggi vengono generati dalla visuale del giocatore e, man mano che si espandono nello scenario di gioco, intersecano un ostacolo creando un'immagine pseudo-3D. La mappa in cui il giocatore si muove svolge dunque un ruolo altrettanto importante: in origine il livello è bidimensionale, costruito da celle texturizzate a 64×64, quando sulla mappa 2D, viene rivelata la posizione del giocatore e la sua visuale, il gioco restituisce un'immagine pseudo-tridimensionale, con blocchi o "cubi" da 64×64×64. Essendo perciò, di partenza, un motore comunque basato sulla bidimensionalità, la visuale non può essere mossa sull'asse Y del sistema di riferimento cartesiano - è possibile infatti muovere il cono visivo solo sull'asse X, da destra a sinistra o viceversa.

## Giochi che utilizzano il motore

* Hovertank 3D (1991, versione preliminare)
* Catacomb 3-D (1991, versione preliminare)
* Wolfenstein 3D (1992)
* Spear of Destiny (1992)
* Blake Stone: Aliens of Gold (1993)
* Corridor 7: Alien Invasion (1994)
* Super 3D Noah's Ark (1994)
* Operation Body Count (1994)
* Blake Stone: Planet Strike (1994)
* Rise of the Triad - versione pesantemente modificata (1994)