PhoenixSim is a high-performance, modular simulation engine for real-time strategy games. It provides an archetype-based ECS, a data-driven game layer (LDS), pluggable Feature systems, and a full RTS gameplay stack (units, abilities, orders, effects, physics, steering).
- Windows 10/11 x64
- Visual Studio 2022 with the Desktop development with C++ workload
- Git
git clone --recurse-submodules https://github.com/jlfarris91/PhoenixSim.git
cd PhoenixSim
.\build\bootstrap.ps1The bootstrap script installs CMake and Ninja (via winget) and compiles the vcpkg binary. Run it once after cloning.
cmake --preset windows
cmake --build .build/windows --config Release.build\windows\tests\TestRTS\Release\TestRTS.exeSee docs/BuildAndRunTestRTS.md for Visual Studio setup, VS Code setup, Emscripten builds, and troubleshooting.
src/
PhoenixSim/ Core engine: ECS, Session, Features, LDS, memory, threading
PhoenixPhysics/ 2D rigid-body physics
PhoenixSteering/ Pathfinding and unit steering
PhoenixRTS/ RTS gameplay: units, abilities, orders, effects, vitals
PhoenixLua/ Lua scripting bridge
tests/
TestRTS/ Interactive RTS sandbox (SDL3 + Dear ImGui)
vcpkg/ Package manager (submodule)
build/ Build scripts (bootstrap.ps1)
docs/ Documentation
| Doc | What it covers |
|---|---|
| BuildAndRunTestRTS.md | Build setup, running TestRTS, Emscripten builds |
| FeatureDevelopmentWorkflow.md | How to write a Feature — the main extension point |
| ECS.md | Entities, components, queries, systems |
| WorldAndSessionBuffers.md | Block buffer architecture and memory management |
| PhoenixSimDeepDive.md | PhoenixSim core: Session, World, LDS, threading, FName |
| PhoenixPhysics.md | 2D physics: BodyComponent, PhysicsSystem, force API |
| PhoenixSteering.md | Pathfinding, movement, rotation, spatial queries |
| PhoenixRTS.md | Units, abilities, orders, effects, vitals, projectiles |
- Fork the repo and create a feature branch off
main. - Read FeatureDevelopmentWorkflow.md — Features are the primary way to extend the engine.
- Open a pull request. CI will run Windows and Emscripten builds automatically.