Skip to content

Risks

Mirror of the TDD's Technical Risks section. Updated in place between gates.

Interaction pivot cost

Shipping both carry and click modes in parallel risks double maintenance.

Mitigation: the validator and executor are already abstracted from the interaction side. Both can write into the same calculator API. If the schedule tightens, we cut the physical carry path entirely and keep click-only.

Showcase camera edge cases

When multiple runeables are clustered on one side of the ring origin, LeadingSphere can over-rotate between beats. Observed occasionally in PIE.

Mitigation: ship PauseAtTarget as the default, reserve LeadingSphere for set-pieces until the framing is fully tuned.

Performance with dense runeables

The registry is a hash per noun, so lookup is cheap. The expanding ring does distance checks against every matching actor every tick during expansion.

Mitigation: at ~1000 runeables we're fine in testing. If we push past that for a final level we add a broadphase.

Save compatibility

Adding fields to save data after players have saved is a support burden.

Mitigation: version the JSON from day one, include a migration path even if it's initially a no-op. See Save / Load.

Engine upgrade risk

Pinned to UE 5.8 (MSVC 14.50, Visual Studio 2026) so the team can use Unreal MCP. Jumping engine versions still invalidates compiled binaries and can require source fixes. Stay on 14.50; do not compile 5.8 with MSVC 14.51+.

FMOD integration not started

If we use FMOD as the middleware, we are starting from zero:

  • Project has no FMOD plugin installed.
  • No FMOD Studio bank build step in packaging.
  • Every per-rune sound is a USoundBase reference on URuneDataAsset.

Switching to FMOD means:

  • Replacing those fields with UFMODEvent parameters across every rune asset.
  • Rewriting AAudioManager against the FMOD Blueprint API.
  • Re-authoring existing SFX (pickup, place, ring, fire, ambience) as Studio events.

Mitigation: scope and start by Fall Midterm. Don't drag the migration into Beta.

Memory palace rework

The current palace layout is flagged "WIP for rework" in the TDD. The implementation works but the topology is placeholder.

Mitigation: lock the rework before First Playable so it doesn't slip into Alpha. Owner: Generalist Engineer + Tech Designer.

Blueprint authoring layer slip

If URuneEffectComponent_BP slips past First Playable, every new verb in Acts 2 and 3 lands as C++. That bottlenecks content on engineer time.

Mitigation: Blueprint Engineer / Tech Designer is the dedicated owner. Explicitly callable as a Gate dependency in the schedule.

Content shortfall

Target is ~30–40 runes; current asset coverage is ~1/3 of that. New runes require either an existing component or new C++ until the BP authoring layer ships.

Mitigation: front-load reusable components. Don't author one-off C++ for runes that overlap behaviorally with existing ones.

Change history

  • 2026-08-12 — Gabriel Li — Engine pin moved to UE 5.8 / MSVC 14.50 for Unreal MCP.
  • 2026-05-08 — Gabriel Li — Added baseline change history section for weekly wiki maintenance.