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

View File

@@ -0,0 +1,79 @@
Configuration du serveur
========================
Fichier de service systemd
---------------------------
Le service est défini dans :
.. code-block:: text
/etc/systemd/system/dauphincraft.service
Contenu type :
.. code-block:: ini
[Unit]
Description=DauphinCraft Game Server
After=network.target
[Service]
User=dauphincraft
WorkingDirectory=/opt/dauphincraft
ExecStart=/opt/dauphincraft/DauphinCraft.x86_64 --headless --port 7777
Restart=on-failure
RestartSec=5s
StandardOutput=append:/var/log/dauphincraft.log
StandardError=append:/var/log/dauphincraft.log
[Install]
WantedBy=multi-user.target
Modifier le port d'écoute
--------------------------
1. Éditez le fichier service :
.. code-block:: bash
sudo nano /etc/systemd/system/dauphincraft.service
2. Modifiez la ligne ``ExecStart`` pour changer le port :
.. code-block:: text
ExecStart=/opt/dauphincraft/DauphinCraft.x86_64 --headless --port 9999
3. Rechargez la configuration et redémarrez le service :
.. code-block:: bash
sudo systemctl daemon-reload
sudo systemctl restart dauphincraft
4. N'oubliez pas d'ouvrir le nouveau port dans le pare-feu (voir :doc:`installation_serveur`).
Nombre maximum de joueurs
--------------------------
La limite de joueurs est définie à **16** par défaut dans le code source
(``scripts/net/NetworkManager.gd``). Cette valeur sera exposée en paramètre
de ligne de commande dans une version future.
Pour modifier temporairement la limite, il est actuellement nécessaire de recompiler
le projet avec la valeur souhaitée.
.. note::
Une option ``--max-players <N>`` sera ajoutée dans la version 0.2.0.
Sauvegarde du monde
-------------------
.. warning::
La sauvegarde persistante du monde n'est pas encore implémentée dans la version 0.1.0.
Le monde est régénéré à chaque redémarrage du serveur.
Cette fonctionnalité est prévue pour une version future.

View File

@@ -0,0 +1,96 @@
Installation du serveur
=======================
Ce guide décrit l'installation du serveur dédié DauphinCraft sur une machine Linux.
Prérequis
---------
+--------------------+-----------------------------------------------+
| Composant | Requis |
+====================+===============================================+
| Système | Debian 11+ ou Ubuntu 22.04 LTS (64 bits) |
+--------------------+-----------------------------------------------+
| RAM | 1 Go minimum |
+--------------------+-----------------------------------------------+
| Stockage | 500 Mo libres |
+--------------------+-----------------------------------------------+
| Réseau | IP publique ou réseau local avec NAT |
+--------------------+-----------------------------------------------+
| Port | UDP 7777 ouvert en entrée |
+--------------------+-----------------------------------------------+
| Droits | Accès root ou sudo |
+--------------------+-----------------------------------------------+
Extraction de l'archive
-----------------------
Téléchargez l'archive serveur depuis le dépôt officiel :
.. code-block:: bash
wget http://<gitea-host>/dauphincraft/releases/download/v0.1.0/DauphinCraft-Server-v0.1.tar.gz
Extrayez-la dans ``/opt`` :
.. code-block:: bash
sudo tar -xzf DauphinCraft-Server-v0.1.tar.gz -C /opt/
sudo mv /opt/DauphinCraft-Server /opt/dauphincraft
Installation
------------
Lancez le script d'installation fourni en tant que root :
.. code-block:: bash
cd /opt/dauphincraft
sudo bash install.sh
Ce script :
1. Crée un utilisateur système ``dauphincraft``.
2. Installe le fichier de service systemd dans ``/etc/systemd/system/dauphincraft.service``.
3. Active et démarre le service automatiquement.
Vérification du service
-----------------------
.. code-block:: bash
systemctl status dauphincraft
Une sortie de type ``Active: active (running)`` confirme que le serveur tourne correctement.
Ouverture du port pare-feu
---------------------------
Avec **ufw** (Ubuntu) :
.. code-block:: bash
sudo ufw allow 7777/udp
sudo ufw reload
Avec **iptables** :
.. code-block:: bash
sudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
Consultation des logs
---------------------
Via **journalctl** (en temps réel) :
.. code-block:: bash
journalctl -u dauphincraft -f
Via le fichier de log :
.. code-block:: bash
tail -f /var/log/dauphincraft.log

View File

@@ -0,0 +1,96 @@
Maintenance du serveur
======================
Mise à jour du serveur
----------------------
Pour mettre à jour DauphinCraft vers une nouvelle version :
1. Téléchargez le nouveau tarball depuis le dépôt officiel :
.. code-block:: bash
wget http://<gitea-host>/dauphincraft/releases/download/vX.Y.Z/DauphinCraft-Server-vX.Y.Z.tar.gz
2. Arrêtez le service :
.. code-block:: bash
sudo systemctl stop dauphincraft
3. Sauvegardez l'ancienne version (optionnel mais recommandé) :
.. code-block:: bash
sudo cp -r /opt/dauphincraft /opt/dauphincraft.bak
4. Extrayez la nouvelle version :
.. code-block:: bash
sudo tar -xzf DauphinCraft-Server-vX.Y.Z.tar.gz -C /opt/
sudo rsync -a --exclude='logs' /opt/DauphinCraft-Server/ /opt/dauphincraft/
5. Relancez le service :
.. code-block:: bash
sudo systemctl start dauphincraft
systemctl status dauphincraft
Surveillance et logs
---------------------
**Consultation des logs en direct :**
.. code-block:: bash
journalctl -u dauphincraft -f
**Consultation des dernières lignes :**
.. code-block:: bash
tail -n 100 /var/log/dauphincraft.log
**Rotation des logs :** le service redirige stdout/stderr vers ``/var/log/dauphincraft.log``.
Pour éviter que ce fichier grossisse indéfiniment, configurez ``logrotate`` :
.. code-block:: bash
sudo nano /etc/logrotate.d/dauphincraft
Contenu suggéré :
.. code-block:: text
/var/log/dauphincraft.log {
daily
rotate 7
compress
missingok
notifempty
}
Vérification de l'état du serveur
-----------------------------------
.. code-block:: bash
systemctl is-active dauphincraft
Retourne ``active`` si le serveur est opérationnel, ``failed`` sinon.
Redémarrage automatique
------------------------
Le fichier de service inclut ``Restart=on-failure`` avec un délai de 5 secondes.
Le serveur redémarre donc automatiquement en cas de crash.
Gestion des joueurs (Kick / Ban)
----------------------------------
.. note::
Les commandes d'administration en jeu (kick, ban) sont prévues pour la version 0.2.0.
Aucune interface d'administration n'est disponible dans la version actuelle.

View File

@@ -0,0 +1,60 @@
Historique des versions
=======================
Version 0.1.0 — Sortie initiale
---------------------------------
*Avril 2026*
Première version publique de DauphinCraft. Cette version pose les bases du jeu :
monde voxel procédural, gameplay dauphin, inventaire, mobs et multijoueur.
Nouvelles fonctionnalités
~~~~~~~~~~~~~~~~~~~~~~~~~
- **Monde voxel procédural sous-marin**
- Génération par bruit de Perlin multi-octave.
- Quatre biomes : récif corallien, forêt de kelp, abysses, épaves.
- Chunks 16×16×16 chargés dynamiquement autour du joueur.
- Six types de blocs : Corail Bleu, Corail Rouge, Kelp, Roche, Épave, Glace.
- **Dauphin contrôleur et HUD**
- Déplacement 6DOF (haut/bas/avant/arrière/strafes).
- Jauges : oxygène, vie, faim.
- Boost de nage et écholocation (révèle l'environnement dans un rayon de 20 unités).
- Hotbar de 9 slots.
- **Inventaire et crafting**
- Inventaire de 27 slots.
- 5 recettes de craft : Lampe bio, Harpon, Bulle d'air, Algue cuisinée, Armure écailles.
- **Mobs (3 types)**
- Bancs de poissons (boids, neutres).
- Méduses (dégâts de contact passifs).
- Requin (hostile, réagit à l'écholocation).
- Spawner par biome avec limite de population.
- **Multijoueur ENet 16 joueurs**
- Architecture autorité serveur.
- Synchronisation position, blocs, inventaire.
- Chat textuel en jeu.
- Serveur dédié headless pour Linux.
- **Ambiance visuelle et audio**
- Shaders sous-marins : fog volumétrique, diffusion lumineuse.
- Particules de plancton lumineux.
- Musique : *Underwater Theme* (Cleyton RX, CC-BY 3.0).
- Effets sonores : ambiance, bulles, chant de baleine (CC0).
Limitations connues
~~~~~~~~~~~~~~~~~~~
- La sauvegarde du monde n'est pas persistante (monde régénéré à chaque redémarrage).
- Pas de commandes d'administration en jeu (kick/ban prévu en 0.2.0).
- La limite de joueurs (16) n'est pas configurable en ligne de commande.

View File

@@ -0,0 +1,50 @@
Crédits
=======
Moteur
------
- **Godot Engine 4.6.2** — Licence MIT — https://godotengine.org
Assets
------
Tous les assets sont listés ci-dessous avec leur source et licence.
+-----------------------------------+-------------------------------------------------------+-------------+
| Asset | Source | Licence |
+===================================+=======================================================+=============+
| ``icon.svg`` | Créé manuellement | CC0 |
+-----------------------------------+-------------------------------------------------------+-------------+
| ``audio/music/underwater_theme`` | Cleyton RX — https://opengameart.org/content/ | CC-BY 3.0 |
| | underwater-theme | |
+-----------------------------------+-------------------------------------------------------+-------------+
| ``audio/sfx/underwater_ambient`` | Zozzy — https://freesound.org/people/Zozzy/ | CC0 |
| | sounds/56678/ | |
+-----------------------------------+-------------------------------------------------------+-------------+
| ``audio/sfx/bubbles`` | ristooooo1 — https://freesound.org/people/ | CC0 |
| | ristooooo1/sounds/539823/ | |
+-----------------------------------+-------------------------------------------------------+-------------+
| ``audio/sfx/whale_call`` | taure — https://freesound.org/people/taure/ | CC0 |
| | sounds/361423/ | |
+-----------------------------------+-------------------------------------------------------+-------------+
Attribution requise
-------------------
Conformément à la licence CC-BY 3.0, la musique de fond doit être créditée ainsi :
*"Underwater Theme" par Cleyton RX,*
*https://opengameart.org/content/underwater-theme,*
*sous licence Creative Commons Attribution 3.0.*
Auteur du jeu
-------------
- **Baptiste Moulin** — Conception, développement, direction artistique
Remerciements
-------------
- La communauté Godot Engine pour ses ressources et son support.
- Les créateurs d'assets CC0 et CC-BY qui rendent les projets open source possibles.

View File

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

View File

@@ -0,0 +1,110 @@
Contribuer au projet
====================
Outils nécessaires
------------------
- **Godot Engine 4.6.2** : téléchargez depuis https://godotengine.org/download
- **Git** : version 2.x ou supérieure
- Accès au dépôt Gitea de DauphinCraft
Cloner le dépôt
---------------
.. code-block:: bash
git clone http://<gitea-host>/dauphincraft/dauphincraft.git
cd dauphincraft
.. note::
Remplacez ``<gitea-host>`` par l'adresse du serveur Gitea communautaire.
Ouvrir le projet dans Godot
-----------------------------
1. Lancez Godot Engine 4.6.2.
2. Dans le gestionnaire de projets, cliquez sur **Import**.
3. Naviguez jusqu'au dossier cloné et sélectionnez ``project.godot``.
4. Cliquez sur **Import & Edit**.
Le projet s'ouvre directement dans l'éditeur. Appuyez sur **F5** pour lancer le jeu en mode éditeur.
Build et export
---------------
Les présets d'export sont configurés dans ``export_presets.cfg``.
**Exporter pour Windows :**
1. Menu **Projet → Exporter**.
2. Sélectionnez le préset **Windows Desktop**.
3. Cliquez sur **Exporter le projet** et choisissez un dossier de sortie.
**Exporter le serveur Linux :**
1. Menu **Projet → Exporter**.
2. Sélectionnez le préset **Linux Server**.
3. Cliquez sur **Exporter le projet**.
.. note::
Pour exporter vers Linux, vous devez avoir installé le template d'export Linux dans Godot
(**Éditeur → Gérer les modèles d'exportation**).
Style de code
-------------
- **Typage strict** : déclarez toujours les types explicitement (``var x: int = 0``).
- **Pas de TODO** laissé dans le code soumis — ouvrez une issue à la place.
- **Nommage** : ``snake_case`` pour les variables et fonctions, ``PascalCase`` pour les classes.
- **Commentaires** : en français, concis.
- **Signals** : préfixez les signaux avec le nom du composant (``dolphin_died``, ``chunk_loaded``).
Exemple de code conforme :
.. code-block:: gdscript
class_name DolphinController
extends CharacterBody3D
@export var speed: float = 5.0
var _oxygen: float = 1.0
func take_damage(amount: int) -> void:
# Réduit les PV et déclenche le signal si mort
health -= amount
if health <= 0:
emit_signal("dolphin_died")
Soumettre une contribution
---------------------------
1. Créez une branche depuis ``main`` :
.. code-block:: bash
git checkout -b feat/ma-fonctionnalite
2. Faites vos modifications et committez :
.. code-block:: bash
git add .
git commit -m "feat: description courte"
3. Poussez votre branche :
.. code-block:: bash
git push origin feat/ma-fonctionnalite
4. Ouvrez une **Pull Request** sur le Gitea de DauphinCraft.
5. Un mainteneur relit et fusionne après validation.
Discussion et support
----------------------
Rejoignez le serveur Discord communautaire et consultez le canal **#dauphincraft-dev**
pour poser vos questions, proposer des idées ou signaler des bugs.

View File

@@ -0,0 +1,129 @@
Modules du jeu
==============
Le code source est organisé en six modules dans ``scripts/``.
Module Monde (``world/``)
--------------------------
Responsable de la génération et de la gestion du monde voxel sous-marin.
**BlockDatabase.gd**
Registre central de tous les types de blocs (id, nom, texture, propriétés physiques).
API publique : ``get_block(id: int) -> BlockData``, ``get_id_by_name(name: String) -> int``.
**Chunk.gd**
Représente un chunk 16×16×16 blocs. Gère son maillage 3D et son état de chargement.
API publique : ``set_block(x, y, z, id)``, ``get_block(x, y, z) -> int``, ``rebuild_mesh()``.
**ChunkManager.gd**
Orchestre le chargement/déchargement des chunks autour du joueur (rayon configurable).
API publique : ``get_chunk(cx, cy, cz) -> Chunk``, ``request_chunk(pos: Vector3i)``.
**WorldGenerator.gd**
Génère le contenu des chunks de façon procédurale (bruit de Perlin, biomes, structures).
API publique : ``generate_chunk(cx, cy, cz) -> Array`` (tableau de 4096 block ids).
Module Dauphin (``dolphin/``)
------------------------------
Contrôle du personnage joueur et interface utilisateur associée.
**DolphinController.gd**
Gère les entrées clavier/souris, applique la physique de nage, envoie les actions au serveur.
API publique : ``apply_input(input: Dictionary)``, ``take_damage(amount: int)``.
**HUD.gd**
Affiche les jauges (oxygène, vie, faim), la hotbar et les notifications.
API publique : ``update_oxygen(value: float)``, ``update_health(value: float)``,
``update_hunger(value: float)``.
**EcholocationPulse.gd**
Crée et anime l'impulsion sphérique d'écholocation. Détecte les mobs et blocs dans le rayon.
API publique : ``emit_pulse(origin: Vector3, radius: float)``.
Module Ambiance (``ambience/``)
--------------------------------
Environnement visuel et sonore sous-marin.
**UnderwaterEnvironment.gd**
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 : ``set_depth(depth: float)``.
**AudioManager.gd**
Singleton audio. Gère les pistes de musique et les effets sonores avec transitions douces.
API publique : ``play_sfx(name: String)``, ``play_music(name: String)``, ``stop_music()``.
**PlanktonParticles.gd**
Système de particules generant le plancton lumineux ambiant.
API publique : ``set_density(density: float)``.
**MainMenu.gd**
Logique du menu principal (navigation, transitions de scène).
Module Inventaire (``inventory/``)
-----------------------------------
Gestion des ressources, recettes et interface d'inventaire.
**Inventory.gd**
Stockage des items du joueur (tableau de slots). Synchronisé avec le serveur en multijoueur.
API publique : ``add_item(id: int, qty: int) -> bool``, ``remove_item(id: int, qty: int) -> bool``,
``has_item(id: int, qty: int) -> bool``.
**ItemDatabase.gd**
Registre de tous les items (id, nom, icône, stack max).
API publique : ``get_item(id: int) -> ItemData``.
**CraftingRecipes.gd**
Définit les 5 recettes de craft et expose la logique de fabrication.
API publique : ``get_available_recipes(inventory: Inventory) -> Array``,
``craft(recipe_id: int, inventory: Inventory) -> bool``.
**InventoryUI.gd**
Interface graphique de l'inventaire et du panneau de crafting.
API publique : ``open()``, ``close()``, ``refresh()``.
Module Mobs (``mobs/``)
------------------------
Intelligence artificielle des créatures marines.
**FishSchool.gd**
Comportement de banc de poissons (alignment, cohesion, separation — boids simplifié).
Fuit le joueur à proximité. API publique : ``set_school_size(n: int)``.
**Jellyfish.gd**
Déplacement oscillant aléatoire. Inflige des dégâts de contact au joueur.
API publique : ``get_damage() -> int``.
**Shark.gd**
IA hostile : détection du joueur, poursuite, attaque, réaction à l'écholocation (fuite).
API publique : ``stun(duration: float)``.
**MobSpawner.gd**
Gère l'apparition des mobs selon le biome et la profondeur, avec limite de population.
API publique : ``spawn_in_chunk(chunk_pos: Vector3i)``.
Module Réseau (``net/``)
-------------------------
Infrastructure multijoueur ENet.
**NetworkManager.gd**
Singleton réseau. Initialise ENet, gère les connexions/déconnexions joueurs, expose les RPCs.
API publique : ``host_game(port: int)``, ``join_game(ip: String, port: int)``,
``disconnect()``.
**PlayerSyncComponent.gd**
Attaché à chaque ``Dolphin``. Synchronise position, rotation et état sur le réseau.
API publique : ``sync_state(state: Dictionary)``.
**WorldSyncComponent.gd**
Synchronise les modifications de blocs entre serveur et clients.
API publique : ``broadcast_block_change(pos: Vector3i, block_id: int)``.
**ChatManager.gd**
Gère l'envoi et la réception des messages de chat en multijoueur.
API publique : ``send_message(text: String)``, ``on_message_received(sender: String, text: String)``.

40
docs/_build/html/_sources/index.rst.txt vendored Normal file
View File

@@ -0,0 +1,40 @@
DauphinCraft — Documentation
============================
Bienvenue dans **DauphinCraft**, un jeu voxel sous-marin multijoueur où vous incarnez un dauphin.
Explorez les fonds marins, construisez des structures, craftez des outils et jouez avec vos amis
jusqu'à 16 joueurs simultanés.
.. toctree::
:maxdepth: 2
:caption: Joueur
joueur/installation
joueur/controles
joueur/mecaniques
joueur/craft
joueur/multijoueur
.. toctree::
:maxdepth: 2
:caption: Administrateur serveur
admin/installation_serveur
admin/configuration
admin/maintenance
.. toctree::
:maxdepth: 2
:caption: Développement
dev/architecture
dev/modules
dev/contribuer
.. toctree::
:maxdepth: 1
:caption: Annexes
credits
changelog

View File

@@ -0,0 +1,86 @@
Contrôles
=========
Toutes les touches sont configurables dans les paramètres du jeu (**Échap → Paramètres → Touches**).
Voici la configuration par défaut.
Déplacement
-----------
+---------------------+------------------+
| Action | Touche par défaut|
+=====================+==================+
| Nager en avant | W |
+---------------------+------------------+
| Reculer | S |
+---------------------+------------------+
| Strafe gauche | A |
+---------------------+------------------+
| Strafe droit | D |
+---------------------+------------------+
| Monter | Espace |
+---------------------+------------------+
| Descendre | Shift |
+---------------------+------------------+
| Boost de nage | Ctrl |
+---------------------+------------------+
.. note::
Le **boost** consomme de l'énergie (jauge bleue en bas à droite du HUD). Il se recharge
automatiquement au repos.
Capacités spéciales
-------------------
+-----------------------------+------------------+
| Action | Touche par défaut|
+=============================+==================+
| Écholocation | E |
+-----------------------------+------------------+
| Activer / Désactiver la HUD | H |
+-----------------------------+------------------+
L'**écholocation** envoie une impulsion sonore qui révèle les blocs et mobs environnants
dans un rayon de 20 unités, même dans les zones sombres.
Interaction avec le monde
--------------------------
+----------------------------+------------------+
| Action | Touche par défaut|
+============================+==================+
| Casser un bloc | Clic gauche |
+----------------------------+------------------+
| Poser un bloc | Clic droit |
+----------------------------+------------------+
| Changer de slot (hotbar) | Molette souris |
+----------------------------+------------------+
| Ouvrir l'inventaire | Tab |
+----------------------------+------------------+
Interface
---------
+----------------------------+------------------+
| Action | Touche par défaut|
+============================+==================+
| Ouvrir le chat | F2 |
+----------------------------+------------------+
| Menu pause | Échap |
+----------------------------+------------------+
Chat
----
En multijoueur, appuyez sur **F2** pour ouvrir la fenêtre de chat. Tapez votre message et
validez avec **Entrée**. Appuyez sur **Échap** pour fermer le chat sans envoyer.
Menu pause
----------
Appuyez sur **Échap** pour mettre le jeu en pause. Le menu propose :
- **Reprendre** : retour au jeu.
- **Paramètres** : audio, vidéo, contrôles.
- **Quitter** : retour au menu principal.

View File

@@ -0,0 +1,112 @@
Crafting — Recettes
===================
Le système de crafting permet de transformer des ressources collectées en objets utiles.
Ouvrez l'inventaire (**Tab**), puis accédez à l'onglet **Crafting** pour voir les recettes disponibles.
Comment crafter
---------------
1. Ouvrez l'inventaire avec **Tab**.
2. Sélectionnez l'onglet **Crafting**.
3. Les recettes disponibles (ingrédients présents en inventaire) s'affichent en surbrillance.
4. Cliquez sur la recette souhaitée pour fabriquer l'objet.
Recettes disponibles
--------------------
Lampe bio
~~~~~~~~~
Éclaire une zone de 10 blocs de rayon. Indispensable dans les abysses.
+------------------+----------+----------------------+
| Ingrédient | Quantité | Résultat |
+==================+==========+======================+
| Corail Bleu | 2 | Lampe bio × 1 |
+------------------+----------+ |
| Kelp | 1 | |
+------------------+----------+----------------------+
Harpon
~~~~~~
Arme à distance. Permet d'attaquer les mobs de loin (portée 12 unités, dégâts 4 PV).
+------------------+----------+----------------------+
| Ingrédient | Quantité | Résultat |
+==================+==========+======================+
| Roche | 2 | Harpon × 1 |
+------------------+----------+ |
| Épave | 2 | |
+------------------+----------+----------------------+
Bulle d'air
~~~~~~~~~~~
Consommable d'urgence. Recharge instantanément 50 % de la jauge d'oxygène.
+------------------+----------+----------------------+
| Ingrédient | Quantité | Résultat |
+==================+==========+======================+
| Kelp | 3 | Bulle d'air × 1 |
+------------------+----------+ |
| Glace | 1 | |
+------------------+----------+----------------------+
.. note::
La **Glace** se trouve uniquement dans les zones profondes (abysses, 80 m+).
Algue cuisinée
~~~~~~~~~~~~~~
Nourriture. Restaure 30 % de la jauge de faim.
+------------------+----------+----------------------+
| Ingrédient | Quantité | Résultat |
+==================+==========+======================+
| Kelp | 2 | Algue cuisinée × 2 |
+------------------+----------+----------------------+
.. tip::
Recette très accessible dès le début. La forêt de kelp est le meilleur endroit pour
farmer le Kelp.
Armure écailles
~~~~~~~~~~~~~~~
Protection passive. Réduit les dégâts reçus de 25 % (toutes sources).
+------------------+----------+----------------------+
| Ingrédient | Quantité | Résultat |
+==================+==========+======================+
| Corail Rouge | 4 | Armure écailles × 1 |
+------------------+----------+ |
| Épave | 2 | |
+------------------+----------+----------------------+
.. warning::
L'armure se casse après 50 impacts. Craftez-en une de rechange avant de partir
explorer les épaves ou les abysses.
Ressources et où les trouver
----------------------------
+-------------------+---------------------------+
| Ressource | Biome / Source |
+===================+===========================+
| Corail Bleu | Récif corallien |
+-------------------+---------------------------+
| Corail Rouge | Récif corallien |
+-------------------+---------------------------+
| Kelp | Forêt de kelp |
+-------------------+---------------------------+
| Roche | Épaves, fond marin |
+-------------------+---------------------------+
| Épave | Zones d'épaves |
+-------------------+---------------------------+
| Glace | Abysses (80 m+) |
+-------------------+---------------------------+

View File

@@ -0,0 +1,74 @@
Installation — Guide joueur
===========================
Configuration minimale requise
-------------------------------
+--------------------+-----------------------------------------------+
| Composant | Minimum requis |
+====================+===============================================+
| Système | Windows 10 / Windows 11 (64 bits) |
+--------------------+-----------------------------------------------+
| RAM | 4 Go |
+--------------------+-----------------------------------------------+
| GPU | Compatible Vulkan 1.0 ou DirectX 12 |
+--------------------+-----------------------------------------------+
| Stockage | 500 Mo d'espace libre |
+--------------------+-----------------------------------------------+
| Réseau | Connexion Internet (multijoueur uniquement) |
+--------------------+-----------------------------------------------+
Téléchargement
--------------
La dernière version de DauphinCraft est disponible sur le dépôt officiel :
.. code-block:: text
http://<gitea-host>/dauphincraft/releases
Téléchargez l'archive ``DauphinCraft-v0.1.0-windows.zip`` correspondant à votre système.
.. note::
Remplacez ``<gitea-host>`` par l'adresse fournie par votre administrateur ou la communauté.
Procédure d'installation
------------------------
1. Décompressez l'archive ``DauphinCraft-v0.1.0-windows.zip`` dans le dossier de votre choix.
2. Ouvrez le dossier extrait.
3. Double-cliquez sur ``DauphinCraft.exe`` pour lancer le jeu.
Aucune installation supplémentaire n'est nécessaire. Le jeu est autonome (portable).
Dépannage antivirus
-------------------
Windows Defender ou votre antivirus peut bloquer le lancement car l'exécutable n'est pas signé.
**Solution :**
1. Clic droit sur ``DauphinCraft.exe`` → **Propriétés**.
2. En bas de l'onglet *Général*, cochez **Débloquer** si la case est présente.
3. Cliquez sur **Appliquer**, puis **OK**.
4. Relancez ``DauphinCraft.exe``.
Si votre antivirus met en quarantaine le fichier, ajoutez une exception pour le dossier
d'installation de DauphinCraft.
.. warning::
Téléchargez toujours DauphinCraft depuis le dépôt officiel. Ne faites pas confiance à des
sources tierces inconnues.
Première connexion
------------------
Au premier lancement, le jeu vous propose trois modes :
- **Solo** : jouer seul en monde local.
- **Héberger** : créer une partie multijoueur sur votre machine.
- **Rejoindre** : rejoindre une partie existante avec une IP et un port.
Voir :doc:`multijoueur` pour les détails réseau.

View File

@@ -0,0 +1,86 @@
Mécaniques de jeu
=================
Jauges du joueur
----------------
Trois jauges sont visibles en permanence dans le HUD (en bas de l'écran) :
**Oxygène (jauge bleue)**
Représente l'air restant dans les poumons du dauphin. Elle diminue lorsque vous évoluez
sous l'eau sans remonter à la surface. À zéro, vous perdez de la vie rapidement.
Remontez à la surface pour la recharger instantanément.
**Vie (jauge rouge)**
Points de vie du dauphin. Diminue en cas d'attaque par un mob hostile ou de manque
d'oxygène prolongé. Se régénère lentement en nageant sans contrainte, ou plus vite
en consommant de la nourriture.
**Faim (jauge orange)**
Représente la satiété. Diminue au fil du temps et lors d'actions intenses (boost, écholocation).
Si la jauge de faim atteint zéro, la régénération de vie s'arrête.
Gestion de l'oxygène
--------------------
Votre dauphin a besoin de respirer. La surface de l'eau correspond à la limite supérieure
du monde. Remontez régulièrement pour éviter de vous noyer.
- Sous **50 % d'oxygène** : la jauge clignote doucement.
- Sous **20 % d'oxygène** : la jauge clignote rapidement et un son d'alerte retentit.
- À **0 %** : vous perdez 1 PV par seconde jusqu'à la remontée.
.. tip::
Craftez une **Bulle d'air** (voir :doc:`craft`) pour obtenir une réserve d'oxygène
supplémentaire d'urgence.
Biomes sous-marins
------------------
Le monde est généré de façon procédurale et comporte quatre biomes principaux :
**Récif corallien**
Zone peu profonde (030 m), lumineuse, riche en coraux et poissons. Idéal pour débuter.
On y trouve du **Corail Bleu** et du **Corail Rouge**.
**Forêt de kelp**
Zone intermédiaire (2060 m). Grandes algues offrant une visibilité réduite.
Source principale de **Kelp** et de **Kelp_Food**.
**Abysses**
Zone profonde (80 m et plus). Obscurité totale sans lampe bio. Ressources rares
mais mobs dangereux (Requins).
**Épaves**
Zones ponctuelles à toutes profondeurs. Recèlent de la **Roche** et de l'**Épave**
(matériaux pour recettes avancées). Attention aux Requins patrouillant les épaves.
Mobs
----
Trois types de créatures peuplent les océans de DauphinCraft :
**Bancs de poissons (FishSchool)**
Neutres. Nagent en groupe de manière aléatoire. Source de nourriture si attaqués.
Comportement de fuite à l'approche du joueur.
**Méduses (Jellyfish)**
Passives mais infligent des dégâts de contact si on les touche (1 PV par contact).
Lumineuses, elles sont utiles comme repères dans les abysses.
**Requin (Shark)**
Hostile. Attaque le joueur à vue dans un rayon de 15 unités. Inflige 3 PV par morsure.
Peut être repoussé avec une **impulsion d'écholocation** (touche E).
Mort et respawn
---------------
Quand vos points de vie atteignent zéro, vous mourez. Un écran de mort s'affiche.
- Vos blocs posés dans le monde restent en place.
- Votre inventaire est conservé.
- Vous réapparaissez au point de spawn initial (centre du monde, en surface).
En multijoueur, les autres joueurs continuent de jouer pendant votre respawn. Le délai
de respawn est de **3 secondes**.

View File

@@ -0,0 +1,78 @@
Multijoueur
===========
DauphinCraft supporte jusqu'à **16 joueurs simultanés** via une architecture réseau ENet UDP.
Modes de jeu
------------
**Solo**
Jouer seul en monde local. Aucune connexion réseau requise. La partie n'est pas accessible
aux autres joueurs.
**Héberger une partie**
Lancez un serveur depuis votre propre machine. Les joueurs de votre réseau local (ou Internet
si vous configurez votre routeur) peuvent vous rejoindre.
**Rejoindre une partie**
Entrez l'adresse IP et le port d'une partie existante pour la rejoindre.
Port réseau
-----------
DauphinCraft utilise le port **UDP 7777** par défaut.
Pour héberger une partie accessible depuis Internet :
1. Ouvrez les paramètres de votre box/routeur.
2. Créez une règle de redirection de port (NAT/PAT) :
- **Port externe** : 7777 (UDP)
- **Port interne** : 7777 (UDP)
- **IP locale cible** : l'adresse IP locale de votre machine (ex. 192.168.1.10)
3. Communiquez votre **IP publique** et le port **7777** à vos amis.
.. tip::
Pour trouver votre IP publique, allez sur ``https://ifconfig.me`` dans un navigateur.
Rejoindre une partie
--------------------
Dans le menu principal, choisissez **Rejoindre**, puis entrez :
- **Adresse IP** : l'IP fournie par l'hôte (ex. ``203.0.113.42``).
- **Port** : ``7777`` (ou le port personnalisé communiqué par l'hôte).
Cliquez sur **Connexion**. Si le serveur est disponible, vous rejoindrez la partie en quelques
secondes.
Héberger depuis le jeu
-----------------------
Choisissez **Héberger** dans le menu principal. Le jeu démarre un serveur intégré (écoute sur
le port 7777 UDP) tout en vous permettant de jouer simultanément.
.. note::
L'hébergement intégré est pratique pour des sessions entre amis. Pour un serveur permanent
24h/24, consultez :doc:`../admin/installation_serveur`.
Serveur public officiel
------------------------
Un serveur public de démonstration est disponible à l'adresse :
.. code-block:: text
http://example.invalid (à remplacer lors du déploiement)
.. warning::
Ce serveur est fourni à titre de démonstration. Il peut être indisponible ou réinitialisé
sans préavis.
Limite de joueurs
-----------------
La limite par défaut est **16 joueurs** par session. Elle peut être modifiée par l'administrateur
du serveur (voir :doc:`../admin/configuration`).