Selaco et GZDoom : comment un moteur classique rivalise avec léclairage moderne

24 May 2026 Publié | Traduit de l'espagnol

Le développement de Selaco démontre que la puissance brute n'est pas la seule voie vers le réalisme visuel. L'équipe a réussi à extraire des performances et une qualité graphique de GZDoom, un moteur basé sur le vétéran Doom Engine, en implémentant un système d'éclairage dynamique par logiciel qui rivalise avec les techniques de rendu modernes. Cet exploit technique, combiné à un système de destruction d'environnements basé sur des volumes prédéfinis et un émetteur de particules avancé, fait de Selaco une étude de cas sur la façon d'optimiser des outils limités pour obtenir des résultats AAA.

Capture d'écran de Selaco avec éclairage dynamique et destruction d'environnements dans GZDoom

Rétro-ingénierie : Éclairage, particules et destruction dans GZDoom 🛠️

Pour réaliser l'éclairage dynamique, les développeurs ont modifié le pipeline de rendu de GZDoom, remplaçant l'ombrage plat par un modèle d'éclairage par pixel qui calcule des ombres douces en temps réel sur une géométrie 2.5D. Cela est accompli en injectant des shaders GLSL personnalisés qui simulent l'éclairage indirect sans nécessiter de raytracing matériel. Le système de particules, quant à lui, a été réécrit de zéro pour prendre en charge les collisions avec la carte et la dégradation par la chaleur, permettant des explosions qui font fondre des métaux virtuels. La destruction des décors a été implémentée via un système de secteurs dynamiques qui échangent des textures haute définition (créées dans Photoshop) et des modèles 3D de débris (modélisés dans Blender) lors d'un impact, le tout sans briser la structure en blocs du moteur.

Leçons pour l'indie : L'artisanat avant le moteur 🎨

Selaco démontre que la véritable limite d'un moteur de jeu n'est pas son ancienneté, mais la créativité pour le modifier. En utilisant Blender pour créer des assets polygonaux optimisés et Photoshop pour des textures avec des cartes de normales et d'occlusion ambiante, l'équipe a créé un pont entre l'art pixelisé traditionnel et la photoréalité moderne. Pour le développeur indépendant, la leçon est claire : maîtriser les outils de modélisation et de texturage peut compenser l'absence d'un moteur AAA. La clé est de comprendre les forces du moteur de base et de le forcer à faire ce pour quoi il n'a pas été conçu, sans perdre son identité classique.

Quel a été le plus grand défi technique rencontré par l'équipe de Selaco lors de l'implémentation de l'éclairage dynamique dans GZDoom sans sacrifier les performances du moteur classique ?

(PS : les shaders, c'est comme la mayonnaise : si ça tranche, on recommence tout)