R-Type 0.1
Loading...
Searching...
No Matches
R-Type developer documentation

R-Type is a networked, multiplayer remake of the classic horizontal shoot'em up. Up to four players connect to an authoritative server and fight waves of Bydos together. The game runs on a small game engine of our own, written in C++20.

This website is the developer documentation of the project. It explains how the code is organized, how the parts talk to each other, why each technology was chosen, and how to extend the game. The API reference generated from the source code is available from the navigation tree on the left.

Where to start

If you want to Read
Build and run the game Getting started
Understand the big picture Architecture overview
Learn how the engine works Game engine
Learn how the network layer works Networking
Write a new client or a network tool Network protocol specification
Add content or features step by step Tutorials and how-tos
Understand our technical choices Technical and comparative study
Know how the project handles accessibility Accessibility
Contribute to the project Contributing and Coding conventions
Browse the code reference Libraries and R-Type game

Project at a glance

Item Value
Language C++20
Build system CMake 3.20 or newer
Package manager vcpkg (manifest mode)
Programs r-type_server, r-type_client
Networking UDP, custom binary protocol, Asio
Rendering rtk graphical, a Vulkan 2D sprite renderer
Architecture Entity Component System, event bus, scene manager
License GNU General Public License v3.0

Searching this documentation

Use the search field at the top of the navigation bar to find a class, a function, a message type or a guide. The navigation tree on the left lists the guides first, then the API reference, organized as follows:

  • Libraries
    • Game engine: everything under lib/GameEngine.
    • Network library: everything under lib/Network.
  • R-Type game
    • Protocol payloads: message types and payload layouts.
    • Shared gameplay: components and systems used by both programs.
    • Client and Server: code of each program.

The flat lists of namespaces, classes and source files follow.

Guides