This document provides a high-level overview of the R-Type Clone project.
For detailed technical architecture, see ποΈ Architecture.
- Modular Engine: Lightweight, modular game-engine prototype
- Cross-Platform: Runs on Linux and Windows
- Dynamic Loading: Modules loaded at runtime as shared libraries
- Message-Driven: Inter-module communication via ZeroMQ pub/sub
The main process handles:
- Loading modules from shared libraries
- Wiring messaging endpoints
- Managing program lifecycle
Each subsystem (window, renderer, ECS, physics, sound, network) is:
- An independent shared library
- Implementing
IModuleinterface - Running in its own thread
- Communicating via messages
- Pattern: Topic-based publish/subscribe
- Transport: ZeroMQ sockets
- Format: String topics, string/binary payloads
| Module | Library | Purpose |
|---|---|---|
| WindowManager | SFML | Window creation, input events |
| Renderer | OpenGL/GLEW | 3D rendering |
| LuaECS | Lua/Sol2 | Entity Component System |
| PhysicEngine | Bullet3 | Physics simulation |
| SoundManager | SFML | Audio playback |
| NetworkManager | Asio | Client-server networking |
Managed via vcpkg:
sfml- Window and audioglew- OpenGL extensionszeromq/cppzmq- Messaginglua/sol2- Scriptingbullet3- Physicsasio- Networkingmsgpack- Serializationgtest- Testing
- ποΈ Architecture - Detailed technical architecture
- π¨ Channels - Message channel reference
- π‘ Network Protocol - Network communication
- π¦ Installation - Build instructions
- π€ Contributing - How to contribute