Architecture technique ======================= Moteur et langage ----------------- +------------------+-----------------------------------------------+ | Composant | Valeur | +==================+===============================================+ | Moteur | Godot Engine 4.6.2 (Forward+) | +------------------+-----------------------------------------------+ | Langage | GDScript (typage strict) | +------------------+-----------------------------------------------+ | Rendu | Vulkan (Forward+) / Compatibility (fallback) | +------------------+-----------------------------------------------+ | Réseau | ENet UDP, autorité serveur | +------------------+-----------------------------------------------+ Architecture réseau ------------------- DauphinCraft utilise un modèle **autorité serveur** : - Le serveur est la source de vérité pour les positions, les blocs et les inventaires. - Les clients envoient leurs intentions (déplacement, action) et reçoivent l'état du monde. - La synchronisation est assurée par ``PlayerSyncComponent`` et ``WorldSyncComponent``. - Le protocole de transport est **ENet (UDP)** via la couche haut niveau Godot (``MultiplayerAPI``). - Port par défaut : **UDP 7777**. Structure du projet ------------------- .. code-block:: text DauphinCraft/ ├── project.godot # Fichier de projet Godot ├── icon.svg # Icône du jeu ├── export_presets.cfg # Présets d'export (Windows, Linux serveur) ├── assets/ # Ressources visuelles (textures, modèles) ├── audio/ # Fichiers audio │ ├── music/ # Musiques de fond │ └── sfx/ # Effets sonores ├── builds/ # Sorties d'export ├── scenes/ # Scènes Godot (.tscn) │ ├── Main.tscn │ ├── MainMenu.tscn │ ├── LobbyMenu.tscn │ ├── World.tscn │ ├── Dolphin.tscn │ ├── InventoryUI.tscn │ ├── PauseMenu.tscn │ └── mobs/ ├── scripts/ # Scripts GDScript (.gd) │ ├── Main.gd │ ├── PauseMenu.gd │ ├── world/ # Gestion du monde voxel │ ├── dolphin/ # Contrôleur joueur + HUD │ ├── ambience/ # Environnement visuel et audio │ ├── inventory/ # Inventaire et crafting │ ├── mobs/ # Intelligence artificielle des mobs │ └── net/ # Réseau multijoueur ├── shaders/ # Shaders GLSL/Godot └── docs/ # Documentation Sphinx (ce manuel) Flux de démarrage ----------------- 1. ``Main.tscn`` est la scène principale. Elle instancie ``MainMenu.tscn``. 2. Le joueur choisit Solo / Héberger / Rejoindre dans ``LobbyMenu.tscn``. 3. ``NetworkManager`` initialise ENet (serveur ou client). 4. ``World.tscn`` est chargée : ``ChunkManager`` génère les premiers chunks. 5. ``Dolphin.tscn`` est instanciée pour chaque joueur connecté. 6. La boucle de jeu tourne : physique, synchronisation réseau, rendu. Présets d'export ---------------- Deux présets sont configurés dans ``export_presets.cfg`` : - **Windows (64 bits)** : exécutable joueur pour Windows. - **Linux Server (64 bits)** : exécutable headless pour serveur dédié Linux.