Skip to content

Development plan

Mirror of the TDD's Technical Development Plan section. Engineers update this in place between gates instead of touching the TDD. The TDD itself is the higher-up-facing document and gets a cleanup pass per milestone.

Operational source of truth: all current feature work happens in Rephrased-Games/Rephrased-Game. The old demo repo is historical/reference only. Standalone wiki/toolkit repos are outward reference copies, not planning sources of truth.

Interaction model pivot (high priority)

A click-based Interact Mode: the player toggles in (pointer shown, movement locked), clicks runes in the viewport in sequence, and the sentence validates on exit. Current build is physical carry.

Plan:

  • Keep URuneCarryComponent as an alternate authoring/debug mode for prototyping.
  • Add a pointer-based UInteractModeComponent that drives the same RuneCalculator entry points.
  • Validator does not change.

Owner: Generalist Engineer.

Blueprint authoring layer for effect components

Today every new verb requires a C++ subclass of URuneEffectComponent. That gates content authoring on engineer time.

Plan:

  • Blueprint Engineer / Tech Designer creates a Blueprint-derivable template (URuneEffectComponent_BP).
  • Expose BlueprintNativeEvent virtuals on existing C++ verbs (OnEffectApplied, OnEffectRemoved, tick hook, target-noun accessors).
  • After the template ships, designers and non-engineers can author new runes and effect components by subclassing in the content browser.
  • C++ stays the path for performance-critical verbs (Fire, MoveToward, anything tick-heavy).

Owner: Blueprint Engineer / Tech Designer.

See Content pipeline for current status.

Grammar extension (VERB + NOUN)

Add VERB + NOUN to USentenceValidator. The GDD calls for it.

Plan:

  • Straightforward addition to the validator.
  • UEffectExecutor change: pull the subject noun from the verb's trailing position.
  • One engineer-week including the executor side.

Owner: Systems Engineer.

Rune redefinition exposure

URuneRedefinitionManager works but is not reachable from designer-side authoring.

Plan:

  • Author a meta-rune or dedicated calculator type that pushes redefinitions.
  • Visual language for "this rune is currently standing in for that rune."
  • Wire EffectExecutor to resolve the verb through ResolveRune before reading its component fields.

Owner: Systems Engineer.

See Rune system core for API status.

Puzzle device authoring

AClockDevice and AStarObservatory are the template. We expect ~6 more across acts 2 and 3. Each is bespoke content but shares the base class pattern.

Owner: Puzzle Engineer.

See Adding a puzzle device for the recipe.

Save / Load

Partial today — rune discovery and palace slot assignments persist via UPlayerRuneKnowledge and UGameplayStatics::SaveGameToSlot. Full level-state save (active sentences, runeable transforms, puzzle device state) is planned per GDD.

Plan:

  • Define schema (level, calculator state, runeable snapshot, player transform).
  • Versioned from day one.
  • Per-level checkpoint, no mid-puzzle save.

Owner: Systems Engineer.

See Save / Load for what ships and how to test locally.

Main / Pause / Settings / Credits. UMG, no complex engineering.

Plan: allocate one engineer for a sprint. Owner: Generalist Engineer.

Accessibility

Color-blind safe rune art and audio cue redundancy are art side. Engineering side:

  • Key-rebind UI.
  • Subtitle/definition size setting.

Owner: Generalist Engineer.

Controller support full pass

Enhanced Input is wired for gameplay. Menu navigation with a gamepad is not yet hardened.

Plan: a sprint of review + fixing. Owner: Generalist Engineer.

Showcase camera polish

LeadingSphere mode groups close targets but framing at extreme distances still pops on the first target.

Plan: capture-reset pass and probably a post-process vignette tie-in. Owner: Generalist Engineer.

Content scaling

Target is ~30–40 runes across the campaign. Current RuneDataAsset coverage is ~1/3 of that.

  • Each new rune that needs a component: ~0.5 engineer-days.
  • Each reuse of an existing component: ~1 hour.

Fire / hazard polish

Multi-point fire spawning is in. Outstanding: non-uniform intensity authoring per anchor if needed (currently driven by relative scale, which has been enough).

FMOD integration

Currently shipping native Unreal audio (AAudioManager + per-rune USoundBase). FMOD is on the schedule for Fall Midterm.

See Audio for the migration shape.

Owner: Audio Engineer + Engineering Producer (build pipeline).

Change history

  • 2026-08-26 — Gabriel Li — Added org repo source-of-truth note after migration to Rephrased-Games/Rephrased-Game.
  • 2026-05-23 — Gabriel Li — Save/load partial status aligned to GDD; redefinition cross-link to RuneSystemCore.