id Tech 2

id Tech 2

Le id Tech 2 est un moteur de jeu vidéo développé par id Software. Il succède à l'id Tech 1 utilisé pour le jeu Doom. Initié pour le jeu Quake (1996) et amélioré pour le jeu Quake II (1997). Il a selon son évolution successivement été désigné Quake engine, puis Quake II engine, et en 2007 id Software renomme sa gamme de moteurs, et cette version prend le nom définitif de id Tech 2. L'article traite des deux versions (pour Quake et Quake II), versions qui ont énormément de code en commun.

Sommaire

Historique

Arbre généalogique des différents moteurs id Tech et des jeux phare.

Les bases du id Tech 2 ont été créées en 1996 avec le Quake engine pour le jeu Quake. John Carmack y réalisa la grosse partie du travail de programmation, avec l'aide de Michael Abrash, un spécialiste des optimisations algorithmiques et assembleur.

La même année, le code de la partie réseau, alors uniquement adaptée aux faibles latences des réseaux locaux, est entièrement revue pour fonctionner sur un réseau moins fiable et plus lent qu'est Internet. C'est la branche nommée QuakeWorld (décembre 1996), réalisée par John Carmack avec l'aide de John Cash et de Christian Antkow.

Le moteur initial de Quake réalise tout le rendu de manière logiciel. John Carmack expérimente plusieurs exécutables dédiés supportant différentes accélérations matérielles[réf. nécessaire] (par exemple VQuake, pour supporte la puce Vérité 1000 de Rendition de la carte 3D Blaster), puis en fin janvier 1997 réalise un support OpenGL générique (GLQuake), alors supporté par quelques cartes[réf. nécessaire] (dont la Voodoo de 3dfx).

Fin 1997, Quake II est publié. Le Quake II engine résulte principalement de la convergence du code des différentes branches[réf. nécessaire]. Des retouches structurelles sont apportées, dont la scission des différents aspects du moteur en plusieurs bibliothèques dynamiques séparant par exemple la logique propre au jeu du reste du moteur[réf. nécessaire].

Les différentes versions sont libérées successivement sous GPL en 1999 (Quake engine)[1], puis en 2001 (Quake 2 engine)[2],[3].

En 2007 id Software renomme sa gamme de moteurs, et formellement le Quake II engine prend le nom de id Tech 2, et les autres versions intermédiaires depuis le Doom engine (id Tech 1) sont retirées de la gamme.

Technique

Arbre BSP

Les décors sont découpés selon un arbre BSP (Binary space partitioning) : une hiérarchie de plan subdivise l'espace en deux moitiés complètement séparées, les triangles intersectant ces plans étant découpés. Des plans sont également introduits le long des murs extérieurs de la carte. Les sous-zones ainsi définies par les plans sont appelées les Leaf : ce sont elles qui contiennent les triangles du décor.

Il est facile de savoir récursivement de quel côté d'un plan un point (ici la caméra) est, et de trouver dans quel leaf elle se situe. On en récupère la liste des leafs visibles. En suivant les plans de l'arbre BSP découpant le monde, on peut avoir un tri parfait des leafs du plus proche au plus éloigné de la caméra.

Brush CollisionMap

Un assemblage de solides convexes ( "brushes" ) est stocké dans le bsp et permet de calculer les collisions entre les objets et l'architecture.

Potentially Visible Set

Pour optimiser le calcul de l'occlusion, un outil précalcule, par clipping de projections de portails, pour chaque leaf quels autres leafs sont visibles.

Rendu par GEL

Cette technique (nécessaire pour la première version qui ne passait pas par la 3d hardware) finalise le calcul de l'occlusion au pixel près.

Pour ne pas afficher les parties de murs cachées par un mur plus proche, une Globel Edge List est utilisée : elle stocke la liste des bords de tous les triangles déjà affichés, et chaque nouveau triangle est "clippé" (découpé) par ces segments : seuls les parties visibles de ces triangles sont ensuite affichées. D'autres algorithmes pour avoir le même résultat existent, mais avec des couts différents : Z-buffer (ralentissait trop les prototypes de Quake), S-Buffer (Scanline Buffer) et C-Buffer (Coverage Buffer) (qui scalent mal avec la résolution de l'écran).

Textures, Surface Cache

Les murs sont affichés avec une texture de base et une lightmap. Pour ne pas tout afficher deux fois, une Surface est générée en mélangeant la texture et la lightmap utilisées par un mur.

Les Surfaces sont stockées dans un cache, afin de réutiliser celles précédemment calculées, et de les libérer si elles ne sont plus utilisées.

Des Surfaces plus petites sont générées pour les murs plus lointains en utilisant les mipmaps des textures (les lightmaps étant déjà en basse résolution), afin d'économiser de la mémoire et d'éviter un phénomène de crénelage/pixelisation des textures vues de trop loin.

ZBuffer et personnage

Pendant l'affichage des décors, un Z-buffer est également rempli. Il ne sert pas pendant le rendu du décor, mais pendant le rendu des personnages et autres objets 3D dynamiques, afin de les masquer par le décor quand nécessaire.

Vus de loin, les personnages ne sont pas affichés en 3D mais par un système de voxels : gros point dont la couleur, uniforme, vient de la texture du personnage.

Éclairage dynamique

Les personnages sont éclairés uniformément, par une couleur qui dépend de leur position ; cette couleur provient d'une structure stockant l'éclairage ambiant en 3D. (="lightvol")

Affichage des triangles

Le rendu bas niveau des triangles est écrit en assembleur. Il utilise la FPU pour tous les calculs de correction de perspective et d'interpolation des coordonnées de texture, à cause de la quantité limitée de registres entiers.

Jeux notables

Origines et jeux issus de Quake

Liste de jeux notables utilisant le moteur, ou une version retouchée, du jeu Quake[4] ou Quake II[5]. Ne sont pas listé ici les mods, les versions du moteur ont suscité l'apparition de centaines de mods.

  • Quake (1996, Quake engine)
  • QuakeWorld (1996)
  • Malice (Quake engine)
  • Shrak (Quake engine)
  • Quake Mission Pack 1: Scourge Of Armageddon (Quake engine)
  • Quake Mission Pack 2: Disolution Of Eternity (Quake engine)
  • X-Men: The Ravages of Apocalypse (Quake engine)
  • Abyss of Pandemonium (Quake engine)
  • Q!Zone for Quake (Quake engine)
  • AfterShock for Quake (Quake engine)
  • Dark Hour (Quake engine)
  • Eternal War (Quake engine)
  • Half-Life (1998, GoldSrc)
  • Sin (1998, Quake II engine)
  • Hexen II (1997, Quake II engine)
  • Quake II (1997, Quake II engine)
  • Daïkatana (2000, Quake II engine)
  • Anachronox (2001, Quake II engine)
  • Soldier of Fortune (2000, Quake II engine)
  • Nexuiz (2005-, DarkPlaces)
  • UFO: Alien Invasion (2006-, Quake II engine)
  • Sin: Wages of Sin (Quake II engine)
  • Kingpin (Quake II engine)

Moteurs libres dérivés

Arboresence des moteurs dérivés de l'idTech 2 et de quelques jeux l'utilisant.
En gris, ceux sous licence propriétaire et en vert, ceux sous licence libre.

Le 21 décembre 1999, John Carmack de id Software libère le code source du moteur Quake sur Internet sous les termes de la licence publique générale GNU, permettant aux programmeurs de modifier le moteur et d'y ajouter de nouvelles fonctionnalités. Rapidement les premières versions modifiées du moteur ont commencé à circuler sur Internet.

Certaines de ces modifications sont disponibles sur des Live CD. Ces derniers rassemblent un système d'exploitation libre ainsi que le client QuakeWorld. Il faut cependant recopier certains fichiers originaux du CD de Quake (pak0.pak et pak1.pak) sur ces Live CD pour que ces derniers soient totalement opérationnels. En effet, le moteur QuakeEngine est passé dans le domaine public alors que les éléments graphiques (textures, graphismes...) sont restés la propriété d'ID Software.

DarkPlaces

DarkPlaces (en)[6] est une modification du moteur qui améliore le code réseau (netcode), ajoute un support des cartes de Quake III, a un moteur de rendu complètement refait (éclairage et ombres calculées en temps réel, bump mapping, gestion des shaders OpenGL, etc.), un navigateur de serveur intégré et ajoute le support de l'Ogg Vorbis.

Il se base sur la version d'Id Tech 2 qui a été libéré par Id Software et est compatible Linux, Mac OS X et Windows. Il est notamment utilisé par Nexuiz.

Il est développé par Forest Hale, dit "LordHavoc", ainsi qu'une communauté de développeurs.

ezQuake

ezQuake (en)[7] est une version modifiée du moteur FuhQuake. Compatible MacOs et FreeBSD, il supporte le QuakeTV et le multiview, amène des options supplémentaires pour les serveurs, de nouveaux menus et intègre un lecteur mp3, un navigateur de serveurs et de parties enregistrées.

ProQuake

ProQuake (en)[8] est basé sur le code libéré par Id. Ce mod, sous licence GPL, se focalise sur l'amélioration du mode multijoueur (précision des tirs, etc.) et de la protection anti-cheat mais il permet aussi:

  • de se connecter à travers un réseau NATé et donc que plusieurs personnes peuvent se connecter avec la même adresse IP (64 maximum[9]).
  • d'être protégé contre les attaques DoS.
  • d'enregistrer des démos.
  • de jouer sous Linux, Windows (98, Xp et Vista).

Il est développé par J.P. Grossman (dit "Mephistopheles"). La dernière version (3.50 du 21 septembre 2002[8]) est compatible avec Quake et NetQuake, mais pas avec QuakeWorld.

Telejano

Telejano[10] est une modification dérivée du TomazQuake engine qui ajoute beaucoup de nouveaux éléments comme un moteur de particules, des effets de lumières, des étincelles à l'impact des balles, des explosions ; pour l'eau : des effets de vagues et de caustique ; des trainées de fumée derrière les boules de magma et les roquettes ; mais aussi du sang plus réaliste, du brouillard. Tout cela sans aucune modification des cartes originales.

La dernière version (annoncée comme la version final du projet) est la 8.01 du 7 janvier 2005.

Autres moteurs connus

  • Tenebrae[11] - un dérivé, le premier à ajouter un éclairage et des ombres calculées en temps réel sur le Quake engine.
  • Tomaz Quake[12] - l'une des premières modification du moteur à se retrouver sur le net.
  • Twilight Engine - le plus rapide des moteurs basé sur Quake engine, cette modification privilégie la performance sur les ajouts fonctionnels.

D'autres moteurs

Il existe bien sûr bien d'autres modifications du moteur:

  • ezQuake[13]: Ajoute des effets de particules, d'eau, de brouillard, le support de la QuakeTV, un player MP3 intégré...
  • FitzQuake[14]: Principalement de la correction de bugs et de l'ajout d'effets (skyboxes, brouillard, lumières colorées)
  • FuhQuake (en): basé sur ZQuake auquel il a ajouté le support des textures 24 bits, des lumières statiques, ainsi qu'un début de système anti-cheat.
  • JoeQuake[15]: basé sur ZQuake et FuhQuake, il se focalise principalement sur la lecture de demo. Il supporte les textures 32 bits, les animation douces et les lumières colorées.
  • MacGLQuake[16]: cherche à porter GLQuake et GLHexen 2 sur MacOS.
  • Pocket Quake[17]: est un portage de Quake sur PocketPC.
  • QuakeForge[18]: Cherche à améliorer le jeu (par une protection anti-cheat) et à le rendre à accessible à un maximum de personnes.
  • ZQuake[19]: Se focalise sur l'amélioration des performances, de la stabilité et de la compatibilité et de rendre le gameplay plus fluide. Il est compatible avec NetQuake et QuakeWorld.

Liens externes


Notes et références

  1. (en) id Software's Technology Licensing Program sur http://www.idsoftware.com/. Consulté le 12 septembre 2008. « Many people are aware that the original QUAKE source code was publicly released by id in 1999 under the GNU General Public. »
  2. (en) Slashdot, 22 décembre 2001, Quake 2 source code released under the GPL
  3. (en) id Software's Technology Licensing Program sur http://www.idsoftware.com/. Consulté le 12 septembre 2008. « [..] as of December, 2001 this critically acclaimed engine is also available under the GNU General Public License. »
  4. (en) 3D Engine: Quake sur http://www.mobygames.com/home. Consulté le 5 septembre 2008
  5. (en) 3D Engine: id Tech 2 sur http://www.mobygames.com/home. Consulté le 5 septembre 2008
  6. (en) LordHavoc's DarkPlaces Quake. Consulté le 6 septembre 2008
  7. (en) ezQuake. Mis en ligne le 26 mais 2007, consulté le 22 octobre 2009
  8. a et b (en) ProQuake. Consulté le 6 septembre 2008
  9. (en) J.P. Grossman, « Readme de la version 3.50 ». Mis en ligne le 21 septembre 2002, consulté le 6 septembre 2008
  10. (en) Telejano, « Telejano ». Consulté le 5 septembre 2008
  11. (en) C. Hollemeersch, « Tenebrae ». Consulté le 5 septembre 2008
  12. (en) Tomaz, « Tomaz' Corner ». Consulté le 5 septembre 2008
  13. (en) ezQuake. Mis en ligne le 26 mai 2007, consulté le 5 septembre 2008
  14. (en) John Fitzgibbons, « FitzQuake ». Consulté le 5 septembre 2008
  15. (en) Jozsef, « JoeQuake ». Consulté le 5 septembre 2008
  16. (en) MacGLQuake. Consulté le 5 septembre 2008
  17. (en) Pocket Quake. Consulté le 5 septembre 2008
  18. (en) QuakeForge. Consulté le 5 septembre 2008
  19. (en) ZQuake. Consulté le 5 septembre 2008

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article id Tech 2 de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Tech N9ne discography — Tech N9ne discography Tech N9ne at release signing for Everready (The Religion) on November 6, 2006 Releases ↙Studio albums …   Wikipedia

  • Tech N9ne — Surnom Tecca Nina, The Killa Clown, T 9, Kansas City King Nom Aaron Dontez Yates Naissance 8 novembre 1971 Kansas City (Missouri) Activité principale Rappeur, parolier, producteur exécutif …   Wikipédia en Français

  • Tech Squares — is a square and round dance club at the Massachusetts Institute of Technology. It was founded in 1967 and is still holding dances today. [ [http://www.mit.edu/ tech squares/ Official Tech Squares web site] ] Tech Squares dances high energy modern …   Wikipedia

  • Tech Mahindra — Limited Type Public (BSE: 532755) Industry IT ser …   Wikipedia

  • Tech Triumph — is the fight song of Virginia Tech. It was composed in 1919 by Wilfred Pete Maddux (class of 1920) and Mattie Eppes (Boggs).ComposersWilfred Preston ( Pete ) Maddux, a trombone and baritone player in the Virginia Tech Regimental Band (member of… …   Wikipedia

  • Tech trance — is a sub genre within Electronic Dance Music that draws upon the Techno and Trance genres as the name suggests. Tech Trance was pioneered by Oliver Lieb in the mid 90 s. Other early Tech Trance producers are Humate, Chris Cowie and Marmion. Tech… …   Wikipedia

  • Tech — may refer to:* an abbreviation for technology, and terms that are derived from it ** technical support ** techno music *a technical problem, in airline jargon e.g. the plane s gone tech *Tech 2 (or Tech II), an electronic On Board Diagnostics… …   Wikipedia

  • Tech house — Tech house, like progressive house, represents a fusion of house and techno. However, whereas progressive house tends to incorporate atmospheric, ethereal, almost ambient sounds and is often mixed to varying degrees with trance and progressive… …   Wikipedia

  • Tech Pacific — is an Asian Pacific IT wholesale distributor with offices throughout Australia, New Zealand, Singapore, Malaysia, Thailand, India and Hong Kong.Tech Pacific was founded by Jim Kennedy in Melbourne, Australia in 1985 as a boutique distributor of… …   Wikipedia

  • Tech-Com — is a fictional organization of human survivors of Judgement Day in the Terminator series, who are dedicated to defending other human survivors to fight and defeat Skynet. Tech Com may also be heard as The Human Resistance or The Resistance… …   Wikipedia

  • Tech Gate Vienna — Tech Gate Tower Der Tech Gate Tower des Tech Gate Vienna …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”