Files
dauphincraft/docs/_build/html/dev/architecture.html
Floppyrj45 cafdb7d27e docs: Sphinx manuel joueur/admin/dev + build HTML
Manuel complet DauphinCraft v0.1.0 : 14 pages RST (joueur, admin,
dev, annexes), conf.py rtd-theme, Makefile/make.bat, build HTML propre.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 17:57:47 +02:00

320 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="fr" data-content_root="../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Architecture technique &mdash; DauphinCraft — Manuel joueur et serveur</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=897fae25"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/translations.js?v=e6b791cb"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Recherche" href="../search.html" />
<link rel="next" title="Modules du jeu" href="modules.html" />
<link rel="prev" title="Maintenance du serveur" href="../admin/maintenance.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" style="background: #0b3d5c" >
<a href="../index.html" class="icon icon-home">
DauphinCraft
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Rechercher docs" aria-label="Rechercher docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Joueur</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../joueur/installation.html">Installation — Guide joueur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#configuration-minimale-requise">Configuration minimale requise</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#telechargement">Téléchargement</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#depannage-antivirus">Dépannage antivirus</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#premiere-connexion">Première connexion</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/controles.html">Contrôles</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#deplacement">Déplacement</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#capacites-speciales">Capacités spéciales</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#interaction-avec-le-monde">Interaction avec le monde</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#interface">Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#chat">Chat</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#menu-pause">Menu pause</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/mecaniques.html">Mécaniques de jeu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#jauges-du-joueur">Jauges du joueur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#gestion-de-l-oxygene">Gestion de loxygène</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#biomes-sous-marins">Biomes sous-marins</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#mobs">Mobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#mort-et-respawn">Mort et respawn</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/craft.html">Crafting — Recettes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#comment-crafter">Comment crafter</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#recettes-disponibles">Recettes disponibles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#lampe-bio">Lampe bio</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#harpon">Harpon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#bulle-d-air">Bulle dair</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#algue-cuisinee">Algue cuisinée</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#armure-ecailles">Armure écailles</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#ressources-et-ou-les-trouver">Ressources et où les trouver</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/multijoueur.html">Multijoueur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#modes-de-jeu">Modes de jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#port-reseau">Port réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#rejoindre-une-partie">Rejoindre une partie</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#heberger-depuis-le-jeu">Héberger depuis le jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#serveur-public-officiel">Serveur public officiel</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#limite-de-joueurs">Limite de joueurs</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Administrateur serveur</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin/installation_serveur.html">Installation du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#prerequis">Prérequis</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#extraction-de-l-archive">Extraction de larchive</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#verification-du-service">Vérification du service</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#ouverture-du-port-pare-feu">Ouverture du port pare-feu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#consultation-des-logs">Consultation des logs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../admin/configuration.html">Configuration du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#fichier-de-service-systemd">Fichier de service systemd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#modifier-le-port-d-ecoute">Modifier le port découte</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#nombre-maximum-de-joueurs">Nombre maximum de joueurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#sauvegarde-du-monde">Sauvegarde du monde</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../admin/maintenance.html">Maintenance du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#mise-a-jour-du-serveur">Mise à jour du serveur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#surveillance-et-logs">Surveillance et logs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#verification-de-l-etat-du-serveur">Vérification de létat du serveur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#redemarrage-automatique">Redémarrage automatique</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#gestion-des-joueurs-kick-ban">Gestion des joueurs (Kick / Ban)</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Développement</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Architecture technique</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#moteur-et-langage">Moteur et langage</a></li>
<li class="toctree-l2"><a class="reference internal" href="#architecture-reseau">Architecture réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="#structure-du-projet">Structure du projet</a></li>
<li class="toctree-l2"><a class="reference internal" href="#flux-de-demarrage">Flux de démarrage</a></li>
<li class="toctree-l2"><a class="reference internal" href="#presets-d-export">Présets dexport</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">Modules du jeu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-monde-world">Module Monde (<code class="docutils literal notranslate"><span class="pre">world/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-dauphin-dolphin">Module Dauphin (<code class="docutils literal notranslate"><span class="pre">dolphin/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-ambiance-ambience">Module Ambiance (<code class="docutils literal notranslate"><span class="pre">ambience/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-inventaire-inventory">Module Inventaire (<code class="docutils literal notranslate"><span class="pre">inventory/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-mobs-mobs">Module Mobs (<code class="docutils literal notranslate"><span class="pre">mobs/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="modules.html#module-reseau-net">Module Réseau (<code class="docutils literal notranslate"><span class="pre">net/</span></code>)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contribuer.html">Contribuer au projet</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#prerequis">Prérequis</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#cloner-le-depot">Cloner le dépôt</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#ouvrir-le-projet-dans-godot">Ouvrir le projet dans Godot</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#build-et-export">Build et export</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#style-de-code">Style de code</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#soumettre-une-contribution">Soumettre une contribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#discussion-et-support">Discussion et support</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Annexes</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../credits.html">Crédits</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#moteur">Moteur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#assets">Assets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#attribution-requise">Attribution requise</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#auteur-du-jeu">Auteur du jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#remerciements">Remerciements</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Historique des versions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../changelog.html#version-0-1-0-sortie-initiale">Version 0.1.0 — Sortie initiale</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../changelog.html#nouvelles-fonctionnalites">Nouvelles fonctionnalités</a></li>
<li class="toctree-l3"><a class="reference internal" href="../changelog.html#limitations-connues">Limitations connues</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #0b3d5c" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">DauphinCraft</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Architecture technique</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/dev/architecture.rst.txt" rel="nofollow"> Afficher la source de la page</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="architecture-technique">
<h1>Architecture technique<a class="headerlink" href="#architecture-technique" title="Lien vers cette rubrique"></a></h1>
<section id="moteur-et-langage">
<h2>Moteur et langage<a class="headerlink" href="#moteur-et-langage" title="Lien vers cette rubrique"></a></h2>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Composant</p></th>
<th class="head"><p>Valeur</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>Moteur</p></td>
<td><p>Godot Engine 4.6.2 (Forward+)</p></td>
</tr>
<tr class="row-odd"><td><p>Langage</p></td>
<td><p>GDScript (typage strict)</p></td>
</tr>
<tr class="row-even"><td><p>Rendu</p></td>
<td><p>Vulkan (Forward+) / Compatibility (fallback)</p></td>
</tr>
<tr class="row-odd"><td><p>Réseau</p></td>
<td><p>ENet UDP, autorité serveur</p></td>
</tr>
</tbody>
</table>
</section>
<section id="architecture-reseau">
<h2>Architecture réseau<a class="headerlink" href="#architecture-reseau" title="Lien vers cette rubrique"></a></h2>
<p>DauphinCraft utilise un modèle <strong>autorité serveur</strong> :</p>
<ul class="simple">
<li><p>Le serveur est la source de vérité pour les positions, les blocs et les inventaires.</p></li>
<li><p>Les clients envoient leurs intentions (déplacement, action) et reçoivent létat du monde.</p></li>
<li><p>La synchronisation est assurée par <code class="docutils literal notranslate"><span class="pre">PlayerSyncComponent</span></code> et <code class="docutils literal notranslate"><span class="pre">WorldSyncComponent</span></code>.</p></li>
<li><p>Le protocole de transport est <strong>ENet (UDP)</strong> via la couche haut niveau Godot (<code class="docutils literal notranslate"><span class="pre">MultiplayerAPI</span></code>).</p></li>
<li><p>Port par défaut : <strong>UDP 7777</strong>.</p></li>
</ul>
</section>
<section id="structure-du-projet">
<h2>Structure du projet<a class="headerlink" href="#structure-du-projet" title="Lien vers cette rubrique"></a></h2>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>DauphinCraft/
├── project.godot # Fichier de projet Godot
├── icon.svg # Icône du jeu
├── export_presets.cfg # Présets d&#39;export (Windows, Linux serveur)
├── assets/ # Ressources visuelles (textures, modèles)
├── audio/ # Fichiers audio
│ ├── music/ # Musiques de fond
│ └── sfx/ # Effets sonores
├── builds/ # Sorties d&#39;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)
</pre></div>
</div>
</section>
<section id="flux-de-demarrage">
<h2>Flux de démarrage<a class="headerlink" href="#flux-de-demarrage" title="Lien vers cette rubrique"></a></h2>
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">Main.tscn</span></code> est la scène principale. Elle instancie <code class="docutils literal notranslate"><span class="pre">MainMenu.tscn</span></code>.</p></li>
<li><p>Le joueur choisit Solo / Héberger / Rejoindre dans <code class="docutils literal notranslate"><span class="pre">LobbyMenu.tscn</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">NetworkManager</span></code> initialise ENet (serveur ou client).</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">World.tscn</span></code> est chargée : <code class="docutils literal notranslate"><span class="pre">ChunkManager</span></code> génère les premiers chunks.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Dolphin.tscn</span></code> est instanciée pour chaque joueur connecté.</p></li>
<li><p>La boucle de jeu tourne : physique, synchronisation réseau, rendu.</p></li>
</ol>
</section>
<section id="presets-d-export">
<h2>Présets dexport<a class="headerlink" href="#presets-d-export" title="Lien vers cette rubrique"></a></h2>
<p>Deux présets sont configurés dans <code class="docutils literal notranslate"><span class="pre">export_presets.cfg</span></code> :</p>
<ul class="simple">
<li><p><strong>Windows (64 bits)</strong> : exécutable joueur pour Windows.</p></li>
<li><p><strong>Linux Server (64 bits)</strong> : exécutable headless pour serveur dédié Linux.</p></li>
</ul>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Pied de page">
<a href="../admin/maintenance.html" class="btn btn-neutral float-left" title="Maintenance du serveur" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Précédent</a>
<a href="modules.html" class="btn btn-neutral float-right" title="Modules du jeu" accesskey="n" rel="next">Suivant <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Droits d'auteur 2026, Baptiste Moulin.</p>
</div>
Compilé avec <a href="https://www.sphinx-doc.org/">Sphinx</a> en utilisant un
<a href="https://github.com/readthedocs/sphinx_rtd_theme">thème</a>
fourni par <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>