binary: r-type_client
, r-type_server
, r-type_editor
language: C++
build: CMake, package manage
[!NOTE] Your Makefile should contain a r-type_client, a r-type_server and a r-type_editor rules to compile the eponymous binaries.
[!TIP] You can use the whole C++ standard library.
This project of the Advanced C++ knowledge unit will introduce you to networked video game development, and will give you the opportunity to explore advanced development techniques as well as to learn good software engineering practices.
The goal is to implement a multi-threaded server and a graphical client for a well-known legacy video game called R-Type, using a game engine of your own design.
First, you will develop the core architecture of the game and deliver a working prototype, and in a second time, you will expand several aspects the prototype to the next level, exploring specialized areas of your choice from a list of proposed options.
The documentation for this project is available in two formats:
Docusaurus: A modern static website generator that you can use to view the documentation in a web format. To run the Docusaurus documentation, use the following command:
npm install
npm run start
This will start a local server and open the documentation in your default web browser.
Doxygen: The code is documented using Doxygen, a documentation generator for C++ projects. To generate and view the Doxygen documentation, use the following commands:
doxygen Doxyfile
This will generate the documentation in the docs
directory. Open the index.html
file in your web browser to view the documentation.
graph TB
subgraph Clients
C1[Client 1]
C2[Client 2]
CN[Client N]
end
subgraph Server
S[Server]
GM[Game Management]
WM[World Management]
end
subgraph Core
ECS[Entity Component System]
ES[Event System]
end
subgraph Editor
ME[Map Editor]
end
C1 <--> S
C2 <--> S
CN <--> S
S --> GM
S --> WM
S --> ECS
S --> ES
Clients --> ECS
Clients --> ES
ME --> WM
subgraph Assets
Maps
end
WM --> Maps
ME --> Maps
To build the project on Linux, follow these steps:
CMake
installed../build.sh
This will compile both the server and client.
To build the project on Windows, follow these steps:
build.bat
script:build.bat
This will compile the project using MSVC.
Ensure all dependencies are installed using the package manager of your choice.