Nascita |
20 agosto 1970 Roeland Park ( Kansas ) |
---|---|
Nazionalità | Americano |
Casa | Area metropolitana di Kansas City |
Formazione |
Università del Missouri presso Kansas City Shawnee Mission East High School ( a ) Raytown South High School ( a ) |
Attività | CTO , ingegnere aerospaziale , programmatore , informatico , ingegnere , uomo d'affari , sviluppatore di videogiochi |
Coniuge | Katherine Anna Kang (da2000) |
Lavorato per | Armadillo Aerospace , Softdisk (fino al1991) , id Software (1 ° febbraio 1991 -22 novembre 2013) , Oculus VR (da7 agosto 2013) |
---|---|
le zone | Videogioco , ingegneria spaziale e tecnologia , realtà virtuale |
Premi | AIAS Hall of Fame |
Doom , Quake , Wolfenstein 3D |
John Carmack , nato il20 agosto 1970in Roeland Park in Kansas , è un ingegnere in informatica degli Stati Uniti , anche programmatore e sviluppatore di videogiochi .
È meglio conosciuto per essere stato il capo programmatore e co-fondatore (insieme a diverse persone, tra cui John Romero ) di id Software , una società di videogiochi americana. La sua abilità nella programmazione di computer gli ha permesso di diventare una celebrità nella comunità di giocatori e sviluppatori di applicazioni grafiche e motori di videogiochi 3D .
Da quando ha lasciato id Software nel 2013, è entrato a far parte di Oculus VR come direttore tecnico , acquisito nel 2014 da Facebook .
John Carmack è dietro a molti giochi sparatutto in prima persona (FPS) rilasciati da id Software , come: Wolfenstein 3D (il primo gioco del suo genere ad avere un certo successo), Doom (riconosciuto come una rivoluzione tecnologica e un enorme successo mondiale) e Quake (il primo FPS a presentare un ambiente in tempo reale completamente 3D , inclusi oggetti e personaggi, e il primo a introdurre il gioco multiplayer tramite Internet). Ha poi guidato lo sviluppo di Doom 3 , il cui motore grafico era all'avanguardia della tecnologia quando è stato rilasciato. Il suo ultimo progetto presso id Software sta guidando lo sviluppo di Rage e del motore grafico id Tech 5 .
Nel 2001, entra a far parte della Hall of Fame della Academy of Interactive Arts and Sciences .
È, con la moglie Katherine Anna Kang , il fondatore della compagnia Armadillo Aerospace , interessata ai razzi usati per i razzi spaziali.
Il 7 agosto 2013, John Carmack diventa direttore tecnico di Oculus VR , produttore di Oculus Rift , un visore per realtà virtuale . Per un po 'mantiene anche la sua posizione in id Software. Ma il22 novembre 2013, sta sicuramente lasciando id Software per lavorare a tempo pieno per Oculus VR. Diventa una sussidiaria di Facebook inMarzo 2014.
Il successo di John Carmack si basa in particolare sulla sua capacità di trasporre in modo ottimale i migliori algoritmi e tecniche di rendering 3D su sistemi in tempo reale , rimanendo estremamente aggiornato con i nuovi sviluppi nel rendering 3D. È il più famoso sviluppatore indipendente in grado di produrre motori grafici che sfruttano al massimo i cambiamenti nell'hardware, in particolare schede grafiche per PC . Ha inventato diversi algoritmi , in particolare il Reverse di Carmack ; non è il primo ad aver scoperto questo principio ma è il primo ad averlo utilizzato in modo efficace ed estensivo.
L' Id Tech 3 (motore di rendering 3D del gioco Quake III Arena ) essendo sotto licenza GNU GPL , è possibile consultare l'intero codice sorgente di questo gioco. Tra di esso troviamo due funzioni da tempo attribuite a John Carmack e chi lo farà Si è parlato molto: uno per calcolare una radice quadrata , l'altro per calcolare una radice quadrata invertita.
Scritta in C , la funzione che calcola una radice quadrata invertita è la seguente:
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 #ifndef Q3_VM #ifdef __linux__ assert( !isnan(y) ); // bk010122 - FPE? #endif #endif return y; }Questa funzione è perlomeno particolare poiché non contiene alcun loop, coinvolge solo una serie di calcoli elementari. Tuttavia, questo fornisce approssimazioni abbastanza accettabili (dell'ordine di 10-3 ). È anche fino a 4 volte più veloce della funzione (float) 1.0/sqrt(x)ed è quindi perfetto per un videogioco.
In realtà, questa funzione si basa su un metodo tratto dall'analisi numerica : il metodo di Newton . La chiave della sua efficacia sta nell'utilizzo di una particolare costante 0x5f3759df . Questa costante esadecimale viene utilizzata come prima approssimazione e riduce notevolmente il numero di iterazioni necessarie per ottenere un'approssimazione soddisfacente. Questa costante - chiamata magia - è così notevole che una singola iterazione di Newton dà risultati sufficienti nel contesto del rendering grafico.
Da allora Chris Lomont della Purdue University ha studiato il problema. C'è una costante che fornisce migliori approssimazioni: 0x5f375a86 . Nel suo studio, Chris Lomont menziona anche il fatto che l'uso originale di questa costante potrebbe essere dovuto a Gary Tarolli, allora uno sviluppatore di nVidia .
Questa funzione è illegale in C ++ 03: i valori floatsono memorizzati nella FPU mentre gli interi sono usati dalla CPU .
Elenco dei principali videogiochi su cui John Carmack ha collaborato come programmatore, sviluppatore o direttore tecnico.
Data di rilascio | Titolo | Sviluppatore | Editor | Accreditato per |
---|---|---|---|---|
13 maggio 2016 | Doom ( riavvio ) | id Software | Bethesda Softworks | Direttore tecnico del treno, programmatore del motore del trainer, sviluppatore del trainer |
16 ottobre 2012 | Doom 3 BFG Edition | id Software | Bethesda Softworks | Direttore tecnico, programmatore di motori, sviluppatore |
4 ottobre 2011 | Rabbia | id Software | Bethesda Softworks | Direttore tecnico, programmatore di motori, sviluppatore |
28 settembre 2007 | Territorio nemico: Quake Wars | Danni da schizzi | Activision | Programmazione |
1 ° maggio 2006 | Orchi ed Elfi | Fountainhead Entertainment | Arti elettroniche | Produttore / programmatore / scrittore |
18 ottobre 2005 | Quake 4 | Software Raven | Activision, Bethesda Softworks (ripubblicato nel 2012) | Direttore tecnico |
13 settembre 2005 | Doom RPG (en) | Fountainhead Entertainment | id Software | Produttore / Programma |
3 aprile 2005 | Doom 3: Resurrection of Evil | Software nervoso | Activision | Direttore tecnico |
3 agosto 2004 | Doom 3 | id Software | Activision | Direttore tecnico |
19 novembre 2001 | Ritorno al castello Wolfenstein | id Software | Activision | Direttore tecnico |
18 dicembre 2000 | Quake III: Team Arena | id Software | Activision | Programmazione |
2 dicembre 1999 | Quake III Arena | id Software | Activision | Programmazione |
30 novembre 1997 | Quake II | id Software | Activision | Programmazione |
31 marzo 1997 | Doom 64 | Midway Games | Midway Games | Programmazione |
22 giugno 1996 | Quake | id Software | GT Interactive | Programmazione |
31 maggio 1996 | Destino finale | id Software | GT Interactive | Programmazione |
30 ottobre 1995 | Hexen: Beyond Heretic | Software Raven | id Software | Motore 3D |
23 dicembre 1994 | Eretico | Software Raven | id Software | Programmatore del motore |
30 settembre 1994 | Doom II: Hell on Earth | id Software | GT Interactive | Programmazione |
10 dicembre 1993 | Destino | id Software | id Software | Programmazione |
1993 | ShadowCaster | Software Raven | Sistemi di origine | Motore 3D |
18 settembre 1992 | Lancia del destino | id Software | FormGen | Ingegnere del software |
5 maggio 1992 | Wolfenstein 3D | id Software | Software Apogee | Programmazione |
1991 | Catacomba 3-D | id Software | Softdisk | Programmazione |
1991 | Ordina Keen in Aliens Ate My Babysitter! | id Software | FormGen | Programmazione |
15 dicembre 1991 | Ordina Keen in Goodbye, Galaxy! | id Software | Software Apogee | Programmazione |
1991 | Ordina Keen in Keen Dreams | id Software | Softdisk | Programmazione |
1991 | Cavalieri dell'Ombra | id Software | Softdisk | Progettazione / programmazione |
1991 | Rescue Rover 2 | id Software | Softdisk | Programma |
1991 | Rescue Rover | id Software | Softdisk | Programma |
1991 | Hovertank 3D | id Software | Softdisk | Programmazione |
1991 | Dave pericoloso nella villa stregata | id Software | Softdisk | Programmazione |
1991 | Dark Designs III: Retribution | Softdisk | Softdisk | Programmatore / designer |
14 dicembre 1990 | Comandante Keen in Invasion of the Vorticons | id Software | Software Apogee | Programmazione |
1990 | Slordax: The Unknown Enemy | Softdisk | Softdisk | Programmazione |
1990 | Catacomba II | Softdisk | Softdisk | Sviluppatore |
1990 | Catacomba | Softdisk | Softdisk | Programma |
1990 | Dark Designs II: Closing the Gate | Softdisk | Softdisk | Programmatore / designer |
1990 | Disegni oscuri: Bastone di Grelminar | John carmack | Softdisk | Sviluppatore |
1990 | Tennis | John carmack | Softdisk | Sviluppatore |
1990 | Wraith: The Devil's Demise | John carmack | Nite Owl Productions | Sviluppatore |
1989 | Shadowforge | John carmack | Nite Owl Productions | Sviluppatore |