How beyond-all-reason/recoilengine works
Recoil is an open-source real-time strategy game engine. Its broad user workflow is to set up or join a game, run the simulation, and present the evolving world through rendering and player-facing controls; Lua and external skirmish AIs provide extension paths. The excerpts show selected links among pathfinding, map data, menus, and AI dispatch, but do not expose the main game loop or most simulation and networking wiring, so those relationships are not asserted as inspected calls.
Main entry points: Game.cpp Game runtime · GameSetup.cpp Game setup · Sim World simulation · PathManager.cpp Pathfinding
Components 18
Game runtime
- Game setup
rts/Game/GameSetup.cpp - Game runtime
rts/Game/Game.cpp - Game networking
rts/Net
World simulation
- World simulation
rts/Sim - Map data
rts/Map/MapInfo.h - Pathfinding
rts/Sim/Path/QTPFS/PathManager.cpp
Player experience
- World rendering
rts/Rendering/GlobalRendering.h - Camera control
rts/Game/Camera/SpringController.cpp - Game text input
rts/Game/GameControllerTextInput.cpp - Lua menu
rts/Menu/LuaMenuController.cpp
Scripting and AI
- Lua engine API
rts/Lua/LuaConstEngine.cpp - AI event dispatch
rts/ExternalAI/EngineOutHandler.cpp - Skirmish AI runtime
rts/ExternalAI/SkirmishAIHandler.cpp - AI interface
AI/Interfaces/C/src/Interface.cpp
Runtime foundations
- Configuration
rts/System/Config/ConfigHandler.h - Logging API
rts/System/Log/ILog.h - Engine version
rts/Game/GameVersion.h
Other components
- Player or host
Connections 16
- Player or host → Game setup: sets up
- Game setup → Game runtime: starts game
- Game runtime → World simulation: advances simulation
- Game runtime → World rendering: draws world
- Player or host → Game networking: joins game
- World simulation → Pathfinding: requests paths
rts/Sim/Path/QTPFS/PathManager.cpp - Pathfinding → Map data: reads map data
rts/Sim/Path/QTPFS/PathManager.cpp - Camera control → Map data: queries terrain
rts/Game/Camera/SpringController.cpp - Player or host → Game text input: enters commands
- Player or host → Lua menu: uses menu
- Lua menu → Lua engine API: runs Lua
- AI event dispatch → Skirmish AI runtime: dispatches events
rts/ExternalAI/EngineOutHandler.cpp - Skirmish AI runtime → AI interface: uses interface
- Game setup → Configuration: reads settings
- Lua engine API → Engine version: exposes version
rts/Lua/LuaConstEngine.cpp - Game runtime → Logging API: records events