John Carmack

Infos
John Carmack en 2005Prise de vue : Spaceman Spiffy John Carmack (né le 20 août 1970) est le programmeur principal et le co-fondateur (avec plusieurs personnes, dont John Romero) de la société id Software, une entreprise de développement de jeux vidéo. Son habileté en programmation informatique lui a permis de devenir une célébrité dans la communauté des joueurs. Le premier jeu développé par id Software, fut Commander Keen. John
John Carmack

John Carmack en 2005Prise de vue : Spaceman Spiffy John Carmack (né le 20 août 1970) est le programmeur principal et le co-fondateur (avec plusieurs personnes, dont John Romero) de la société id Software, une entreprise de développement de jeux vidéo. Son habileté en programmation informatique lui a permis de devenir une célébrité dans la communauté des joueurs. Le premier jeu développé par id Software, fut Commander Keen. John Carmack est à l'origine de nombreux jeux de tir subjectifs tels que : Wolfenstein 3D, Doom et Quake, qui plongent le joueur dans un univers en trois dimensions et le mettent dans la peau d'un personnage belliqueux. Plus récemment, il a développé Doom 3 dont le moteur graphique est à la pointe de la technologie actuelle. Il a inventé plusieurs algorithmes (dont le Carmack's Reverse qu'il n'est pas en fait le premier à imaginer), et il a été le premier à développer des moteurs graphiques capables d'exploiter au maximum les évolutions du matériel, en particulier des cartes graphiques pour PC, pour la génération d'images 3D en système temps réel. Quake a aussi innové grâce à la possibilité de jouer à plusieurs en temps réel, par le biais d'Internet. En 2001, il a rejoint le panthéon des développeurs (Hall of Fame) de l'Académie des Arts et des Sciences Interactifs. Amateur de fusées, il est fondateur de la société Armadillo Aerospace.

0x5f3759df

Quake 3 Arena étant sous licence 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 l'inverse d'une racine carrée. Écrite en C, la fonction calculant l'inverse d'une racine carrée est la suivante : float Q_rsqrt( float number ) 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). Elle est même jusqu'à 4 fois plus rapide que la fonction sqrt(float 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 est en fait nécessaire ! Chris Lomont de l' 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 dûe à Gary Tarolli, alors développeur chez nVidia. ==
Sujets connexes
Analyse numérique   Armadillo Aerospace   C (langage)   Carmack's Reverse   Commander Keen   Doom   Doom 3   Développeur de jeux vidéo   Fusée spatiale   Gary Tarolli   Id Software   Internet   Jeu de tir subjectif   John Romero   Licence publique générale GNU   Méthode de Newton   Programmation informatique   Quake   Racine carrée   Système temps réel   Wolfenstein 3D  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^