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

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.