R-Type ECS Engine 1.0.0
A high-performance Entity Component System game engine with multiplayer support
Loading...
Searching...
No Matches
R-Type ECS Engine

██████╗ ████████╗██╗ ██╗██████╗ ███████╗
██╔══██╗ ╚══██╔══╝╚██╗ ██╔╝██╔══██╗██╔════╝
██████╔╝█████╗ ██║ ╚████╔╝ ██████╔╝█████╗
██╔══██╗╚════╝ ██║ ╚██╔╝ ██╔═══╝ ██╔══╝
██║ ██║ ██║ ██║ ██║ ███████╗
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝

🚀 A Modern C++ Implementation | ECS Architecture | Multiplayer Ready 🎮

┌─────────────────────────────────────────────────────────────┐
│ ▶ Press START to begin your journey... │
│ ⚠ WARNING: High-performance retro gaming ahead! │
└─────────────────────────────────────────────────────────────┘
Build Status C++17 Cross-Platform ECS

🎮 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

Repository: MariusThomassin/R-Type
Branch: Benchmark | Version: 0.1

╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🎮 GAME OVER 🎮 ║
║ ║
║ Thanks for playing R-Type! ║
║ ║
║ Press [⭐ Star] to save your progress ║
║ ║
╚═══════════════════════════════════════════════════════════╝
🌟 Star this repository if you found it useful! 🌟
GitHub Epitech

*"In space, no one can hear you compile."* 🚀