Directory Structure
The R-Type project follows a structured organization to maintain clarity and separation of concerns. Here's an overview of the main directories and their purposes:
Root Directory
src/: Contains all source code for the projectdocs/: Documentation files, including this developer guideassets/: Game assets such as images, sounds, and fontsCMakeLists.txt: Root CMake configuration fileLICENSE: MIT License file.github/: GitHub-specific files, including workflows
Source Code (src/)
client/: Client-side game codesrc/: Client source filesGame/: Game logic and componentsGame.*: Game logicScenes.*: Game scenes and transitionsEntityFactory.*: Factory for creating game entitiesSystems.*: Game systems for updating entitiesMap.*: Game map and tile initialization
events/: Event handling and managementmain.cpp: Entry point for the client application
Documentation (docs/)
docusaurus/: Docusaurus configuration and contentdocs/: Markdown files for documentationClient/: Client-specific documentation
Build and Configuration
CMakeLists.txt: CMake configuration files (root and in subdirectories).gitignore: Git ignore file
Assets
assets/: Game assetsFonts/: Font filesBackground/: Background imagesObstacles/: Obstacle spritesmusic/: Game music files
This structure allows for easy navigation and maintenance of the project, separating client, server, and editor code while sharing common components and utilities.