██████╗ ████████╗██╗ ██╗██████╗ ███████╗
██╔══██╗ ╚══██╔══╝╚██╗ ██╔╝██╔══██╗██╔════╝
██████╔╝█████╗ ██║ ╚████╔╝ ██████╔╝█████╗
██╔══██╗╚════╝ ██║ ╚██╔╝ ██╔═══╝ ██╔══╝
██║ ██║ ██║ ██║ ██║ ███████╗
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝
🚀 A Modern C++ Implementation | ECS Architecture | Multiplayer Ready 🎮
┌─────────────────────────────────────────────────────────────┐
│ ▶ Press START to begin your journey... │
│ ⚠ WARNING: High-performance retro gaming ahead! │
└─────────────────────────────────────────────────────────────┘
🎮 GAME MENU - SELECT YOUR OPTION
╔════════════════════════════════════════════════════════════╗
║ ║
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ║
║ ┃ 🚀 QUICK START ┃ ║
║ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ║
║ ║
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ║
║ ┃ 📚 DOCUMENTATION LIBRARY ┃ ║
║ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ║
║ ║
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ║
║ ┃ 🛠️ BUILD SYSTEM ┃ ║
║ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ║
║ ║
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ║
║ ┃ 🏗️ PROJECT STRUCTURE ┃ ║
║ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ║
║ ║
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ║
║ ┃ 🎯 FEATURES & SPECS ┃ ║
║ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ║
║ ║
╚════════════════════════════════════════════════════════════╝
🚀 QUICK START - LEVEL 1
<img src="assets/sprites/r-typesheet3.gif" width="32" /> LINUX MISSION
# 🎯 OBJECTIVE: Launch the game
./Builder/Linux/linux_build.sh
# 🚀 Deploy the server
./build/r-type_server &
# 🎮 Start the client
./build/r-type_client
💾 Status: READY TO DEPLOY
<img src="assets/sprites/r-typesheet8.gif" width="32" /> WINDOWS MISSION
# 🎯 OBJECTIVE: Compile for Windows
./Builder/Windows/windows_build_mingw-w64.sh
# 🚀 Launch server.exe
./build/r-type_server.exe
# 🎮 Launch client.exe
./build/r-type_client.exe
💾 Status: CROSS-PLATFORM ENABLED
<img src="assets/sprites/r-typesheet9.gif" width="32" /> macOS MISSION
# 🎯 OBJECTIVE: Build on macOS
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(sysctl -n hw.ncpu)
# 🚀 Deploy the server
./build/r-type_server &
# 🎮 Start the client
./build/r-type_client
💾 Status: APPLE COMPATIBLE
🎖️ MANUAL BUILD SEQUENCE (EXPERT MODE)
┌─[ MISSION CONTROL ]────────────────────────────────────────┐
│ │
│ Step 1: Configure CMake │
│ $ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release │
│ │
│ Step 2: Build with maximum threads │
│ $ cmake --build build -j$(nproc) │
│ │
│ Step 3: Launch sequence │
│ $ ./build/r-type_server & │
│ $ ./build/r-type_client │
│ │
│ ✅ MISSION ACCOMPLISHED │
└─────────────────────────────────────────────────────────────┘
📚 DOCUMENTATION LIBRARY - CODEX ACCESS
╔══════════════════════════════════════════════════════════════╗
║ 📖 DOCUMENTATION TERMINAL - SELECT YOUR DATA FILE ║
╚══════════════════════════════════════════════════════════════╝
🏛️ ARCHITECTURE
📐 ECS Blueprint
UML Diagram
📖 ECS GUIDE
🧠 Engine Manual
830 lines
⚡ QUICK START
🚀 Fast Deploy
322 lines
📊 BENCHMARK
⚡ Performance
Stats & Metrics
📡 NETWORK RFC
📜 Protocol Spec
RFC Document
🔄 SEQUENCE DIAGRAM
📊 Message Flow
PlantUML
🔌 DETAILED FLOW
🔍 Internal Flow
Technical
📨 MESSAGE TYPES
📦 All Messages
Overview
🏗️ BUILD: CMAKE
🔧 CMake Manual
Build Commands
🪟 BUILD: WINDOWS
🪟 Win Setup
Cross-compile
� DEPLOYMENT
🚀 Deploy Guide
Production
🛠️ BUILD SYSTEM - TERMINAL COMMANDS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 🔧 CMAKE BUILD OPERATIONS ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
| 💻 COMMAND | 🎯 FUNCTION | ⚡ SPEED |
cmake --build build --target clean_bin | 🧹 Clean binaries only | FAST |
cmake --build build --target fclean | 💣 Full clean (nuke build) | COMPLETE |
cmake --build build --target re | ♻️ Rebuild from scratch | THOROUGH |
🔩 SYSTEM REQUIREMENTS
┌─[ MINIMUM SPECS ]──────────────────────────────────────────┐
│ ⚙️ CMake : 3.15+ │
│ 💻 Compiler : C++17 (GCC 7+ / Clang 5+ / MSVC 2017+) │
│ 🐧 Linux : GCC 7+ / Clang 5+ │
│ 🪟 Windows : MinGW-w64 (optional, cross-compile) │
│ 🍎 macOS : Clang (Xcode Command Line Tools) │
│ 🎮 Graphics : Raylib 5.0 (auto-fetched) │
│ 🌐 Network : ASIO 1.29.0 (standalone, auto-fetched) │
└─────────────────────────────────────────────────────────────┘
🏗️ PROJECT STRUCTURE - MAP LAYOUT
╔═══════════════════════════════════════════════════════════╗
║ 🗺️ CODEBASE NAVIGATION SYSTEM ║
╚═══════════════════════════════════════════════════════════╝
R-Type/
│
├── 📁 src/ # 🎯 Source Code Sector
│ ├── 🖥️ client/ # Player-side implementation
│ │ ├── main.cpp
│ │ ├── Graphics/
│ │ └── systems/
│ │
│ ├── 🧠 engine/ # Core ECS Engine
│ │ ├── ecs/ # Entity-Component-System
│ │ │ ├── core/ # Registry, ComponentArray
│ │ │ └── components/ # Transform, Velocity, etc.
│ │ ├── graphics/ # IRenderer abstraction
│ │ └── ui/ # UI components
│ │
│ ├── 🎮 game/ # Game-specific logic
│ │ ├── Components.hpp
│ │ ├── Systems.hpp
│ │ └── components/
│ │
│ └── 🌐 server/ # Server-side implementation
│ ├── main.cpp
│ ├── Server.hpp
│ ├── Network/
│ └── systems/
│
├── 📚 doc/ # 📖 Documentation Zone
│ ├── ECS_Architecture.puml # System architecture
│ ├── ECS_Documentation.md # Full ECS guide
│ ├── Engine_QuickStart.md # Quick tutorial
│ ├── BENCHMARK.md # Performance data
│ └── build/ # Build guides
│ ├── CMakeCommand.md
│ └── WINDOWS_BUILD.md
│
├── 🎨 assets/ # 🖼️ Game Assets
│ ├── sprites/ # 42 animated GIFs!
│ └── sound/ # Audio files
│
├── 🏗️ Builder/ # 🔨 Build Scripts
│ ├── Linux/
│ │ └── linux_build.sh
│ └── Windows/
│ ├── windows_build_mingw-w64.sh
│ └── windows_build_wsl.sh
│
├── ⚙️ cmake/ # 🔧 CMake Toolchain
│ └── toolchain-mingw.cmake
│
├── 🏭 build/ # 📦 Compiled Output
│ ├── r-type_client
│ ├── r-type_server
│ └── _deps/ # External libs (raylib, asio)
│
├── 📄 CMakeLists.txt # Main build config
├── 📖 README.md # You are here! 👈
└── 🔍 Doxyfile # Doxygen config
🎯 FEATURES & SPECS - POWER-UPS UNLOCKED
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ⭐ FEATURE LIST - CAPABILITIES ACQUIRED ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
🎮 CORE SYSTEMS
| 🔥 FEATURE | 📝 DESCRIPTION | ✅ STATUS |
| 🧩 ECS Architecture | Entity-Component-System with SparseSet optimization | ONLINE |
| 🌐 Multiplayer | Client-Server networking with ASIO | ACTIVE |
| 🎨 Graphics Engine | Raylib-powered rendering with IRenderer abstraction | RENDERING |
| 🔫 Bullet Patterns | Advanced bullet hell mechanics | FIRING |
| ⚡ Performance | O(1) component lookups, zero-allocation queries | OPTIMIZED |
| 🪟 Cross-Platform | Linux, Windows, macOS support | PORTABLE |
| 🎯 Event System | Decoupled EventBus communication | BROADCASTING |
| 🛡️ Safe Handles | Generation-tracked entity handles | PROTECTED |
🚀 TECHNICAL HIGHLIGHTS
💾 DATA-ORIENTED
- SparseSet storage
- Cache-friendly iteration
- Minimal allocations
🎭 FLEXIBLE DESIGN
- IRenderable interface
- Headless mode ready
- Modular systems
⚡ HIGH PERFORMANCE
- O(1) lookups
- SIMD-friendly
- Lock-free queries
🎮 GAME CONTROLS - INPUT GUIDE
╔═══════════════════════════════════════════════════════════╗
║ 🕹️ KEYBOARD MAPPING ║
╚═══════════════════════════════════════════════════════════╝
[Z] 🔼 Move Up
[Q] [S] [D] ◀️ Down ▶️
[SPACE] 💥 Fire
[ESC] ⏸️ Pause/Menu
🏆 ACHIEVEMENTS - PROJECT STATS
┌─────────────────────────────────────────────────────────┐
│ 🎖️ DEVELOPMENT ACHIEVEMENTS │
├─────────────────────────────────────────────────────────┤
│ │
│ ⭐⭐⭐⭐⭐ ECS Master - Complete architecture │
│ ⭐⭐⭐⭐⭐ Network Pro - Multiplayer ready │
│ ⭐⭐⭐⭐⭐ Cross-Platform - Multi-OS support │
│ ⭐⭐⭐⭐⭐ Performance King - Optimized engine │
│ ⭐⭐⭐⭐⭐ Documentation Lord - 1000+ doc lines │
│ │
└─────────────────────────────────────────────────────────┘
📊 CODE STATISTICS
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 📈 METRIC ┃ 📊 VALUE ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Languages │ C++ (17), CMake │
│ Architecture │ Entity-Component-System │
│ Documentation Lines │ 1000+ (ECS + QuickStart) │
│ Sprites │ 42 animated GIFs │
│ Network Protocol │ Custom ASIO-based │
│ Build System │ CMake 3.15+ │
└────────────────────────┴───────────────────────────────┘
🌟 CREDITS - DEVELOPMENT TEAM
╔═══════════════════════════════════════════════════════════╗
║ ║
║ ████████╗██╗ ██╗ █████╗ ███╗ ██╗██╗ ██╗███████╗ ║
║ ╚══██╔══╝██║ ██║██╔══██╗████╗ ██║██║ ██╔╝██╔════╝ ║
║ ██║ ███████║███████║██╔██╗ ██║█████╔╝ ███████╗ ║
║ ██║ ██╔══██║██╔══██║██║╚██╗██║██╔═██╗ ╚════██║ ║
║ ██║ ██║ ██║██║ ██║██║ ╚████║██║ ██╗███████║ ║
║ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ║
║ ║
║ 🚀 Powered by EPITECH Tek3 🚀 ║
║ ║
╚═══════════════════════════════════════════════════════════╝
👾 MADE WITH 💚 BY THE R-TYPE CREW
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🎮 GAME OVER 🎮 ║
║ ║
║ Thanks for playing R-Type! ║
║ ║
║ Press [⭐ Star] to save your progress ║
║ ║
╚═══════════════════════════════════════════════════════════╝
🌟 Star this repository if you found it useful! 🌟
*"In space, no one can hear you compile."* 🚀