R-Type
Jeu multijoueur client-serveur moderne en C++23 avec architecture hexagonale et système graphique multi-backend.
Fonctionnalités¶
Multi-Backend Graphique
SDL2 et SFML supportés via système de plugins dynamiques. Changez de backend sans modifier le code.
Architecture Réseau
UDP pour le gameplay temps réel (20Hz), TCP pour l'authentification. Boost.ASIO thread-safe.
Architecture Hexagonale
Domain-Driven Design avec séparation claire : Domain, Application, Infrastructure.
Accessibilité
Modes daltonien (protanopie, deutéranopie, tritanopie), remapping clavier, vitesse ajustable.
Logging Professionnel
12 loggers spdlog (6 client + 6 serveur) avec rotation automatique et multi-sink.
CI/CD Jenkins
Pipeline automatisé avec build, tests, sanitizers et analyse SonarCloud.
Stack Technique¶
Démarrage Rapide¶
# Cloner le projet
git clone https://github.com/Pluenet-Killian/rtype.git && cd rtype
# Installer les dépendances et compiler
./scripts/build.sh
./scripts/compile.sh
# Lancer le serveur
./artifacts/server/linux/rtype_server
# Lancer le client (dans un autre terminal)
./artifacts/client/linux/rtype_client
Nouveau sur R-Type ?
Consultez le guide de démarrage rapide pour une installation complète en 5 minutes.
Architecture¶
graph TB
subgraph Client["Client (C++23)"]
Boot[Boot] --> Engine[Engine]
Engine --> GameLoop[GameLoop]
GameLoop --> Scene[SceneManager]
Scene --> UDP_C[UDPClient]
end
subgraph Server["Serveur (Hexagonal)"]
UDP_S[UDPServer] --> GameWorld[GameWorld]
GameWorld --> Domain[Domain Layer]
end
UDP_C <-.->|UDP 20Hz| UDP_S
style Boot fill:#7c3aed,color:#fff
style Engine fill:#a78bfa,color:#fff
style GameLoop fill:#c4b5fd,color:#000
style UDP_S fill:#f59e0b,color:#000
style GameWorld fill:#fbbf24,color:#000
style Domain fill:#fcd34d,color:#000
Navigation¶
Guide Utilisateur
Installation, configuration et prise en main.
Documentation Technique
Architecture, API et références.
Librairies Graphiques
SDL2, SFML, AssetManager.
Référence
Glossaire, FAQ et changelog.