
id Tech 3 , plus connu sous le nom de moteur Quake III Arena , est un moteur de jeu développé par id Software pour son Quake III Arena . Il a été adopté par de nombreux jeux. Il était en concurrence avec l' Unreal Engine ; les deux moteurs étaient largement sous licence.
id Tech 3 est basé sur id Tech 2 , avec une grande partie du code réécrit. Son successeur id Tech 4 est dérivé d'id Tech 3, tout comme le moteur IW d' Infinity Ward utilisé dans Call of Duty 2 et les suivants.
Lors de la QuakeCon 2005, John Carmack a annoncé que le code source d'id Tech 3 serait publié sous la licence publique générale GNU v2.0 ou ultérieure, et il a été publié le 19 août 2005. Il a été initialement distribué via FTP et déplacé vers GitHub .
Caractéristiques
Graphique
Contrairement à la plupart des autres moteurs de jeu sortis à l'époque, y compris son principal concurrent, l' Unreal Engine , id Tech 3 nécessite un accélérateur graphique compatible OpenGL pour fonctionner. Le moteur n'inclut pas de moteur de rendu logiciel .
id Tech 3 a introduit des surfaces courbes basées sur des splines en plus des volumes plans, qui sont responsables de nombreuses surfaces du jeu.
La technologie graphique du jeu repose étroitement sur un système de « shaders » dans lequel l'apparence de nombreuses surfaces peut être définie dans des fichiers texte appelés « scripts de shaders ». Les shaders sont décrits et rendus sous forme de plusieurs couches, chaque couche contenant une texture, un « mode de fusion » qui détermine comment la superposer sur la couche précédente et des modes d'orientation de texture tels que la cartographie de l'environnement, le défilement et la rotation. Ces caractéristiques peuvent être facilement observées dans le jeu avec de nombreuses surfaces lumineuses et actives sur chaque carte et même sur les modèles de personnages. Le système de shaders va au-delà de l'apparence visuelle, définissant le contenu des volumes (par exemple, un volume d'eau est défini en appliquant un shader d'eau à ses surfaces), l'émission de lumière et le son à jouer lorsqu'un volume est piétiné. Afin d'aider au calcul de ces shaders, id Tech 3 implémente une fonction de racine carrée inverse rapide spécifique , qui a attiré une attention considérable dans la communauté de développement de jeux pour son utilisation intelligente des opérations entières.
Mise en réseau
id Tech 3 utilise un système de « capture instantanée » pour relayer les informations sur les « trames » de jeu au client via UDP . Le serveur met à jour l'interaction des objets à un rythme fixe, indépendant du rythme auquel les clients mettent à jour le serveur avec leurs actions, puis tente d'envoyer l'état de tous les objets à ce moment-là (la trame actuelle du serveur) à chaque client. Le serveur tente d'omettre autant d'informations que possible sur chaque trame, en relayant uniquement les différences par rapport à la dernière trame que le client a confirmée comme reçue ( codage Delta ). Tous les paquets de données sont compressés par codage Huffman avec des données de fréquence pré-calculées statiques pour réduire encore davantage l'utilisation de la bande passante.
Quake 3 possède un système de protection contre la triche intégré et relativement élaboré appelé « serveur pur ». Tout client se connectant à un serveur pur a automatiquement le mode pur activé, et lorsque le mode pur est activé, seuls les fichiers contenus dans les packs de données sont accessibles. Les clients sont déconnectés si leurs packs de données échouent à l'un des nombreux contrôles d'intégrité. Le cgame.qvmfichier, avec son potentiel élevé de modification liée à la triche, est soumis à des contrôles d'intégrité supplémentaires. Les développeurs doivent désactiver manuellement le serveur pur pour tester les cartes ou les mods qui ne sont pas dans les packs de données en utilisant le format de fichier PK3. Les versions ultérieures ont complété le serveur pur avec le support de PunkBuster , bien que tous les hooks qui y sont liés soient absents de la version du code source car PunkBuster est un logiciel à code source fermé et l'inclusion de son support dans la version du code source aurait amené tout redistributeur/réutilisateur du code à violer la GPL .
ioquake3

Ioquake3 est un projet de moteur de jeu qui vise à s'appuyer sur le code source d' id Tech 3 afin de supprimer les bugs, de nettoyer le code source et d'ajouter des fonctionnalités graphiques et audio plus avancées via SDL et OpenAL . ioquake3 est également destiné à servir de package de base propre, sur lequel d'autres projets peuvent être construits. Le moteur de jeu prend en charge le format Ogg Vorbis et la capture vidéo des démos au format .avi .
Le projet a été lancé peu de temps après la publication du code source avec pour objectif de créer une distribution de code source du moteur Quake III open source , sans bugs et améliorée, sur laquelle de nouveaux jeux et projets peuvent être basés. De plus, le projet vise à fournir un environnement amélioré dans lequel Quake III: Arena , le pack d'extension Team Arena et tous les mods populaires peuvent être joués. VoIP intégrée , le rendu stéréo anaglyphe (pour la visualisation avec des lunettes 3D) et de nombreux correctifs de sécurité.
Ioquake3 est la base de plusieurs projets de jeux basés sur le moteur id Tech 3, tels que OpenArena (imitant Quake III Arena ), Tremulous , Smokin' Guns , Urban Terror , Turtle Arena et World of Padman et des projets de moteurs de jeu tels que efport (un clone de Star Trek: Voyager – Elite Force Holomatch ), ioJedi Outcast, ioJedi Academy, ioDoom3 et OpenMoHAA . Le moteur et ses jeux associés ont été inclus dans plusieurs distributions Linux et BSD . Le moteur cMod dérivé du portage Elite Force antérieur a été utilisé pour empaqueter la version gratuite du jeu pour Windows et Linux à l'occasion du 20e anniversaire .
Le code source des moteurs Return to Castle Wolfenstein et Wolfenstein: Enemy Territory a été publié sous licence GNU GPL-3.0 ou ultérieure le 12 août 2010. Les développeurs d'ioquake3 ont annoncé le début d'autres projets de moteurs.
Le projet ioquake3 a été utilisé dans des recherches universitaires telles que le Center for Computer Research in Music and Acoustics (CCRMA) de l'Université de Stanford, Notre Dame comme base de recherche en réalité virtuelle, et le Centre for Advanced Internet Architectures de l'Université de technologie de Swinburne. Les efforts collaboratifs des chercheurs de l'Université Carnegie Mellon et de l'Université de Toronto utilisent ioquake3 comme plate-forme pour leurs recherches publiées. Les étudiants ont utilisé ioquake3 comme base pour des travaux graphiques avancés pour leurs thèses, comme le travail de Stephan Reiter qui a été remarqué dans le projet LLVM en raison de sa synthèse du moteur ioquake3, de la technique de rendu par lancer de rayons et de LLVM.
Le projet a depuis reçu des forks, tels que Quake3e, Spearmint, et vkQuake3.
D'autres moteurs dérivés incluent le moteur Daemon utilisé par Unvanquished , ainsi que des ports sources concurrents comme XreaL, Kwaak3 pour Android et Quake-3-Android-Port-QIII4A.