QII_Tech_HERO_1920x870.pngquake_ii_box_front.jpg

Quake II

Buy Game
Quake II
10 août 2023

Levez le voile sur toutes les améliorations techniques du nouveau Quake II

quake_ii_box_front.jpg

Quake II

Buy Game

La version remasterisée de Quake II a été rendue possible par l'ajout de multiples modifications “sous le capot” du jeu.

La plupart de ces ajouts concernent des techniques modernes comme les ombres dynamiques, mais d'autres sont des améliorations dues à la réitération de techniques utilisées dans la version de 1997.

Alors que le gameplay lui-même a été préservé à l'identique de ce qu'il était dans les années 90, nous avons décidé de vous présenter un inventaire des principales améliorations et collaborations techniques auxquelles nous avons eu recours pour faire découvrir Quake II à une nouvelle génération de joueurs. Que vous soyez un moddeur acharné, un enthousiaste du rétrogaming ou que vous ayez simplement envie de savoir ce que cette nouvelle version de Quake II a de particulier, cet article est pour vous !

Outils de compilation de cartes

De même qu'en 1997, la plupart des effets de lumière de Quake II sont intégrés dans le fichier BSP lors de la compilation. Les éclairages sont précalculés par l'outil d'éclairage et un pack de textures des seuls éclairages est enregistré dans le fichier BSP.

Nous avons fait équipe avec deux contributeurs d'un outil très populaire, ericw-tools, Eric Wasylishen et Jonathan Barkley, qui nous ont aidés à améliorer le support pour les BSP de Quake II. Nous sommes également allés plus loin que ce que permettait le jeu de base afin d'aboutir à de meilleurs effets de lumière aussi bien pour les cartes originales que les cartes d'utilisateur.

L'intégration des lumières reste un processus dépendant entièrement du processeur qui peut être effectué sur des machines dépourvues de carte graphique. Lors de l'éclairage des cartes originales sur les ordinateurs de 1997, l'intégration finale pouvait prendre plusieurs heures, voire nécessiter toute la nuit. Grâce à une efficacité par mégahertz améliorée et l'aide de plusieurs douzaines de cœurs, l'éclairage nos propres cartes avec tout le tralala moderne n'est plus l'affaire que de quelques minutes.

Amélioration de la densité luxel

Ne vous laissez pas intimider par le jargon technique : cette amélioration du système de compilation de cartes est très simple. Le jeu original éclairait le monde à un ratio de 16 pour 1, ce qui signifie que toutes les 16 unités en jeu étaient rattachées à un échantillon de lumière. Nous avons refait toutes les cartes en augmentant ce ratio à 8 pour 1, ce qui correspond à une multiplication des détails par 4. L'effet est subtil dans les zones avec beaucoup d'éclairage diffus, mais les zones inondées de lumière projetant des ombres solides en profitent beaucoup plus.

Support de grille lumineuse

Cette fonctionnalité de compilation de carte a été importée de Quake III Arena. L'une des difficultés posées par le système d'éclairage original de Quake II était que les entités étaient illuminées en fonction de leur emplacement sur le sol. Cela faisait globalement l'affaire pour les objets et les ennemis posés au sol, mais le système rencontrait des difficultés dès qu'il était question de monstres volants. Ces derniers semblaient souvent plongés dans les ténèbres lorsqu'ils étaient en l'air, par exemple parce qu'ils passaient au-dessus d'une ombre avec un angle faible ou autre chose du genre.

En plus de stocker les cartes d'éclairage, nous stockons désormais une grille voxel au sein de l'espace du monde contenant un échantillon de lumière ainsi que tous les rayons lancés dans cette zone. C'est un système assez simple qui nécessite principalement davantage des fichiers plus importants et plus d'espace mémoire, ce qui est sans doute la raison pour laquelle il n'a pas été utilisé avant Quake III Arena.

Éclairage indépendant des textures

Un autre concept importé de Quake III Arena est le stockage des cartes d'éclairage par rapport aux surfaces. Dans le Quake II original, le fait de déformer ou changer l'échelle des textures causait l'éclairage associé à se déformer ou changer d'échelle de la même façon. Désormais, les cartes d'éclairage sont stockées en fonction de la taille du pinceau utilisé plutôt que la taille de la texture.

Occlusion ambiante intégrée

L'une des premières améliorations réalisées via ericw-tools est l'ajout d'un système d'occlusion ambiante, ou “dirt mapping”, qui ajoute de la profondeur au monde en obscurcissant les coins pour exprimer le fait qu'ils reçoivent en général moins de lumière.

Phong Shading

Un outil nommé ArghRad sortit peu après la publication de Quake II. ArghRad était un outil d'éclairage amélioré compatible avec le Phong shading, une technique remontant aux années 70 permettant d'ajuster l'éclairage sur les surfaces avec un faible nombre de polygones. Cela permet de faire croire que quelque chose est arrondi sans avoir à reconstruire tout l'élément avec plus de polygones. Nos cartes améliorées utilisent cette technique dans les cas où cela s'avérait pertinent.

Matériaux translucides

Encore un changement dédié à l'amélioration des éclairages des espaces ! Les textures translucides permettent aux rayons de lumière de les traverser et de projeter une partie de la couleur de leur texture sur la surface de projection. Cela signifie que les verres colorés, les hologrammes, les terminaux et d'autres peuvent être traversés par la lumière et affecter de façon réaliste les rayons qui passent à travers eux.

Liquides éclairés

Cette fonctionnalité gagne de plus en plus d'ampleur dans la communauté des réalisateurs de cartes Quake, car c'est une énorme amélioration dans la création de cartes comportant des plans d'eau ou d'un autre liquide de n'importe quelle taille. Dans le jeu original, l'eau n'était pas éclairée du tout et apparaissait toujours à son niveau de luminosité le plus élevé. Aujourd'hui, les surfaces liquides peuvent recevoir des cartes d'éclairage comme n'importe quelle autre surface sans bloquer les rayons provenant d'en-dessous.

Graphismes

À l'époque de Quake II, la grande nouveauté était l'éclairage coloré. Aujourd'hui, une telle option peut faire sourire tant elle est basique, mais notre version remasterisée de Quake II a de quoi proposer quelques modestes améliorations à ce qui existe tout en restant fidèle à la direction artistique originale.

Animation

Les animations de Paul Steed pour Quake II ajoutaient énormément d'identité au monde. Que ce soient les saccades subtiles et les animations d'attente en passant par les bonds et les cascades complètement extravagantes, vous ne pouviez jamais savoir ce que les ennemis allaient faire. Pour la plupart d'entre nous qui avons découvert le jeu à sa sortie, la première fois qu'on a vu un garde plonger pour esquiver un tir de blaster a été un moment révolutionnaire. Mais les possibilités techniques de l'époque imposaient des limitations qui empêchaient ces animations d'atteindre leur plein potentiel.

Tout d'abord, le format de modèle MD2 ne possédait qu'une étendue limitée de possibilités pour la précision vertex, ce qui explique les effets de tremblement en particulier pour les modèles d'armes en vue première personne. Nous avons pu récupérer les fichiers d'animation originaux de la plupart des modèles du jeu et utiliser ces animations en haute résolution afin de créer des animations de squelettes pour les modèles améliorés, éliminant ainsi les tremblements.

Le passage à l'animation des squelettes a également permis de corriger certains cas où l'interpolation linéaire ne fonctionnait pas. L'exemple le plus remarquable est l'animation de mort du parasite pendant laquelle il s'agitait et se retournait si vite que l'animation d'interpolation linéaire transformait le parasite en soupe de polygone.

Cartes brillantes

Quake II a beaucoup d'écrans et de lumières dans ses textures, comme les éléments brillants sur les armes. Dans le moteur original, ces textures étaient affectées par la lumière et l'obscurité comme tout le reste. Nous pouvons désormais utiliser des cartes brillantes, c'est-à-dire un masque appliqué au-dessus de la texture et qui indique quelles zones doivent briller ou non. Cela signifie que les lumières présentes sur les ennemis brillent dans le noir et les lumières présentes sur les armes brillent, ce qui améliore les détails lumineux sur les apparences existantes.

Hauteur de brouillard

Nous avons amélioré notre support des effets de brouillard, en particulier pour les brouillards à différentes hauteurs, ce qui permet aux créateurs de cartes de préciser deux couleurs différentes. Cela passe par un effet en post-traitement plutôt qu'un volume sur la carte. Cela implique des compromis, mais c'est un excellent effet pour diversifier les espaces en tant que créateur de cartes.

Flammes de tir

Bien qu'il ne s'agisse pas d'une nouveauté technologique au sens propre, c'est un changement qui a une incidence tellement positive sur l'expérience de jeu que nous avons décidé de quand même l'inclure dans cette liste ! Les armes des joueurs comme des ennemis émettent désormais des flammes de tir lorsqu'elles sont actionnées, en plus de leurs lumières dynamiques. Cela aide les joueurs à identifier rapidement qui leur tire dessus, en particulier dans les salles très éclairées où les lumières dynamiques peuvent ne pas être aussi visibles.

Audio

Nous avons apporté des améliorations à l'audio du jeu dans notre version remasterisée de Quake II. En plus de corriger les bugs présents dans le code audio original et de relever les anciennes limites pour supporter davantage de voix grâce aux processeurs modernes plus rapides, nous pouvons désormais attacher un nom matériel à chaque texture.

L'utilité est double : tout d'abord, permettre aux traces de renvoyer le matériel de la surface touchée, ce qui fait que les bruits de pas peuvent différer d'une surface à l'autre. Ensuite, nous calculons désormais une estimation rapide de la taille et des matériaux de la pièce afin de sélectionner des préréglages de réverbération. Cela signifie que l'ambiance sonore n'est désormais plus du tout la même selon que vous vous trouviez dans un égout ou dans une pelouse verdoyante en extérieur.

Intelligence artificielle

L'IA de Quake II a subi de nombreux changements pendant le développement du jeu. Quake II devait initialement utiliser QuakeC, mais tard dans le développement, il fut décidé de passer du code interprété à une bibliothèque native. Par conséquent, il fut nécessaire de porter tout le code QuakeC existant en C et dans ce processus, l'IA fut simplifiée pour se rapprocher de celle du premier Quake. Dans cette version remasterisée, nous avons pu améliorer les bots et exposer davantage leur IA face à celle des ennemis.

Amélioration de la navigation

Nous avons exposé la plupart des fonctions de navigation des bots au DLL du jeu, permettant ainsi au jeu de gérer la planification des routes depuis et vers des points arbitraires. L'IA nécessite cependant toujours de placer manuellement des points de navigation. Nous avons initialement envisagé des options de génération de navmesh via des solutions comme Recast, avant de finalement décider que cela ne serait pas compatible avec notre agenda de développement et décidé à la place d'améliorer les outils existants pour les bots.

L'IA originale de Quake II était dotée de fonctions très basiques pour se frayer un chemin dans son environnement. Maintenant, l'IA peut se fixer comme objectif de se déplacer près de vous et planifier sa route à travers des pièces complexes avec des escaliers, ou tirer profit de raccourcis pour vous prendre par surprise.

Amélioration de la prise de décision

La prise de décision de l'IA a été améliorée et les ennemis agiront de façon plus complexe par rapport au jeu original. Les ennemis parviennent plus facilement à déterminer s'ils ont une chance de vous toucher, en particulier ceux possédant plusieurs types d'attaques.

Par exemple, un mitrailleur dont le bras mitrailleur est bloqué par un mur utilisera de préférence ses grenades plutôt que vider son chargeur dans un coin. Les ennemis choisiront parfois également de tirer en se rapprochant de vous plutôt que d'attendre d'avoir atteint leur objectif de déplacement. Ces changements nous aident à empêcher l'IA de prendre de mauvaises décisions sans adapter leur comportement.

Nouvelle IA de vol

L'IA des ennemis volants a été modifiée en profondeur pour la rendre plus naturelle, et ils décéléreront et planeront en rond désormais au lieu de marquer des arrêts brutaux. Les nuées de drones volants se rentreront dedans et rebondiront les uns sur les autres en adoptant leurs formations.

Contenu restauré

Tous ceux qui ont mis le nez dans les fichiers d'origine de Quake II y ont déniché des animations supplémentaires qui n'ont jamais été utilisées dans la version finale du jeu. Nous avons fait le tour de toutes ces animations, les avons restaurées et rajoutées dans le jeu. Par exemple, le technicien tend maintenant ses redoutables griffes pour annoncer une embuscade et le berserker est encore plus redoutable qu'avant grâce à son attaque sautée.

Le parasite a également connu plusieurs modifications pour le rendre plus amusant à affronter. Sa trompe est désormais un projectile qui peut être esquivé et se plantera dans un mur. Nous avons ajouté cette mécanique afin que le parasite puisse utiliser son animation de tirer et de se retourner, puisqu'il reste vulnérable après une attaque ratée.

Bots

Voici quelques-unes des nouvelles fonctionnalités des bots dans la version remasterisée de Quake II :

  • Les bots peuvent atteindre des zones difficiles d'accès comme la Méga Santé de The Edge en effectuant un rocket jump.
  • Toutes les armes, tous les objets et pouvoirs du jeu sont compris et utilisés à bon escient.
  • Tous les ennemis sont compris et seront attaqués si hostiles.
  • Les bots peuvent sauter, s'accroupir, emprunter les ascenseurs et plateformes, utiliser les échelles, déclencher les pièges pour attraper leurs ennemis et éviter eux-mêmes les pièges.
  • Les commandes de haut niveau du DLL du jeu permettent aux moddeurs d'ordonner aux bots où aller et ce qu'ils peuvent faire.
  • Ajoutez de nouveaux objets, armes et ennemis dans votre mod et ajoutez simplement une entrée dans un fichier texte pour permettre aux bots de les voir et les comprendre (plus d'infos ci-dessous)

Bots alimentés par données pour support de mods

Les bots ont été conçus afin d'être compatibles rapidement et le plus simplement possible avec les mods via toute une compilation de fichiers de données expliquant quelles entités les concernent et comment ces dernières fonctionnent. Pour un créateur de mod, c'est aussi simple que de créer ses propres fichiers de définition spécifiques pour ses propres armes, objets, monstres, etc.

La liste des fichiers disponibles ainsi qu'un exemple des fichiers d'objets se trouve ci-dessous :

Amélioration de l'éditeur de navigation

La version remasterisée de Quake II vous permet de configurer la navigation de n'importe quelle carte rapidement grâce à des infos et commentaires utiles dispensés par l'éditeur. Le fichier NAV créé par l'éditeur est enregistré sur un fichier séparé que vous pouvez partager dans votre mod ou avec vos amis.

Amélioration des outils de débugage

Divers outils de débugage sont disponibles, vous permettant de débuguer un bot spécifique et de lui donner des ordres ou voir son raisonnement.

Ces outils de débugage vous permettent de :

  • Afficher des informations au sujet de l'état général du bot, ses objectifs, etc.
  • Afficher l'état actuel du système de comportement du bot
  • Afficher des informations au sujet du mode de jeu et des objets/entités dont le bot se soucie
  • Donner des objectifs de déplacement dans le monde aux bots afin de tester la navigation
  • Afficher le champ de vision des ennemis et leur cible d'attaque actuelle
  • Afficher l'état actuel du système d'armes du bot et son inventaire

Lignes de débugage

Vous pouvez désormais extraire des éléments primitifs simples du code du jeu. Ces éléments vous permettent d'extraire des éléments comme l'emplacement d'une entité, du texte du monde ou même la direction dans laquelle quelque chose se déplace, autant d'éléments utiles pour le débugage.

Éléments primitifs de débug disponibles :

  • Ligne
  • Point
  • Cercle
  • Limites
  • Sphère
  • Texte de monde orienté (texte qui s'oriente toujours de lui-même dans le sens de la vue du client local)
  • Texte de monde statique
  • Cylindre
  • Rayon

data.images.authors.idsoftware.jpg

id Software