Decisions (defaults are what the plan assumes)
| # | Decision | Default in the plan |
|---|---|---|
| 1 | Unreal version | 5.6 (5.5 or newer; the C++ is plain UE5 API). Pick one and keep it for the whole port. |
| 2 | C++ or Blueprint | C++ for all logic (a text-only model can write it); Blueprints only for data tweaks, widget layout and animation graphs. |
| 3 | Faithful or improved | Faithful: same rules, numbers, ids and strings as the Unity build. Improvements after parity. |
| 4 | UI technology | UMG with CommonUI base classes; layouts built in the editor from the Unity window spec. |
| 5 | Localisation | Keep the CSV files and a small UEmbersLoc loader (the Unity design); String Tables later if translation work starts. |
| 6 | Saves | Keep the JSON save format (same keys) so Unity saves load in Unreal; FJsonObjectConverter and a slot folder in Saved/. |
| 7 | Characters | Synty Sidekick bodies (check the pack's licence covers Unreal; Synty sells an Unreal version) and the Meshy models; Kevin Iglesias animations retargeted with IK Retargeter. |
| 8 | Rendering | Lumen and Nanite on for world meshes; keep the dark moody look by hand-tuning exposure and fog per zone. |
| 9 | Where the Unity project lives meanwhile | Unity stays the source of truth until Milestone D; do not change both. New design work goes into Unity and the export is refreshed. |
Risks
- A 14B local model writes C++ that does not compile on the first try. Expect 3 to 6 fix rounds per phase and a few files a person (or Claude) has to fix. The plan is built around this: small cards, deterministic names, headers of already-ported types in every prompt, a compile-and-fix loop (
fix_build.py), ported tests as the proof. - API hallucination. The model sometimes invents engine functions. The ground rules ask for
// TODO(port): verify API; grep for it after each phase and fix those first. - Large files (BossBrain 746 lines, HudView 590, InventoryWindow 522) are split into parts; the seams are the most likely place for errors.
- The UI is 5,670 lines and Unity-Toolkit specific: it is ported as logic and widget classes, not as visuals. Expect real editor work (layout, style) per window.
- Art licences: Poly Haven (CC0) and Meshy outputs are fine; Synty and asset-store packs need a check for Unreal use; the Hunyuan3D model must NOT be used (EU licence), as in Unity.
- Animation: Unity's Animator controllers do not convert. Locomotion, attack, cast, hit and death states are rebuilt in an Animation Blueprint; this is manual.
- Procedural builders are not ported. 120 C# editor files build the zones; Unreal gets the result (the exported layout), so later layout changes are made in Unreal by hand or by re-exporting from Unity until the cut-over.
- Time: a realistic estimate is 2 to 4 weeks of part-time work to Milestone C (all systems), another 2 to 4 to Milestone D (playable parity), mostly editor work and fixing, not model time.
What would make it much faster
Using a stronger model for the compile-and-fix loop (Claude Code can read the build log and the project directly and fix files in place), and keeping the local model for the first-pass generation of the many small, mechanical cards (P01 to P03, P08, P12). The plan files and the runner work the same either way.