Skip to content
AzuriohPublic

About

[School Project] Multiplayer remake of the R-Type arcade shoot'em up in C++20 — client/server architecture, ECS, Raylib rendering, Lua-scripted waves, PostgreSQL persistence

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation


GitHub GitBook Mirror Epitech Project

🚀 R-Type

A modern multiplayer recreation of the classic arcade shooter R-Type, built with C++ and featuring a robust client-server architecture. Experience intense space combat with smooth multiplayer gameplay, stunning visuals, and immersive audio.

✨ Features

  • 🎮 Classic Arcade Gameplay - Faithful recreation of the iconic R-Type experience
  • 🌐 Multiplayer Support - Battle enemies together with friends in networked sessions
  • 🎨 Modern Graphics - Smooth rendering powered by Raylib
  • 🔊 Immersive Audio - Dynamic sound effects and music using SFML
  • 🎯 Lua Scripting - Customizable game waves and behaviors on the server
  • 💾 Persistent Data - Player statistics and game data stored in PostgreSQL
  • 🏗️ Modular Architecture - Extensible design with dynamic library loading

🎯 Overview

R-Type is a horizontal scrolling shooter where players pilot a spacecraft through waves of enemies, dodging obstacles and destroying foes. This implementation brings the classic game into the modern era with network multiplayer capabilities, allowing players to team up and face challenging enemy patterns together.

The project is split into two main components:

  • Client - Handles rendering, input, audio, and user interface
  • Server - Manages game logic, networking, and data persistence

🚀 Quick Start

Prerequisites

  • C++20 compatible compiler
  • CMake (3.10 or higher)
  • vcpkg for dependency management
  • PostgreSQL (for server only)
  • Lua (included via dependencies)

Building the Project

  1. Build all libraries:
./scripts/build-all-libs.sh
  1. Build the client or server:
# Build client
./scripts/build.sh build client

# Build server
./scripts/build.sh build server
  1. Run the client:
./r-type_client

Server Setup

For detailed server setup instructions including database configuration, please refer to the server README.

📚 Documentation

For comprehensive technical documentation, architecture details, API references, and development guides, visit our GitBook:

👉 Full Documentation

The documentation covers:

  • System architecture
  • Protocol specifications
  • Component documentation
  • Development workflows
  • API references

🤝 Contributing

We welcome contributions! Please read our Contributing Guidelines before submitting pull requests.

Key points:

  • Follow our code style conventions
  • Use conventional commits
  • Create branches from Jira tasks
  • Ensure all code is reviewed before merging

👥 Team

This project was developed by:

📄 License

This project is part of an Epitech academic project.


Made with ❤️ by the R-Type Team

About

[School Project] Multiplayer remake of the R-Type arcade shoot'em up in C++20 — client/server architecture, ECS, Raylib rendering, Lua-scripted waves, PostgreSQL persistence

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages