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>
This commit is contained in:
Floppyrj45
2026-04-19 17:57:47 +02:00
parent 9429360966
commit cafdb7d27e
128 changed files with 14093 additions and 0 deletions

320
docs/_build/html/dev/architecture.html vendored Normal file
View File

@@ -0,0 +1,320 @@
<!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>

334
docs/_build/html/dev/contribuer.html vendored Normal file
View File

@@ -0,0 +1,334 @@
<!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>Contribuer au projet &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="Crédits" href="../credits.html" />
<link rel="prev" title="Modules du jeu" href="modules.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#procedure-d-installation">Procédure dinstallation</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"><a class="reference internal" href="architecture.html">Architecture technique</a><ul>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#moteur-et-langage">Moteur et langage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#architecture-reseau">Architecture réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#structure-du-projet">Structure du projet</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#flux-de-demarrage">Flux de démarrage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#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 current"><a class="current reference internal" href="#">Contribuer au projet</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#outils-necessaires">Outils nécessaires</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cloner-le-depot">Cloner le dépôt</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ouvrir-le-projet-dans-godot">Ouvrir le projet dans Godot</a></li>
<li class="toctree-l2"><a class="reference internal" href="#build-et-export">Build et export</a></li>
<li class="toctree-l2"><a class="reference internal" href="#style-de-code">Style de code</a></li>
<li class="toctree-l2"><a class="reference internal" href="#soumettre-une-contribution">Soumettre une contribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="#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">Contribuer au projet</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/dev/contribuer.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="contribuer-au-projet">
<h1>Contribuer au projet<a class="headerlink" href="#contribuer-au-projet" title="Lien vers cette rubrique"></a></h1>
<section id="outils-necessaires">
<h2>Outils nécessaires<a class="headerlink" href="#outils-necessaires" title="Lien vers cette rubrique"></a></h2>
<ul class="simple">
<li><p><strong>Godot Engine 4.6.2</strong> : téléchargez depuis <a class="reference external" href="https://godotengine.org/download">https://godotengine.org/download</a></p></li>
<li><p><strong>Git</strong> : version 2.x ou supérieure</p></li>
<li><p>Accès au dépôt Gitea de DauphinCraft</p></li>
</ul>
</section>
<section id="cloner-le-depot">
<h2>Cloner le dépôt<a class="headerlink" href="#cloner-le-depot" title="Lien vers cette rubrique"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>http://&lt;gitea-host&gt;/dauphincraft/dauphincraft.git
<span class="nb">cd</span><span class="w"> </span>dauphincraft
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Remplacez <code class="docutils literal notranslate"><span class="pre">&lt;gitea-host&gt;</span></code> par ladresse du serveur Gitea communautaire.</p>
</div>
</section>
<section id="ouvrir-le-projet-dans-godot">
<h2>Ouvrir le projet dans Godot<a class="headerlink" href="#ouvrir-le-projet-dans-godot" title="Lien vers cette rubrique"></a></h2>
<ol class="arabic simple">
<li><p>Lancez Godot Engine 4.6.2.</p></li>
<li><p>Dans le gestionnaire de projets, cliquez sur <strong>Import</strong>.</p></li>
<li><p>Naviguez jusquau dossier cloné et sélectionnez <code class="docutils literal notranslate"><span class="pre">project.godot</span></code>.</p></li>
<li><p>Cliquez sur <strong>Import &amp; Edit</strong>.</p></li>
</ol>
<p>Le projet souvre directement dans léditeur. Appuyez sur <strong>F5</strong> pour lancer le jeu en mode éditeur.</p>
</section>
<section id="build-et-export">
<h2>Build et export<a class="headerlink" href="#build-et-export" title="Lien vers cette rubrique"></a></h2>
<p>Les présets dexport sont configurés dans <code class="docutils literal notranslate"><span class="pre">export_presets.cfg</span></code>.</p>
<p><strong>Exporter pour Windows :</strong></p>
<ol class="arabic simple">
<li><p>Menu <strong>Projet → Exporter</strong>.</p></li>
<li><p>Sélectionnez le préset <strong>Windows Desktop</strong>.</p></li>
<li><p>Cliquez sur <strong>Exporter le projet</strong> et choisissez un dossier de sortie.</p></li>
</ol>
<p><strong>Exporter le serveur Linux :</strong></p>
<ol class="arabic simple">
<li><p>Menu <strong>Projet → Exporter</strong>.</p></li>
<li><p>Sélectionnez le préset <strong>Linux Server</strong>.</p></li>
<li><p>Cliquez sur <strong>Exporter le projet</strong>.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Pour exporter vers Linux, vous devez avoir installé le template dexport Linux dans Godot
(<strong>Éditeur → Gérer les modèles dexportation</strong>).</p>
</div>
</section>
<section id="style-de-code">
<h2>Style de code<a class="headerlink" href="#style-de-code" title="Lien vers cette rubrique"></a></h2>
<ul class="simple">
<li><p><strong>Typage strict</strong> : déclarez toujours les types explicitement (<code class="docutils literal notranslate"><span class="pre">var</span> <span class="pre">x:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">0</span></code>).</p></li>
<li><p><strong>Pas de TODO</strong> laissé dans le code soumis — ouvrez une issue à la place.</p></li>
<li><p><strong>Nommage</strong> : <code class="docutils literal notranslate"><span class="pre">snake_case</span></code> pour les variables et fonctions, <code class="docutils literal notranslate"><span class="pre">PascalCase</span></code> pour les classes.</p></li>
<li><p><strong>Commentaires</strong> : en français, concis.</p></li>
<li><p><strong>Signals</strong> : préfixez les signaux avec le nom du composant (<code class="docutils literal notranslate"><span class="pre">dolphin_died</span></code>, <code class="docutils literal notranslate"><span class="pre">chunk_loaded</span></code>).</p></li>
</ul>
<p>Exemple de code conforme :</p>
<div class="highlight-gdscript notranslate"><div class="highlight"><pre><span></span><span class="k">class_name</span><span class="w"> </span><span class="n">DolphinController</span>
<span class="k">extends</span><span class="w"> </span><span class="n">CharacterBody3D</span>
<span class="err">@</span><span class="k">export</span><span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">speed</span><span class="p">:</span><span class="w"> </span><span class="nb nb-Type">float</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">5.0</span>
<span class="k">var</span><span class="w"> </span><span class="n">_oxygen</span><span class="p">:</span><span class="w"> </span><span class="nb nb-Type">float</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1.0</span>
<span class="k">func</span><span class="w"> </span><span class="n">take_damage</span><span class="p">(</span><span class="n">amount</span><span class="p">:</span><span class="w"> </span><span class="nb nb-Type">int</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="nb nb-Type">void</span><span class="p">:</span>
<span class="w"> </span><span class="c1"># Réduit les PV et déclenche le signal si mort</span>
<span class="w"> </span><span class="n">health</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="n">amount</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">health</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">0</span><span class="p">:</span>
<span class="w"> </span><span class="n">emit_signal</span><span class="p">(</span><span class="s2">&quot;dolphin_died&quot;</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="soumettre-une-contribution">
<h2>Soumettre une contribution<a class="headerlink" href="#soumettre-une-contribution" title="Lien vers cette rubrique"></a></h2>
<ol class="arabic">
<li><p>Créez une branche depuis <code class="docutils literal notranslate"><span class="pre">main</span></code> :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>checkout<span class="w"> </span>-b<span class="w"> </span>feat/ma-fonctionnalite
</pre></div>
</div>
</li>
<li><p>Faites vos modifications et committez :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>add<span class="w"> </span>.
git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">&quot;feat: description courte&quot;</span>
</pre></div>
</div>
</li>
<li><p>Poussez votre branche :</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>push<span class="w"> </span>origin<span class="w"> </span>feat/ma-fonctionnalite
</pre></div>
</div>
</li>
<li><p>Ouvrez une <strong>Pull Request</strong> sur le Gitea de DauphinCraft.</p></li>
<li><p>Un mainteneur relit et fusionne après validation.</p></li>
</ol>
</section>
<section id="discussion-et-support">
<h2>Discussion et support<a class="headerlink" href="#discussion-et-support" title="Lien vers cette rubrique"></a></h2>
<p>Rejoignez le serveur Discord communautaire et consultez le canal <strong>#dauphincraft-dev</strong>
pour poser vos questions, proposer des idées ou signaler des bugs.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Pied de page">
<a href="modules.html" class="btn btn-neutral float-left" title="Modules du jeu" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Précédent</a>
<a href="../credits.html" class="btn btn-neutral float-right" title="Crédits" 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>

341
docs/_build/html/dev/modules.html vendored Normal file
View File

@@ -0,0 +1,341 @@
<!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>Modules du jeu &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="Contribuer au projet" href="contribuer.html" />
<link rel="prev" title="Architecture technique" href="architecture.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"><a class="reference internal" href="architecture.html">Architecture technique</a><ul>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#moteur-et-langage">Moteur et langage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#architecture-reseau">Architecture réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#structure-du-projet">Structure du projet</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#flux-de-demarrage">Flux de démarrage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#presets-d-export">Présets dexport</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Modules du jeu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#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="#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="#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="#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="#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="#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">Modules du jeu</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/dev/modules.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="modules-du-jeu">
<h1>Modules du jeu<a class="headerlink" href="#modules-du-jeu" title="Lien vers cette rubrique"></a></h1>
<p>Le code source est organisé en six modules dans <code class="docutils literal notranslate"><span class="pre">scripts/</span></code>.</p>
<section id="module-monde-world">
<h2>Module Monde (<code class="docutils literal notranslate"><span class="pre">world/</span></code>)<a class="headerlink" href="#module-monde-world" title="Lien vers cette rubrique"></a></h2>
<p>Responsable de la génération et de la gestion du monde voxel sous-marin.</p>
<dl class="simple">
<dt><strong>BlockDatabase.gd</strong></dt><dd><p>Registre central de tous les types de blocs (id, nom, texture, propriétés physiques).
API publique : <code class="docutils literal notranslate"><span class="pre">get_block(id:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">BlockData</span></code>, <code class="docutils literal notranslate"><span class="pre">get_id_by_name(name:</span> <span class="pre">String)</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>.</p>
</dd>
<dt><strong>Chunk.gd</strong></dt><dd><p>Représente un chunk 16×16×16 blocs. Gère son maillage 3D et son état de chargement.
API publique : <code class="docutils literal notranslate"><span class="pre">set_block(x,</span> <span class="pre">y,</span> <span class="pre">z,</span> <span class="pre">id)</span></code>, <code class="docutils literal notranslate"><span class="pre">get_block(x,</span> <span class="pre">y,</span> <span class="pre">z)</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>, <code class="docutils literal notranslate"><span class="pre">rebuild_mesh()</span></code>.</p>
</dd>
<dt><strong>ChunkManager.gd</strong></dt><dd><p>Orchestre le chargement/déchargement des chunks autour du joueur (rayon configurable).
API publique : <code class="docutils literal notranslate"><span class="pre">get_chunk(cx,</span> <span class="pre">cy,</span> <span class="pre">cz)</span> <span class="pre">-&gt;</span> <span class="pre">Chunk</span></code>, <code class="docutils literal notranslate"><span class="pre">request_chunk(pos:</span> <span class="pre">Vector3i)</span></code>.</p>
</dd>
<dt><strong>WorldGenerator.gd</strong></dt><dd><p>Génère le contenu des chunks de façon procédurale (bruit de Perlin, biomes, structures).
API publique : <code class="docutils literal notranslate"><span class="pre">generate_chunk(cx,</span> <span class="pre">cy,</span> <span class="pre">cz)</span> <span class="pre">-&gt;</span> <span class="pre">Array</span></code> (tableau de 4096 block ids).</p>
</dd>
</dl>
</section>
<section id="module-dauphin-dolphin">
<h2>Module Dauphin (<code class="docutils literal notranslate"><span class="pre">dolphin/</span></code>)<a class="headerlink" href="#module-dauphin-dolphin" title="Lien vers cette rubrique"></a></h2>
<p>Contrôle du personnage joueur et interface utilisateur associée.</p>
<dl class="simple">
<dt><strong>DolphinController.gd</strong></dt><dd><p>Gère les entrées clavier/souris, applique la physique de nage, envoie les actions au serveur.
API publique : <code class="docutils literal notranslate"><span class="pre">apply_input(input:</span> <span class="pre">Dictionary)</span></code>, <code class="docutils literal notranslate"><span class="pre">take_damage(amount:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>HUD.gd</strong></dt><dd><p>Affiche les jauges (oxygène, vie, faim), la hotbar et les notifications.
API publique : <code class="docutils literal notranslate"><span class="pre">update_oxygen(value:</span> <span class="pre">float)</span></code>, <code class="docutils literal notranslate"><span class="pre">update_health(value:</span> <span class="pre">float)</span></code>,
<code class="docutils literal notranslate"><span class="pre">update_hunger(value:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>EcholocationPulse.gd</strong></dt><dd><p>Crée et anime limpulsion sphérique décholocation. Détecte les mobs et blocs dans le rayon.
API publique : <code class="docutils literal notranslate"><span class="pre">emit_pulse(origin:</span> <span class="pre">Vector3,</span> <span class="pre">radius:</span> <span class="pre">float)</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-ambiance-ambience">
<h2>Module Ambiance (<code class="docutils literal notranslate"><span class="pre">ambience/</span></code>)<a class="headerlink" href="#module-ambiance-ambience" title="Lien vers cette rubrique"></a></h2>
<p>Environnement visuel et sonore sous-marin.</p>
<dl class="simple">
<dt><strong>UnderwaterEnvironment.gd</strong></dt><dd><p>Configure le fog volumétrique, la lumière directionnelle atténuée et les effets de post-process
selon la profondeur du joueur. API publique : <code class="docutils literal notranslate"><span class="pre">set_depth(depth:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>AudioManager.gd</strong></dt><dd><p>Singleton audio. Gère les pistes de musique et les effets sonores avec transitions douces.
API publique : <code class="docutils literal notranslate"><span class="pre">play_sfx(name:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">play_music(name:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">stop_music()</span></code>.</p>
</dd>
<dt><strong>PlanktonParticles.gd</strong></dt><dd><p>Système de particules generant le plancton lumineux ambiant.
API publique : <code class="docutils literal notranslate"><span class="pre">set_density(density:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>MainMenu.gd</strong></dt><dd><p>Logique du menu principal (navigation, transitions de scène).</p>
</dd>
</dl>
</section>
<section id="module-inventaire-inventory">
<h2>Module Inventaire (<code class="docutils literal notranslate"><span class="pre">inventory/</span></code>)<a class="headerlink" href="#module-inventaire-inventory" title="Lien vers cette rubrique"></a></h2>
<p>Gestion des ressources, recettes et interface dinventaire.</p>
<dl class="simple">
<dt><strong>Inventory.gd</strong></dt><dd><p>Stockage des items du joueur (tableau de slots). Synchronisé avec le serveur en multijoueur.
API publique : <code class="docutils literal notranslate"><span class="pre">add_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>, <code class="docutils literal notranslate"><span class="pre">remove_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>,
<code class="docutils literal notranslate"><span class="pre">has_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>.</p>
</dd>
<dt><strong>ItemDatabase.gd</strong></dt><dd><p>Registre de tous les items (id, nom, icône, stack max).
API publique : <code class="docutils literal notranslate"><span class="pre">get_item(id:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">ItemData</span></code>.</p>
</dd>
<dt><strong>CraftingRecipes.gd</strong></dt><dd><p>Définit les 5 recettes de craft et expose la logique de fabrication.
API publique : <code class="docutils literal notranslate"><span class="pre">get_available_recipes(inventory:</span> <span class="pre">Inventory)</span> <span class="pre">-&gt;</span> <span class="pre">Array</span></code>,
<code class="docutils literal notranslate"><span class="pre">craft(recipe_id:</span> <span class="pre">int,</span> <span class="pre">inventory:</span> <span class="pre">Inventory)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>.</p>
</dd>
<dt><strong>InventoryUI.gd</strong></dt><dd><p>Interface graphique de linventaire et du panneau de crafting.
API publique : <code class="docutils literal notranslate"><span class="pre">open()</span></code>, <code class="docutils literal notranslate"><span class="pre">close()</span></code>, <code class="docutils literal notranslate"><span class="pre">refresh()</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-mobs-mobs">
<h2>Module Mobs (<code class="docutils literal notranslate"><span class="pre">mobs/</span></code>)<a class="headerlink" href="#module-mobs-mobs" title="Lien vers cette rubrique"></a></h2>
<p>Intelligence artificielle des créatures marines.</p>
<dl class="simple">
<dt><strong>FishSchool.gd</strong></dt><dd><p>Comportement de banc de poissons (alignment, cohesion, separation — boids simplifié).
Fuit le joueur à proximité. API publique : <code class="docutils literal notranslate"><span class="pre">set_school_size(n:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>Jellyfish.gd</strong></dt><dd><p>Déplacement oscillant aléatoire. Inflige des dégâts de contact au joueur.
API publique : <code class="docutils literal notranslate"><span class="pre">get_damage()</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>.</p>
</dd>
<dt><strong>Shark.gd</strong></dt><dd><p>IA hostile : détection du joueur, poursuite, attaque, réaction à lécholocation (fuite).
API publique : <code class="docutils literal notranslate"><span class="pre">stun(duration:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>MobSpawner.gd</strong></dt><dd><p>Gère lapparition des mobs selon le biome et la profondeur, avec limite de population.
API publique : <code class="docutils literal notranslate"><span class="pre">spawn_in_chunk(chunk_pos:</span> <span class="pre">Vector3i)</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-reseau-net">
<h2>Module Réseau (<code class="docutils literal notranslate"><span class="pre">net/</span></code>)<a class="headerlink" href="#module-reseau-net" title="Lien vers cette rubrique"></a></h2>
<p>Infrastructure multijoueur ENet.</p>
<dl class="simple">
<dt><strong>NetworkManager.gd</strong></dt><dd><p>Singleton réseau. Initialise ENet, gère les connexions/déconnexions joueurs, expose les RPCs.
API publique : <code class="docutils literal notranslate"><span class="pre">host_game(port:</span> <span class="pre">int)</span></code>, <code class="docutils literal notranslate"><span class="pre">join_game(ip:</span> <span class="pre">String,</span> <span class="pre">port:</span> <span class="pre">int)</span></code>,
<code class="docutils literal notranslate"><span class="pre">disconnect()</span></code>.</p>
</dd>
<dt><strong>PlayerSyncComponent.gd</strong></dt><dd><p>Attaché à chaque <code class="docutils literal notranslate"><span class="pre">Dolphin</span></code>. Synchronise position, rotation et état sur le réseau.
API publique : <code class="docutils literal notranslate"><span class="pre">sync_state(state:</span> <span class="pre">Dictionary)</span></code>.</p>
</dd>
<dt><strong>WorldSyncComponent.gd</strong></dt><dd><p>Synchronise les modifications de blocs entre serveur et clients.
API publique : <code class="docutils literal notranslate"><span class="pre">broadcast_block_change(pos:</span> <span class="pre">Vector3i,</span> <span class="pre">block_id:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>ChatManager.gd</strong></dt><dd><p>Gère lenvoi et la réception des messages de chat en multijoueur.
API publique : <code class="docutils literal notranslate"><span class="pre">send_message(text:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">on_message_received(sender:</span> <span class="pre">String,</span> <span class="pre">text:</span> <span class="pre">String)</span></code>.</p>
</dd>
</dl>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Pied de page">
<a href="architecture.html" class="btn btn-neutral float-left" title="Architecture technique" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Précédent</a>
<a href="contribuer.html" class="btn btn-neutral float-right" title="Contribuer au projet" 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>