2 points par GN⁺ 2023-11-08 | 1 commentaires | Partager sur WhatsApp
  • L’équipe Northlight de Remedy a créé ou profondément remanié des technologies clés, de l’architecture du moteur au rendu, pour Alan Wake 2, posant les bases nécessaires pour gérer des mondes plus vastes et plus complexes
  • Le nouveau modèle d’objets de jeu basé sur ECS améliore l’efficacité mémoire et l’exécution parallèle sûre, permettant de créer des mondes plus dynamiques sur des machines dotées de nombres de cœurs CPU variés
  • Le contrôleur de personnage basé sur des voxels et le déplacement des PNJ piloté par l’animation aident les personnages à se mouvoir naturellement même dans des espaces étroits et complexes, tandis que l’outil Scattering prend en charge la création d’une végétation dense
  • Le rendu s’appuie sur un pipeline piloté par le GPU, les mesh shaders, le culling par meshlets, l’animation de végétation sur GPU, le HDR et le rendu transparent MBOIT pour traiter davantage de géométrie ainsi que les effets de brouillard et de transparence
  • La version PC exploite DLSS Frame Generation, DLSS Ray Reconstruction et le Path Traced Indirect Lighting lorsque la configuration matérielle le permet, afin d’offrir un ray tracing plus précis et plus robuste que dans Control

Le moteur Northlight et les technologies fondamentales de gameplay

  • Pendant le développement d’Alan Wake 2, Northlight a basculé vers un framework d’objets de jeu entièrement nouveau et orienté données
    • Le nouveau modèle repose sur un système entité-composant (ECS)
    • L’ECS permet un stockage efficace en mémoire ainsi qu’une exécution parallèle efficace et sûre
    • Il prend efficacement en charge des matériels cibles aux nombres de cœurs variés, ce qui permet de créer des mondes plus vastes, plus dynamiques et plus riches
  • L’outil Scattering pour le placement massif de végétation tire lui aussi parti des avantages de l’ECS
    • Il permet de placer davantage d’entités dans le monde
    • Il réduit le besoin de créer des solutions sur mesure distinctes pour la dispersion d’objets
  • Dans l’implémentation du gameplay également, l’ECS accélère les itérations
    • Il a été utilisé pour implémenter le Case Board, le storyboard visuel où Saga rassemble les preuves
    • Il devient plus facile d’ajouter ou de modifier de nouveaux systèmes et objets de jeu
    • Des gains de performances ont été constatés lors de la sauvegarde et du chargement du Case Board

Contrôle des personnages et déplacement des PNJ

  • Alan Wake 2 a conduit à repenser le contrôle des personnages dans Northlight
    • Le nouveau contrôleur de personnage basé sur des voxels permet une navigation fluide dans des environnements étroits, complexes et dynamiques
    • Les mouvements des personnages deviennent plus naturels et plus fluides
    • L’accent est mis sur la réduction des problèmes où les personnages heurtent des objets ou se retrouvent coincés dans des espaces étroits
  • Le déplacement des PNJ a lui aussi été largement remanié
    • Tous les PNJ utilisent à la fois un déplacement piloté par l’animation et un nouveau Motion Matching basé sur la distance
    • Cela améliore la qualité des déplacements et permet de mieux contrôler quand et comment les animations sont utilisées

Vent, végétation et outils de scripting

  • Dans Alan Wake 2, le vent réaliste influe sur la physique, les particules et les tissus
    • Les game designers peuvent facilement définir des vitesses de vent différentes pour les zones intérieures et extérieures
    • Les transitions entre ces deux zones se font de manière fluide et sans état persistant
    • À l’intérieur de la voiture de Saga et Casey, une wind box mobile est appliquée afin de définir l’habitacle comme une zone intérieure sans vent
  • Le système de vent est construit sur une approche Signed Distance Fields (SDF)
    • La wind box sert de primitive pour définir un champ global lissé d’intensité du vent
    • Elle agit comme un bloc de base déterminant la force du vent dans chaque zone, afin de créer des motifs de vent fluides entre intérieur et extérieur
  • Le nouvel outil Scattering a été développé pour créer de la végétation à grande échelle et des accessoires d’environnement
    • Il a été utilisé pour produire les environnements plus denses, plus riches et plus vivants d’Alan Wake 2
    • Il est associé à une distance d’affichage (draw distance) plus longue qu’auparavant, permettant aux joueurs de voir des objets et des détails plus lointains
  • Le langage de scripting est passé d’un langage maison à Luau, le langage de scripting embarqué dérivé de Lua par Roblox
    • Luau expose un large éventail de fonctionnalités du moteur et prend en charge l’édition en direct
    • Il est utilisé pour plusieurs systèmes de gameplay, comme le scripting de niveau et le système d’amélioration des armes
    • L’équipe du jeu a pu prototyper et implémenter diverses fonctionnalités de gameplay et effets VFX sans l’aide des programmeurs moteur
    • Remedy a créé sa propre extension de serveur de langage VS Code et l’a intégrée à son pipeline de développement
    • L’adoption de Luau a permis de supprimer environ 80 000 lignes de code qu’il n’était plus nécessaire de maintenir

Rendu centré GPU et animation de la végétation

  • Alan Wake 2 met en avant le nouveau pipeline de rendu piloté par le GPU de Northlight
    • Il permet d’intégrer davantage de géométrie dans le monde sans sacrifier les performances
    • Le rendu piloté par le GPU utilisant les mesh shaders permet un culling par occlusion à la précision d’un seul pixel
    • Tous les éléments de la scène peuvent être utilisés comme occludeurs
    • Grâce à cette capacité à ne rendre que ce qui est visible, le monde d’Alan Wake 2 présente davantage de détails géométriques que les sorties précédentes
  • Le pipeline de rendu effectue le culling non seulement des meshes, mais aussi des meshlets
    • Les meshlets sont des groupes de triangles plus petits et optimisés, extraits d’un mesh
    • On peut observer la structure en meshlets dans l’exemple de l’épicerie de Cauldron Lake
  • Le vaste environnement de forêt primitive a été réalisé grâce à un nouveau système de végétation basé sur des shaders
    • Ce système repose sur un nouveau système de skinning exécuté entièrement sur le GPU
    • Il prend en charge une animation par bone shader pilotée par les artistes
    • Dans Alan Wake 2, il permet d’utiliser des rigs de type personnage pour toute la végétation visible dans l’environnement
  • Le bone shader expose une API permettant aux artistes d’écrire eux-mêmes du code shader et de le raccorder au système de base
    • La technique peut s’appliquer non seulement à la végétation, mais aussi à des objets oscillant sur l’eau ou à des câbles électriques balancés par le vent
    • À Cauldron Lake, près de 300 000 bones sont traités à chaque frame

HDR, rendu transparent, VFX et ray tracing

  • Alan Wake 2 prend totalement en charge le HDR
    • Le réglage par défaut est calibré pour être satisfaisant à la fois sur des écrans SDR et HDR
    • La prise en charge du HDR a nécessité une nouvelle approche du tone mapping
    • L’étalonnage colorimétrique a été réalisé par un véritable coloriste selon des références HDR, afin de préserver le style artistique, l’ambiance et la narration aussi bien en HDR qu’en SDR
  • Les scènes de brouillard dense reposent sur des améliorations du rendu transparent
    • Northlight a entièrement refondu le rendu transparent pendant le développement d’Alan Wake 2
    • Il utilise MBOIT (Moment-Based Order-Independent Transparency) pour mélanger en douceur des surfaces transparentes ayant différents niveaux de détail
    • Les éléments transparents sont rendus avec MBOIT à trois résolutions
    • Cela permet de fusionner sans rupture le brouillard, la géométrie transparente et les effets
    • Le pipeline contrôlant le placement du brouillard dans le monde a également été amélioré pour offrir un contrôle plus fin
    • En combinant un éclairage transparent au pixel près et des réflexions affectées par le brouillard, les éléments opaques et transparents s’intègrent mieux que dans les projets précédents
    • Le brouillard approxime la diffusion multiple de la lumière afin de créer une atmosphère dense et réaliste
  • Les outils VFX nodaux de Northlight ont fortement progressé en termes de fonctionnalités prises en charge et de performances à l’exécution
    • Ils permettent aux artistes VFX de créer des effets complexes et dynamiques comme la pluie, l’humidité, la simulation de l’eau ou les blessures sur les personnages
    • Les outils VFX profitent eux aussi du rendu piloté par le GPU, qui permet de traiter une grande quantité de géométrie via le GPU
    • Par exemple, cela est utilisé lors du rendu d’objets rain blocker dans des masques dynamiques afin que la pluie ne soit pas visible à l’intérieur ou sous un abri
  • Le ray tracing prend en charge un ray-traced direct lighting complet
    • En collaboration avec Nvidia, Northlight combine un débruitage amélioré et des algorithmes d’éclairage indirect
    • Le ray tracing d’Alan Wake 2 est plus précis et plus robuste que celui aperçu dans Control
    • Comme toute l’animation de la géométrie végétale est produite et simulée via le skinning, le ray tracing améliore aussi le rendu de la végétation animée
  • Les joueurs PC peuvent utiliser les dernières technologies Nvidia DLSS si leur configuration GPU et CPU le permet
    • DLSS Frame Generation

    • DLSS Ray Reconstruction

      • Path Traced Indirect Lighting

1 commentaires

 
GN⁺ 2023-11-08
Avis sur Hacker News
  • Remedy est une société qui, côté graphismes, dépasse toujours largement sa catégorie si l’on considère que tout le studio ne compte que quelques centaines de personnes
    Parmi les acteurs qui montent, seuls Remedy et CD Projekt Red semblent capables de rivaliser avec de gros moteurs comme Unreal, Unity ou EA Frostbite en matière de qualité d’image et de performances
    Si vous vous intéressez à l’infographie ou au technical art, leurs présentations à la GDC/SIGGRAPH sont excellentes
    Alan Wake 2 est techniquement l’un des plus beaux jeux jamais réalisés, et personnellement je pense que c’est aussi vrai artistiquement. Le fait qu’il reste beau même avec tous les réglages au minimum est une vraie réussite, car il est difficile de le faire bien fonctionner sur du matériel ancien tout en conservant un bon rendu
    Cela dit, comme l’ont signalé des analystes comme Digital Foundry, les performances sont très mauvaises si le GPU ne prend pas en charge les mesh shaders. Cet article mentionne aussi l’utilisation des mesh shaders pour le culling, ce qui permet de rendre des objets comme des tasses à café ou des pneus parfaitement ronds tout en évitant le genre de problème qui plombe les performances de Cities Skylines 2, du type « chaque PNJ a des dents de 10 000 polygones dans la bouche ». C’est aussi l’un des grands avantages qu’apporte Nanite dans Unreal 5

    • Remedy a été fondée par des hackers de la demoscene, dont certains venaient de Future Crew
      On peut tracer une ligne assez nette entre l’incroyable démo Second Reality de 1993 et Alan Wake 2, trente ans plus tard
      https://www.youtube.com/watch?v=iw17c70uJes
    • C’est dommage qu’un bon commentaire se termine sur un malentendu avec ce passage sur « chaque PNJ a des dents de 10 000 polygones dans la bouche, ce qui plombe les performances de Cities Skylines 2 »
      Le problème de performances est bien plus vaste que simplement « rendre des dents invisibles » : https://blog.paavo.me/cities-skylines-2-performance/
      Comme exemple, c’est facile à comprendre, mais le problème plus important est l’absence de LOD et le manque de culling
    • La Finlande compte vraiment d’excellents développeurs GPU, et la demoscene y a probablement beaucoup contribué. Remedy est impressionnant
      CD Projekt Red n’est-il pas en train de passer ses prochains titres à UE5 ? Dommage. Cyberpunk était vraiment magnifique, et j’aurais aimé voir un jeu multijoueur réalisé avec ce moteur
    • Remedy compte 360 employés
      CDPR en compte 1236, DICE, qui a créé Frostbite, 714, et Epic en comptait 2200 avant ses récents licenciements
      Tous ces chiffres viennent de Wikipedia
    • Remedy peut en fait être vu comme faisant partie de la lignée de Future Crew, célèbre pour les démos Unreal/Second Reality
      Si ce ne sont pas les gens qui ont défini et popularisé l’infographie moderne qui poussent les GPU dans leurs retranchements, qui le fera ?
  • Même dans le premier exemple, le fait que les pieds glissent sur le sol, ou que le personnage soit bloqué par un objet et semble marcher sur place en glissant, est assez gênant
    Je me demande quand ce genre de problème sera résolu
    Bien sûr, le moteur lui-même est stupéfiant, et les effets visuels comme les systèmes sont parmi les meilleurs que j’aie vus jusqu’ici

    • C’est toujours un compromis entre mouvement réactif et mouvement réaliste
      Dans RDR2, les animations sont très réalistes, mais les contrôles donnent une sensation un peu « flottante »
      Personnellement, je préfère un mouvement vif où, quand j’appuie à gauche, le personnage à l’écran se déplace immédiatement vers la gauche. Un système d’animation plus réaliste finit par introduire un délai jusqu’à ce que l’animation des pieds « rattrape » l’entrée du joueur
    • C’est en fait déjà un problème résolu. Plusieurs systèmes IK peuvent le gérer correctement, et certains jeux utilisent de l’IK pour que les pieds suivent le terrain ou que les mains repoussent les surfaces
      Mais le raycasting continu et les calculs d’IK ne sont pas gratuits, donc cela se paie aussi en performances, et cela entre également en conflit avec la réactivité
      Beaucoup de jeux privilégient des déplacements plus rapides et des contrôles plus réactifs. Au final, c’est un problème techniquement résolu depuis des années, mais comme tout élément de game design, c’est une question de choix et de compromis
    • Alan Wake II utilise effectivement le motion matching, qui est à ma connaissance la meilleure approche pour ce problème d’animation, et le billet de blog le mentionne aussi
      C’est une méthode utilisée par Naughty Dog et beaucoup d’autres. Mais comme le disent d’autres commentaires, la tension fondamentale entre réactivité et précision de l’animation reste bien présente
    • Cela peut être un facteur assez important. En général, l’angle de caméra est choisi de façon à ne pas trop montrer les pieds du personnage [1]
      Dans Control, le précédent titre sous Northlight, c’était moins le cas [2]
      [1] https://youtu.be/jQb07FHJ-bQ?t=628
      [2] https://youtu.be/fcDK6tnx4vM?t=6700
    • J’ai déjà vu une démonstration de solution sur la chaîne YouTube Two Minute Papers
      En réalité, il s’agissait d’un algorithme qui mélange les animations pour rendre les transitions naturelles
  • C’est rafraîchissant de voir autre chose qu’un énième jeu basé sur Unreal Engine
    Avoir son propre moteur interne doit être extrêmement difficile ; le moteur lui-même est un problème, mais les outils pour créer les niveaux, les animations, etc., sont peut-être encore plus difficiles
    Cela dit, il doit aussi y avoir des avantages. Avec davantage de contrôle sur l’architecture bas niveau, les possibilités d’optimisation sont plus nombreuses. C’est plus difficile avec un moteur généraliste comme Unreal
    J’ai hâte d’essayer ce jeu

    • C’est en quelque sorte la continuation de l’héritage de la demoscene
    • C’est pour ça que je regrette que Cyberpunk passe à Unreal. Leur moteur existant était solide, et contrairement à Unreal, il exploitait bien tous les cœurs CPU
      Je ne comprends toujours pas pourquoi la compilation des shaders provoque des saccades, alors que la plupart des autres moteurs internes n’ont pas ce problème. Je ne comprends pas non plus pourquoi cela n’a pas encore été amélioré. Même si une mise à jour corrigeait ça demain, il faudrait des années avant que les jeux en tirent parti
    • Je suis d’accord sur le fait qu’un moteur interne est extrêmement difficile à faire
      Avec autant de moteurs prêts à l’emploi soutenus par de grandes communautés, il faut vraiment avoir besoin d’un contrôle total pour s’y lancer
  • J’aime le ton de l’article
    Par exemple, j’ai apprécié le passage où l’équipe marketing dirait que « le personnage est plus réactif et vivant que jamais », alors que dans les notes de développement internes il serait écrit : « le personnage ne heurte pas les objets et ne se coince pas dans les espaces étroits »

    • Le problème chronique du langage marketing semble être qu’il faut tout reformuler pour que ce soit « compréhensible » même par quelqu’un qui ne sait rien du produit réellement commercialisé
    • La seconde partie de cette phrase reste elle aussi entièrement du langage marketing
      Toute la phrase est du marketing, et même la comédie qu’elle contient est du marketing
  • Je me demande ce que Remedy pense aujourd’hui de l’usage du langage D dans son écosystème. S’ils l’utilisent encore, j’aimerais aussi savoir quelles difficultés ils ont rencontrées pendant le développement d’AW2
    Références : Using an Emerging Language in Quantum Break (https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...)
    DConf 2016: Quantum Break: AAA Gaming With Some D Code -- Ethan Watson (https://www.youtube.com/watch?v=7YjLW7anNfc)

    • Je ne crois pas qu’il y ait eu de confirmation officielle, mais il se dit qu’ils ont retiré tout le D de la base de code après Quantum Break
      Ce qui est sûr, c’est qu’ils ne cherchent pas non plus de programmeurs D actuellement
      Si vous voulez remonter aux sources, ce lien peut servir de point de départ : https://forum.dlang.org/post/lymybpygzfalbdgoaizr@forum.dlan...
    • Pareil, j’aimerais en savoir plus
      La personne qui avait fait cette présentation ne travaille plus là-bas, et vu que de grands acteurs comme Facebook ont eux aussi cessé d’utiliser D, j’imagine qu’ils ne l’utilisent plus. Mais j’aimerais qu’on me prouve le contraire
    • Dans les studios de jeux, l’usage d’un autre langage ou d’une technologie atypique est souvent porté par une seule personne
      Quand cette personne part, ou quitte un poste où elle peut contribuer et maintenir la technologie, celle-ci commence progressivement à être remplacée, sauf si le reste de l’équipe et du studio la soutient et l’adopte
      D’après ce que j’ai entendu, il y avait une personne qui poussait pour écrire en D, mais je ne sais pas si elle est encore là
  • Il me semble qu’une partie de l’équipe qui créait du contenu de tout premier plan sur l’Unreal Marketplace a aussi participé à ce jeu
    https://mawiunited.com/
    C’est du très bon contenu. J’aimerais voir davantage de studios produire du contenu UE5 de cette manière

  • Je trouve intéressant qu’ils soient passés à Luau de Roblox comme environnement de scripting
    Je me suis toujours demandé pourquoi autant de technologies de jeu utilisent Lua pour le scripting. Surtout quand elles sont conçues dès le départ

    • Aujourd’hui, le coût d’intégration de Lua dans un jeu est presque nul
      Tout ce qui peut utiliser le runtime C peut embarquer du scripting Lua
      C’est pourquoi il a été utilisé comme choix par défaut, de Baldur’s Gate 1 à des titres modernes comme Warcraft III et Roblox
    • Il n’y a pas de dépendance supplémentaire, on peut contrôler entièrement les bibliothèques incluses, et il n’y a pas d’exigences absurdes en matière de structure de dossiers
    • Lua est rapide par rapport à d’autres langages de scripting, familier, et ridiculement facile à embarquer dans un programme C++
  • Les mouvements des personnages donnent encore pas mal une impression de vallée de l’étrange
    Dans la vidéo « contrôleur de personnage basé sur les voxels », la marche semble glisser, et les premières secondes de « déplacement des PNJ » paraissent aussi maladroites
    Je pense que c’est parce que chaque pas est strictement identique et utilise la même foulée. Les personnages se déplacent donc de façon bizarrement synchronisée
    Plus tard dans la vidéo, quand les personnages passent individuellement de la marche à la course, on voit des mouvements plus variés et c’est beaucoup plus réaliste. Je me demande pourquoi il est si difficile d’ajouter globalement davantage de petites variations dans les mouvements

    • En pleine action, on ne remarque généralement pas ce genre de chose, parce qu’on est occupé à regarder autre chose
      Cela dit, pour appuyer ce point, presque tous les PNJ alliés restent immobiles. Quand des ennemis affluent dans une zone hostile, on ne regarde pas leur façon de marcher, et de toute façon ils sont masqués par la brume
      Personnellement, je considère Control comme une démo technique de tout cela. Cela explique aussi pourquoi il y a beaucoup moins d’ennemis et pourquoi le jeu est construit comme une histoire d’horreur
    • Je me demande si l’on verra un jour quelque chose comme WalkGPT, avec un mode normal et un mode zombie
  • Donc ils ont un moteur de jeu ECS, un renderer de niveau AAA, une technologie similaire à Nanite, un moteur de scripting basé sur Lua et une animation faciale digne d’Hollywood ?
    Ils devraient sortir leur moteur. Il pourrait devenir un sérieux concurrent d’Unreal. Grâce à l’ECS, il serait plus scalable, et il serait aussi plus facile d’écrire avec Luau

    • Epic Games a financé le développement d’Alan Wake 2, et le jeu est aussi une exclusivité Epic Games Store
      Je l’ai appris douloureusement en essayant d’acheter le jeu sous Linux. Concurrencer Unreal risquerait donc de détériorer cette relation
    • Beaucoup de studios disposent de ce genre de technologies
      Mais transformer un logiciel interne en produit utilisable par d’autres personnes, c’est tout autre chose
    • Dire que c’est similaire à Nanite me semble un peu exagéré
      Remedy a bien adopté un pipeline de meshlets, mais c’est désormais presque courant dans le rendu de pointe. Je n’ai pas vu de mention indiquant qu’ils utilisent des compute shaders pour réellement rendre de petits triangles comme Nanite, même si j’ai pu passer à côté
    • Quand j’ai acheté ma 3090, j’étais impatient de pouvoir enfin jouer à Control avec le ray tracing activé, mais ça n’a pas marché
      Maintenant, avec Alan Wake 2, même ray tracing désactivé, les réglages High tournent à peine
      Visuellement, c’est un moteur impressionnant, mais à titre personnel je trouve que les exigences matérielles sont beaucoup trop élevées
  • L’architecture entité-composant-système (ECS) est aussi utilisée dans de jeunes moteurs de jeu open source comme Bevy[1]
    Cela fait longtemps que je n’ai pas fait de développement de jeux, mais entendre parler d’une architecture qui élimine l’approche orientée objet lourde et complexe qu’on voyait souvent dans les jeux me donne envie de m’y remettre
    [1]: https://bevyengine.org/

    • Il existe aussi tout un historique d’application de l’ECS à des choses plus anciennes
      Il a commencé à prendre de l’élan au début des années 2000, et aujourd’hui, sans être universel, il est utilisé depuis longtemps comme une sorte de base, y compris dans certains moteurs open source
      Voir par exemple https://github.com/Adelost/entity-component-systems-study#re...