~/openengine
$ cat docs/guides/development-workflow.md
# daily development cycle

Typical Development Session

  1. Build scripts and engine:
bash
cmake --build build --config Debug
  1. Run:
bash
.\build\bin\Debug\OpenEngine.exe
  1. Edit C# scripts in Assets/ โ€” hot-reload detects changes automatically
  2. For C++ changes, rebuild and re-run:
bash
cmake --build build --config Debug
.\build\bin\Debug\OpenEngine.exe

Hot-Reloading Workflow

  1. Run the engine
  2. Keep it running
  3. Edit C# scripts in Assets/
  4. Save the file
  5. Watch console for change detection messages
  6. Changes reflect immediately
tip

File detection is sub-millisecond. The engine detects saves via platform-native file watchers.

Adding New Assets

  1. Add files to Assets/
  2. Run the engine โ€” assets are discovered automatically
  3. Check console for asset registration messages
  4. Use assets in C# scripts via NativeInterop.LoadAsset()

Example Games

The Examples/ directory contains ready-to-run games:

GameTypeFeatures
Space ShooterAction/ArcadePlayer movement, enemy spawning, collision, scoring
PlatformerPlatformPhysics, gravity, jumping, collectibles
RPGRole-PlayingStats, inventory, quests, turn-based combat
Game DemoAll-in-oneSwitches between all games every 30s

To run an example:

bash
copy Examples\SpaceShooter\SpaceShooter.cs Assets\Scripts\
cmake --build build --config Debug
.\build\bin\Debug\OpenEngine.exe

Troubleshooting

Build Issues

ErrorFix
Could not find .NET hosting libraryInstall .NET 9.0 SDK, restart terminal
MSBuild Error: Project file not foundEnsure you're in a configured build directory
C# compilation failedCheck dotnet --version โ€” needs 9.0

Runtime Issues

ErrorFix
CoreCLR initialization failedBuild C++ project first to trigger ScriptAssemblies pipeline
Assembly not foundCheck build/bin/Debug/ScriptAssemblies/ exists
No assets foundEnsure Assets/ directory exists with files

Performance Issues

SymptomCheck
Low frame rateDebug vs Release build, CPU usage, console errors
File changes not detectedFile watcher initialization messages, correct directory path

Next Steps

enesfrar