Design documents · Engineering

Phases, milestones and who does what

The phases of the Unreal port, from empty project to playable.

The plan has 14 phases. Cards (tasks.json, 261 of them) are what the local model runs; manual steps are for you (the model cannot install Unreal, click in the editor or compile). Each phase ends with a check you do before starting the next, because a 14B model writes C++ that needs a compile-and-fix pass.

StepWhatWhoDone when
M0Install Unreal Engine 5.6 (Epic launcher), Visual Studio 2022 with "Game development with C++". Create a C++ project EmbersOfOlympus (Blank, C++, no starter content, no raytracing). Copy Source/EmbersOfOlympusTests skeleton and enable plugins: Enhanced Input, Common UI, Niagara, Python Editor Script Plugin, Editor Scripting Utilities, Automation Test Framework.youthe empty project builds and opens
M0bAdd the module boilerplate (EmbersOfOlympus.Build.cs with Core, CoreUObject, Engine, InputCore, EnhancedInput, UMG, Slate, SlateCore, CommonUI, AIModule, NavigationSystem, GameplayTasks, Json, JsonUtilities, Niagara; EmbersOfOlympus.h declaring LogEmbers and the UEmbersUnits constants)you, from templates/builds
P01Core, Stats, Localisation: pure logic and data typesmodel, 14 cardscompiles; the P12 tests for Core/Stats/Localization pass
P02Combat core: health, damage formula, status effects, targetingmodel, 17 cardscompiles; Combat tests pass
P03Items, inventory, lootmodel, 28 cardscompiles; Items/Inventory/Loot tests pass
Milestone ALogic core in Unreal: everything that needs no level, and its ported tests greenAutomation RunTests EmbersOfOlympus. passes
P04Player character, input, third-person cameramodel, 15 cardsyou can run around a flat test map and the camera behaves like Unity's (drag to look, scroll to zoom, spring arm)
P05Skills and the three classes (Hoplite, Huntress, Oracle)model, 28 cardsskills cast, cool down and deal damage on test dummies
P06Enemies: brain, spawner, elites, rewardsmodel, 14 cardsthe four Act 1 enemy types fight and drop loot on the test map
Milestone BCombat sandbox: a test map where a class fights enemies and loot drops
P07Bosses: Polydegmon phases, telegraphs, adds, the Pullmodel, 8 cardsthe fairness contract holds (every lethal hit telegraphed, no one-shot)
P08Quests, dialogue, savemodel, 21 cardsa save written and loaded; Chapter 1 quest chain advances from events
P09World: interactables, waypoints, portals, shrines, gates, travelmodel, 25 cardsa travel between two test maps keeps state
P10Audiomodel, 7 cardssounds play by id
Milestone CSystems complete, no art: all gameplay in Unreal on grey-box maps
D1Data import: run tools/import_data.py inside the editor (task P13-001 writes it) to turn export/data/**.json into data assetsmodel writes it, you run it372 data assets exist and the P01 to P09 classes load them
L1Levels: import the five scene exports (terrain RAW, object list) and rebuild each zone as an Unreal map (task P13-010 to P13-014)model writes, you runEleusis, Zone A, Zone B, the boss arena open and match the Unity layout
A1Art: batch import of FBX/PNG/audio (task P13-020), master materials (P13-021), characters and animation retarget (P13-022)you with the scriptszones look like the Unity build
P11UI: one UMG widget class per Unity windowmodel, 30 cards, then you lay out in the editorHUD, inventory, skill tree, map, dialogue work with a mouse
P12Port the 48 Unity test files to Unreal automation testsmodel, 48 cardsall green (they exist from P01, run them as you go)
Milestone DPlayable parity: Chapter 1 to 5 playable in Unreal
P13Polish and the loose ends (see 03-data-and-levels.md cards), lighting (Lumen), post-processing, Niagara effects, performanceyou + model60 fps on the target PC
P14Packaging: Windows build, a smoke test of the whole act, cleanupyoua build that plays

The loop for every phase (so a 14B model gets C++ that compiles)

  1. python tools/run_plan.py --ue <project> --only P03 (the model writes the files).
  2. Build in Visual Studio or Build.bat EmbersOfOlympusEditor Win64 Development ... -log and save the output to a file.
  3. python tools/fix_build.py --ue <project> --log <build.log> (groups the compiler errors by file and asks the model to fix each file; repeat until the build is clean, usually 2 to 4 rounds).
  4. Run the ported tests for that phase in the editor (Session Frontend, Automation tab) or UnrealEditor-Cmd.exe <project> -ExecCmds="Automation RunTests EmbersOfOlympus; Quit" -unattended -nullrhi.
  5. Commit to git (git add Source Config; git commit). Only then the next phase.

Rough effort (so you know what to expect)

  • The runner: about 261 cards at 1 to 4 minutes each on a 14B model (about 50 tokens a second): roughly 6 to 12 hours of model time in total for the first pass, run overnight in phase-sized batches.
  • Compile-and-fix: this is the real cost. Expect 3 to 6 rounds per phase and a few files per phase that the model cannot fix: you (or Claude) fix those by hand. Budget a few days of your own time for P05, P07 and P11, the largest and trickiest.
  • Everything that is not code (levels, art, UMG layout, lighting) is editor work for you, with scripts the model writes.

All design documents