John Carmack
John Carmack, né le à Roeland Park au Kansas, est un ingénieur en informatique américain, par ailleurs programmeur et développeur de jeux vidéo.
Directeur technique Reality Labs (en) | |
---|---|
depuis le |
Naissance | |
---|---|
Nationalité | |
Domiciles | |
Formation |
Université du Missouri à Kansas City Shawnee Mission East High School (en) Raytown South High School (en) |
Activités | |
Conjoint |
Katherine Anna Kang (depuis ) |
A travaillé pour |
Reality Labs (en) (depuis le ) Id Software ( - Softdisk (jusqu'en ) Armadillo Aerospace |
---|---|
Distinction |
Il est notamment connu pour avoir été le programmeur principal et le cofondateur (avec plusieurs personnes, dont John Romero) de la société id Software, une entreprise américaine de jeux vidéo. Son habileté en programmation informatique lui a permis de devenir une célébrité dans la communauté des joueurs et des développeurs d'applications graphiques et de moteurs 3D de jeux vidéo.
Depuis son départ d'id Software en 2013, il rejoint en tant que directeur technique la société Oculus VR, celle-ci étant rachetée en 2014 par Facebook.
En 2010, il reçoit un Game Developers Choice Award pour l'ensemble de sa carrière.
Carrière
John Carmack est à l'origine de nombreux jeux de tir à la première personne (FPS) sortis par id Software, tels que : Wolfenstein 3D (le premier jeu de ce genre à obtenir un certain succès), Doom (reconnu comme une révolution technologique et immense succès mondial) et Quake (le premier FPS à présenter un environnement totalement en 3D temps réel, y compris les objets et personnages et le premier à introduire le jeu à plusieurs par Internet). Il dirige ensuite le développement de Doom 3, dont le moteur graphique était à la pointe de la technologie lors de sa sortie. Son dernier projet chez id Software est la direction du développement de Rage et du moteur graphique id Tech 5.
En 2001, il rejoint le panthéon des développeurs (Hall of Fame) de l’Academy of Interactive Arts and Sciences.
Il est, avec son épouse Katherine Anna Kang, le fondateur de la société Armadillo Aerospace, qui s'intéresse aux roquettes utilisées pour les fusées spatiales[1].
Le , John Carmack devient directeur technique d'Oculus VR, fabricant de l'Oculus Rift, un casque de réalité virtuelle. Il conserve également pendant un temps son poste chez id Software[2] - [3]. Mais, le , il quitte définitivement id Software pour travailler à plein temps pour Oculus VR[4]. Celle-ci devient une filiale de Facebook en .
En février 2017, Carmack poursuit ZeniMax, accusant la firme de lui avoir refusé le payement des 22.5 millions $ restant pour l'acquisition de ID Software[5].
En octobre 2018, il annonce avoir trouvé un accord avec Zenimax: "Zenimax a complètement satisfait ses obligations envers moi"[6].
Le 13 novembre 2019, Carmack change de poste au sein d'Oculus de CTO Ă celui de "CTO consultant" afin d'allouer plus de temps pour son travail sur l'intelligence artificielle.
Le 19 août 2022, Carmack annonce avoir levé 20M$ pour son entreprise Keen Technologies dans le domaine de l'Intelligence Artificielle Généralisée (AGI)[7].
Le 16 décembre 2022, Carmack abandonne toute collaboration avec Mark Zuckerberg en quittant Oculus filiale du groupe Meta[8].
Un programmeur astucieux
Le succès de John Carmack repose notamment sur son habileté à transposer de façon optimale les meilleurs algorithmes et techniques de rendu 3D sur des systèmes temps réel, tout en restant extrêmement au fait des nouveautés en matière de rendu 3D. Il est le plus célèbre développeur indépendant capable de réaliser des moteurs graphiques exploitant au maximum les évolutions du matériel, en particulier des cartes graphiques pour PC. Il a inventé plusieurs algorithmes, notamment le Carmack's Reverse ; il n'est pas le premier à avoir découvert ce principe mais est le premier à l'avoir utilisé efficacement et intensivement.
L'Id Tech 3 (moteur de rendu 3D du jeu Quake III Arena) étant sous licence GNU GPL, il est possible de consulter l'intégralité du code source de ce jeu. Parmi celui-ci, on retrouve deux fonctions longtemps attribuées à John Carmack et qui auront fait beaucoup parler d'elles : l'une pour calculer une racine carrée, l'autre pour calculer une racine carrée inversée.
Écrite en C, la fonction calculant une racine carrée inversée est la suivante :
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;
}
Cette fonction est pour le moins particulière puisqu'elle ne contient aucune boucle, elle ne fait intervenir qu'une suite de calculs élémentaires. Pour autant, celle-ci fournit des approximations tout à fait acceptables (de l'ordre de 10-3). Elle est même jusqu'à 4 fois plus rapide que la fonction (float) 1.0/sqrt(x)
et se révèle ainsi parfaite pour un jeu vidéo.
En réalité, cette fonction repose sur une méthode tirée de l'analyse numérique : la méthode de Newton. La clef de son efficacité réside dans l'utilisation d'une constante particulière 0x5f3759df. Cette constante hexadécimale est utilisée comme première approximation et réduit de façon remarquable le nombre d'itérations nécessaires pour obtenir une approximation satisfaisante. Cette constante – dite magique – est si remarquable qu'une seule itération de Newton donne des résultats suffisants dans le cadre du rendu graphique.
Chris Lomont de l'université de Purdue[9] a depuis étudié la question. Il existe une constante fournissant de meilleures approximations : 0x5f375a86. Dans son étude, Chris Lomont fait également mention du fait que l'utilisation originale de cette constante serait peut-être due à Gary Tarolli[10], alors développeur chez Nvidia.
Cette fonction est illégale en C++03[11] : les valeurs float
sont stockées dans le FPU alors que les entiers sont utilisés par le CPU.
Collaborations
Liste des principaux jeux vidéo sur lesquels John Carmack a collaboré en tant que programmeur, développeur ou directeur technique.
Date de sortie | Titre | Développeur | Éditeur | Crédité en tant que |
---|---|---|---|---|
Doom (reboot) | id Software | Bethesda Softworks | Ancien directeur technique, ancien programmeur du moteur, ancien développeur | |
Doom 3 BFG Edition | id Software | Bethesda Softworks | Directeur technique, programmeur du moteur, développeur | |
Rage | id Software | Bethesda Softworks | Directeur technique, programmeur du moteur, développeur | |
Enemy Territory: Quake Wars | Splash Damage | Activision | Programmeur | |
Orcs & Elves | Fountainhead Entertainment | Electronic Arts | Producteur, programmeur, scénariste | |
Quake 4 | Raven Software | Activision, Bethesda Softworks (republished 2012) | Directeur technique | |
Doom RPG (en) | Fountainhead Entertainment | id Software | Producteur, programmeur | |
Doom 3: Resurrection of Evil | Nerve Software | Activision | Directeur technique | |
Doom 3 | id Software | Activision | Directeur technique | |
Return to Castle Wolfenstein | id Software | Activision | Directeur technique | |
Quake III: Team Arena | id Software | Activision | Programmeur | |
Quake III Arena | id Software | Activision | Programmeur | |
Quake II | id Software | Activision | Programmeur | |
Doom 64 | Midway Games | Midway Games | Programmeur | |
Quake | id Software | GT Interactive | Programmeur | |
Final Doom | id Software | GT Interactive | Programmeur | |
Hexen: Beyond Heretic | Raven Software | id Software | Moteur 3D | |
Heretic | Raven Software | id Software | Programmeur du moteur | |
Doom II: Hell on Earth | id Software | GT Interactive | Programmeur | |
Doom | id Software | id Software | Programmeur | |
ShadowCaster | Raven Software | Origin Systems | Moteur 3D | |
Spear of Destiny | id Software | FormGen | Ingénieur logiciel | |
Wolfenstein 3D | id Software | Apogee Software | Programmeur | |
Catacomb 3-D | id Software | Softdisk | Programmeur | |
Commander Keen in Aliens Ate My Babysitter! | id Software | FormGen | Programmeur | |
Commander Keen in Goodbye, Galaxy! | id Software | Apogee Software | Programmeur | |
Commander Keen in Keen Dreams | id Software | Softdisk | Programmeur | |
Shadow Knights | id Software | Softdisk | Programmeur, designer | |
Rescue Rover 2 | id Software | Softdisk | Programmeur | |
Rescue Rover | id Software | Softdisk | Programmeur | |
Hovertank 3D | id Software | Softdisk | Programmeur | |
Dangerous Dave in the Haunted Mansion | id Software | Softdisk | Programmeur | |
Dark Designs III: Retribution | Softdisk | Softdisk | Programmeur, designer | |
Commander Keen in Invasion of the Vorticons | id Software | Apogee Software | Programmeur | |
Slordax: The Unknown Enemy | Softdisk | Softdisk | Programmeur | |
Catacomb II | Softdisk | Softdisk | DĂ©veloppeur | |
Catacomb | Softdisk | Softdisk | Programmeur | |
Dark Designs II: Closing the Gate | Softdisk | Softdisk | Programmeur, designer | |
Dark Designs: Grelminar's Staff | John Carmack | Softdisk | DĂ©veloppeur | |
Tennis | John Carmack | Softdisk | DĂ©veloppeur | |
Wraith: The Devil's Demise | John Carmack | Nite Owl Productions | DĂ©veloppeur | |
Shadowforge | John Carmack | Nite Owl Productions | DĂ©veloppeur |
Notes et références
- Armadillo Aerospace FAQ
- « John Carmack joins Oculus VR as chief technology officer [updated] », sur Ars Technica (consulté le ).
- (en) Stephen Totilo, « John Carmack Has New 'Full-Time' VR Job, But Is Not Quite Gone From id », sur kotaku.com, (consulté le ).
- Sean Hollister, « John Carmack resigns from id Software to focus on Oculus VR », sur theverge.com, (consulté le ).
- (en) Wayne Manion, « John Carmack sues ZeniMax for $22.5 million », (consulté le )
- (en-US) « 'Doom' co-creator John Carmack ends legal fight with ZeniMax », sur Engadget (consulté le )
- « https://twitter.com/id_aa_carmack/status/1560728042959507457 », sur Twitter (consulté le )
- Florian Bayard, « Meta : un pionnier de la réalité virtuelle démissionne et tacle Mark Zuckerberg », sur 01net.com, (consulté le )
- (en) « Department of Mathematics », sur purdue.edu (consulté le ).
- « Origin of Quake3's Fast InvSqrt() », sur beyond3d.com (consulté le ).
- http://article.gmane.org/gmane.games.devel.algorithms/20768/
Voir aussi
Bibliographie
- David Kushner (en), Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture (en), Random House, 2003. (ISBN 0-375-50524-5)
- VF : Les Maîtres du jeu vidéo, éd. école des loisirs, 2010.