Aller au contenu
Stéphane Baudoux

Daídalos

Un projet, trois itérations : un shooter OpenGL, sa reconstruction en DirectX 9, et le moteur réutilisable qui en est sorti.

Daídalos

2008

Un FPS 3D à l'ancienne, écrit de zéro en C++ et OpenGL.

Daídalos a démarré en 2008 pour apprendre le rendu 3D. Inspiré du Doom original et de Wolfenstein 3D, le projet visait un FPS amateur viable, bâti sur des mécaniques éprouvées plutôt que sur la volonté de révolutionner le genre.

Enfermé dans des niveaux-labyrinthes, le joueur se fraie un chemin parmi les créatures qui hantent les lieux, en ramassant des objets pour en sortir vivant. Le jeu propose plusieurs environnements et types d’objets.

C++ · OpenGL · SDL_mixer

Daídalos DX

2010

Le même jeu reconstruit sous DirectX 9, avec rendu différé et ombres douces dynamiques.

Daídalos DX reprend les objectifs du premier jeu en poussant beaucoup plus loin la partie technique. Il est né de cours de DirectX 9 suivis pendant mes études : l’idée était de les appliquer au prototype précédent, avec éclairage et ombres dynamiques, normal mapping et rendu spéculaire.

Il s’appuie sur un moteur personnel développé en parallèle, devenu Daídalos Engine : ombres douces dynamiques, arbre BSP pour les collisions et normal mapping.

C++ · DirectX 9 · HLSL · Rendu différé · OpenAL

Daídalos Engine

2011

Le moteur extrait de Daídalos DX, rendu générique et réutilisable.

Daídalos Engine est un moteur 3D pédagogique qui couvre le travail d’un vrai moteur : rendu, collisions, audio, entrées/sorties et gestion de scènes. Il reprend les technologies construites pour Daídalos DX en les rendant génériques.

  • Scènes : les éléments sont organisés en arbre de nœuds (modèles 3D, sprites, lumières, sons, effets de particules comme la fumée ou le feu), déclarés en XML.
  • Rendu : rendu « forward » pour les scènes simples et rendu différé quand les sources de lumière sont nombreuses, avec des shaders HLSL 3.0 pour les lumières dynamiques, les ombres douces et le normal mapping.
  • Collisions : un arbre BSP (binary space partitioning) découpe chaque scène en zones convexes pour gérer les collisions entre éléments statiques et dynamiques.
  • Ressources : audio wav/ogg/flac ; modèles obj/ms3d/md2 ; textures bmp, dds, jpg, png, tga et autres ; configuration ini.
  • Éditeur : un éditeur de niveaux construit sur le moteur lui-même, pour créer des niveaux et les tester en temps réel.

C++ · DirectX 9 · HLSL · OpenAL · TinyXML2