3e52d26fb7af8e4a155cc6856ad840433e32ec8c
ITelemetrySink with the null, log and JSON Lines sinks, FTelemetryEvent and the envelope, TelemetryEvents, UTelemetrySubsystem on the game instance, ASaltyGameMode minting the session id into the replicated ASaltyGameState, bs.TelemetryTest, the git hash in the build string (D-42) and four Salty.Core.Telemetry tests replacing the placeholder. Proved standalone and with a headless server plus client sharing one session id. Also enables the engine's Editor, AutomationTest, GameplayTags, ConfigSettings and LiveCoding MCP toolsets (D-43) so the editor's MCP server exposes more than the skills toolset. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Unreal prototype
An Unreal Engine 5 project that builds three things in order and proves each one feels right before anything is built around it: a movement controller, fighting, and crafting. Server-authoritative from the first line, C++ first, data-driven, telemetry from step 2, and worked as a ladder of small proofs rather than a roadmap.
Step 1 is built: Salty.uproject on Unreal Engine 5.8, two modules, the headless test runner and the gym. Step 2 (telemetry) is next.
Read
Docs/Design.md: what this is, in about two hundred lines. Start here.Docs/Steps.md: the order of work and what closes each step.Docs/Spec/: the specifications an implementer builds from.Docs/Ideas.md: what was carried over from the two earlier projects and not yet built.Docs/Decisions.md: every decision, the open ones, the deferred ones.CLAUDE.md: the instructions an AI agent works from in this repository.
Layout
UnrealEnginePrototyping/
├── CLAUDE.md Instructions for an AI agent: conventions, layout, commands, upkeep.
├── README.md This file.
├── Docs/ Design, steps, ideas, decisions, worklog, and Spec/ with one document per system.
├── Salty.uproject Unreal Engine 5.8. At the root, which is what the .gitignore assumes.
├── Source/ SaltyCore (rules, no actors) and Salty (gameplay). Variant_* is template reference.
├── Content/ Assets, one folder per feature; Maps/L_Gym; Tests/; the Fab packs.
├── Config/ Engine and game config; Tags/ holds the gameplay tag sources.
└── Scripts/ Test and build scripts run by hand; Authoring/ for editor Python.
Getting started
Open Salty.uproject with Unreal Engine 5.8, run Scripts/run-tests.sh, and press Play in L_Gym with two
clients and "Run Dedicated Server" on. Scripts/Authoring/create_gym.py rebuilds the gym.
Binary assets go through Git LFS; run git lfs install once per machine.
Languages
Go
41.8%
JavaScript
33.1%
C++
10.7%
Python
6.9%
HTML
5.3%
Other
2.2%