Doom!

Doom!

Ma voi ve lo ricordate Doom?

E’ un gioco che fu pubblicato nel 1993 e che ebbe un enorme successo. Non riesco nemmeno a ricordare quanto tempo spesi davanti al monitor del computer per giocarci e giocarci ancora.

Secondo fu un titolo rivoluzionario. A quei tempi il termine FPS nemmeno esisteva e Doom arrivò subito dopo un altro titolo incredibile di ID Software, Wolfenstein 3D.

Doom è un prodigio dal punto di vista della programmazione. Ci sono incredibili leggende metropolitane che sono nate riguardo lo sviluppo del gioco.

Se ne volete ripercorrere la storia ecco un video di John Romero che parla della genesi e dello sviluppo del gioco. Da vedere!

Ci sono degli aneddoti incredibili in questo video. Chi si ricorda del formato di file .WAD che descriveva l’ambiente di gioco, conteneva gli asset, la musica, gli effetti speciali e via discorrendo? John Romero dice che deriva da “Where’s All the Data?”. Fantastico. Si vede quando qualcuno si diverte a fare il lavoro che fa.

Pensare che questo genere di gioco girasse su una delle macchine di quei tempi è incredibile. Programmatori con i fiocchi.

Piuttosto famoso è il tema della funzione custom che calcola la radice quadrata di un numero. Operazione molto onerosa dal punto di vista della sua implementazione standard. Per questo motivo ID Software scrisse una funzione custom per calcolare in maniera molto veloce una approssimazione della radice quadrata di un numero.

float Q_rsqrt( float number )
{
 long i;
 float x2, y;
 const float threehalfs = 1.5F;

 x2 = number * 0.5F;
 y = number;
 i = * ( long * ) &y; // evil floating point bit level hacking
 i = 0x5f3759df - ( i >> 1 ); // what the fuck? 
 y = * ( float * ) &i;
 y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
//	y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

 return y;
}

Ci sono i commenti originali!

Questo qui sopra è il codice originale. Se non siete dei programmatori non vi dirà molto. Secondo me è un diamante.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Commenti
Newest
Oldest Most Voted
Inline Feedbacks
View all comments