Aller au contenu

R-Type

Jeu multijoueur client-serveur moderne en C++23 avec architecture hexagonale et système graphique multi-backend.

33k+
Lignes de code
C++23
Standard moderne
2
Backends graphiques
UDP/TCP
Temps réel

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

C++23 CMake SDL2 SFML 3.0 Boost.ASIO spdlog Google Test Jenkins vcpkg

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

📖

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.