Unreal Engine project for CanalCV experiments, with a minimal external CLI scaffold.
Config/Unreal project configuration (DefaultEngine.ini,DefaultGame.ini).Content/Unreal assets and maps.Plugins/project plugins.Source/C++ game module code.scripts/local automation (for example Steam Deck deploy and editor startup).External/external tooling workspace (currently a minimal Rust CLI).
- Open
UEGame.uprojectin Unreal Editor. - Start Play In Editor (PIE) from the editor.
- Project defaults are configured to open
/Game/StartMap.StartMap.
- Unreal Engine baseline:
5.7.2(/home/olivier/Projects/UnrealEngine/Engine/Build/Build.version). - UnrealCV source baseline:
unrealcv/unrealcvbranch5.2, commit8ec7a8cf389c0e2eb6658d5fe64806ad22e586d3. - Plugin is vendored at
Plugins/UnrealCV/and enabled inUEGame.uproject.
Validation commands used:
/home/olivier/Projects/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh UEGameEditor Linux Development -Project=/home/olivier/Projects/CanalGame/UEGame/UEGame.uproject -WaitMutex -NoHotReloadFromIDE/home/olivier/Projects/UnrealEngine/Engine/Binaries/Linux/UnrealEditor /home/olivier/Projects/CanalGame/UEGame/UEGame.uproject -game -unattended -nullrhi -nosound -NoSplash -ExecCmds="vget /unrealcv/status,quit" -logNotes:
vget /unrealcv/statusis accepted and returns server status/config in logs.- If TCP port
9000is already occupied on your machine, set another UnrealCV port (see Steam Deck section below or use-cvport=<port>). - Quick day-to-day guide:
docs/unrealcv-quickstart.md. - One-command smoke test:
./scripts/unrealcv_smoke_test.sh. - Full manual test checklist:
docs/manual-testing-unrealcv.md.
If you use local helper scripts:
./scripts/start_editor.shThe first external scaffold is under External/:
cd External
cargo build
cargo run -- --host 127.0.0.1 --port 9000 --output ./outputCurrent behavior:
- Parses host/port/output args.
- Creates the output directory if needed.
- Prints effective configuration.
Use the local deploy script to package, sync, and optionally launch on Steam Deck:
./scripts/deploy_steamdeck.shDefaults:
CONFIG=ShippingPLATFORM=LinuxSTEAMDECK_USER=deckVERIFY_WRITABLE_PATHS=1(checksSaved/LogsandSaved/Exportson Deck)RUN_AFTER_DEPLOY=0(set to1to launch immediately after sync)
Common overrides:
CONFIG=Shipping STEAMDECK_HOST=steamdeck STEAMDECK_DEST=~/Games/UEGame ./scripts/deploy_steamdeck.sh
RUN_AFTER_DEPLOY=1 ./scripts/deploy_steamdeck.sh
VERIFY_SAVE_ROOT=~/Games/UEGame/UEGame/SavedCustom VERIFY_LOG_DIR=~/Games/UEGame/UEGame/SavedCustom/Logs VERIFY_EXPORT_DIR=~/Games/UEGame/UEGame/SavedCustom/Exports ./scripts/deploy_steamdeck.shRuntime launcher hardening (UEGame.sh):
- Sources optional
UEGame.envfrom the deployment root. - Supports configurable save/log/export roots (
UE_SAVE_ROOT,UE_LOG_DIR,UE_EXPORT_DIR). - Writes timestamped logs and updates
Logs/UEGame-latest.log. - Uses
-forcelogflushand explicit-abslog. - Passes
-cvport=$UNREALCV_PORTto the game whenUNREALCV_PORTis set. - Can auto-restart on network route changes (
UE_NETWORK_RESTART_ON_CHANGE=1). - Can auto-restart when UnrealCV port is not listening (
UNREALCV_PORT,UE_UNREALCV_PORT_RESTART=1).
- Keep Unreal runtime code in
Source/UEGame. - Keep project-wide runtime settings in
Config/. - Keep automation scripts in
scripts/. - Keep non-Unreal tools and clients under
External/. - Tile schema / hex + WFC generator notes:
docs/canal-topology-tile-schema.md. - Prototype tile set catalog and diagrams:
docs/canal-topology-tiles-v0.md. - Topology generator actor usage:
docs/canal-topology-generator-actor.md. - Scenario runner and capture lifecycle hooks:
docs/canal-scenario-runner.md. - Seed session flow and local seed history:
docs/canal-seed-session-flow.md. - Deck UI v0 controls:
docs/canal-deck-ui-v0.md. - Baseline perf capture command/report flow:
docs/perf-baseline-capture.md.- Wrapper auto-enables
-NullRHIin headless environments.
- Wrapper auto-enables
- WFC batch harness + CLI reports:
docs/hex-wfc-batch-harness.mdandscripts/run_wfc_batch.sh. - M0/M1 checkpoint validation runbook:
docs/m1-checkpoint-validation.mdandscripts/run_m1_checkpoint.sh. - M1 prototype materials + towpath prop hooks:
docs/m1-materials-and-props.md. - Research note (AI prop blocking):
docs/research-triposr.md.
- Linux validation is performed locally.
- Windows validation for the Rust CLI is intentionally deferred in this pass and should be tracked as follow-up work.