This RType project, developed by a dedicated team of five at EPITECH, is an exciting endeavor to recreate the classic RType game. Our project not only aims to bring this beloved shooter game to life but also incorporates our unique twist by implementing a custom Entity Component System (ECS). This approach allows for more dynamic and efficient game entity management, providing an enhanced gaming experience.
RType is a side-scrolling space shooter game where players navigate a spacecraft through various levels, battling enemies and avoiding obstacles. Our version preserves the essence of the original game while integrating modern programming practices and graphical enhancements.
- π About the Project
- π Table of Contents
- π Game Description
- π§ Technologies
- π Prerequisites
- π οΈ Installation
- π Usage
- π€ Entity Component System
- π Technical Documentation
- π Contributors
- π€ Contributing
- π License
- β¨ Conclusion
The RType game we're recreating involves a series of challenging levels where players control a spaceship to defeat enemies and dodge obstacles. Each level offers unique challenges and requires players to adapt their strategies. The game's fast-paced nature and retro charm make it an engaging experience for both new and seasoned players.
This project uses several modern technologies, including:
- C++: Our primary programming language, known for its efficiency and control over system resources.
- CMake: A cross-platform tool that simplifies the build process.
- Justfile: An intuitive, language-agnostic task runner.
- Docker: Used for containerizing the application, ensuring consistent environments across different systems.
- Doxygen: A documentation generator that helps us maintain clear and comprehensive code documentation.
Before starting, make sure to have the following installed:
- Justfile
- C++ Compiler
- CMake
- Doxygen: For generating project documentation.
- Docker: For running the game in a containerized environment.
To launch the project, follow these steps:
-
git clone git@github.com:R-Type-Epitek/R-Type.git
-
cd R-Type -
just
OR
just start
./r-type_server ./r-type_clientOur custom Entity Component System (ECS) is a core part of our game's architecture. It allows for a modular and flexible approach to game object management. Entities represent objects in the game, components are data containers for various attributes, and systems are logic processors that manipulate entities based on their components. This setup facilitates a clean separation of concerns and makes the game easier to extend and maintain.
For those interested in a deeper dive into the inner workings of our RType project, our technical documentation is a treasure trove of information. It meticulously details the architecture, codebase, and the methodologies we employed in developing the game. This includes a comprehensive explanation of our custom Entity Component System (ECS), an in-depth look at the game's mechanics, and the algorithms used.
Whether you're a student, a fellow developer, or just curious about game development, you'll find valuable insights into how a complex project like this comes together. The documentation is regularly updated to reflect the latest changes and improvements.
To access our technical documentation, please visit our GitHub Pages:
π RType EPITECH Technical Documentation
Feel free to explore, learn, and even contribute your thoughts and suggestions!
We warmly welcome contributions! If you're interested in helping out, please read our contribution guidelines for more information on how to get started.
This project is licensed under the MIT License. Feel free to explore, modify, and distribute the code.
We hope this documentation provides a comprehensive guide to our RType project. We're excited to see how players and developers engage with our game. Thanks for your interest and support!
