Ce guide explique toutes les notions couvertes par le moteur et comment le code les implémente. Objectif : un développeur ayant des notions de C++ mais aucune expérience du développement de jeu vidéo comprend l'ensemble du code en autonomie — chaque page part des définitions de base (qu'est-ce qu'une boucle de jeu ? un ECS ? une collision continue ? un coyote time ?) avant d'entrer dans l'implémentation, plutôt que de présupposer ce vocabulaire acquis. Chaque page décrit les fonctions clés, leurs invariants, le pourquoi des choix de conception (pas seulement le quoi), et renvoie aux explications mathématiques/algorithmiques derrière les concepts.
Comment lire ce guide
- Les noms de types et de fonctions (core::World, core::sweepAabb, …) sont cliquables : ils mènent à la référence de code Doxygen (signature, doc détaillée).
- Les liens externes (⧉) pointent vers les fondements mathématiques/algorithmiques.
- Le quoi et le pourquoi vivent dans les spécifications ; ce guide couvre le comment — y compris les notions de game dev prérequises pour le comprendre.
- Les pages sont indépendantes mais s'appuient les unes sur les autres (voir leurs sections « Voir aussi ») : Mathématiques du moteur pose le vocabulaire (vecteurs, AABB, unités) réutilisé par Physique du personnage et Niveaux : modèle, chargement, mécanismes, budgets ; Boucle de jeu et pas de temps fixe et ECS : entités, composants, systèmes posent les deux piliers d'architecture (déterminisme, données/logique) sur lesquels tout le reste s'appuie. En cas de doute sur un terme, remonter à la page qui le définit plutôt que de le supposer connu.
Architecture en deux couches
Le moteur sépare strictement :
- Core — logique pure : ECS, mathématiques, physique, modèle de niveau, gameplay, temps. Aucune dépendance à DirectX ni à la fenêtre → testable sans GPU (EX-NFR-010).
- HMI — présentation : deux applications Qt depuis le LOT-86 — le jeu en Qt Quick, l'éditeur de niveaux en Qt Widgets —, le rendu de scène sur QRhi (Direct3D 11 par défaut sous Windows) et les entrées. Dépend de Core, jamais l'inverse (EX-ARCH-010).
- Source/Ui — ce que la conception modifie : les écrans du jeu en QML déclaratif, leurs jetons et leurs ornements. Ne connaît de HMI que ses vues-modèles (EX-IHM-100).
La règle d'or : la simulation est dans Core, déterministe et testée ; HMI orchestre et affiche. Cette frontière est ce qui rend le moteur analysable domaine par domaine.
Plan du guide
- Boucle de jeu et pas de temps fixe — la boucle de jeu et le pas de temps fixe (déterminisme).
- ECS : entités, composants, systèmes — l'ECS maison (entités, composants, systèmes, vues).
- Mathématiques du moteur — les mathématiques du moteur (Vector2, AABB, unités).
- Physique du personnage — la physique du personnage : balayage AABB, gravité, saut, dash.
- Niveaux : modèle, chargement, mécanismes, budgets — les niveaux : modèle, chargement JSON, mécanismes, budgets.
- Entrées et actions logiques — les entrées et leur traduction en actions logiques.
- Rendu 2D : de l'ECS à l'écran — le rendu 2D : Direct3D 11, sprite batching, atlas, caméra, interpolation.
- Journalisation et assertions — la journalisation et les assertions : niveaux, sinks, macros.
- Éditeur de niveaux — l'éditeur de niveaux intégré : brouillon mutable, peinture, undo/redo, essai immédiat.
- Atelier pixel art intégré — l'atelier pixel art : opérations pures, historique local, canevas, palettes.
- Écrans, navigation et boucle de jeu — la navigation Qt : menu, jeu, éditeur et options (pages empilées, signaux).
- IHM Qt — deux applications, deux technologies — l'IHM Qt : deux applications (jeu en Qt Quick, éditeur en Widgets), module QML, surface de rendu QRhi.
- Concevoir les écrans dans Qt Design Studio — concevoir les écrans dans Qt Design Studio : ce qui se modifie sans jamais ouvrir un fichier source.
- Système de design et architecture de l'information — le système de design et l'architecture de l'information : jetons, thème, actions, barre d'état.
- Audio — l'audio : moteur Qt Multimedia, catalogue de sons, détection des transitions et table événement → son.
Les notions d'apprentissage automatique mises en œuvre par le solveur IA font l'objet d'un guide séparé, archivé sous Documentation/Heritage/Guide-Annexe/ avec le programme d'IA qu'il documentait (retiré au LOT-01).