Prototype Plan - FatherNoTimeGames/JRPG-Classless GitHub Wiki

Prototype Plan

Prototype Goal

Build a small battle sandbox that proves the core combat loop, turn queue, target selection, and input flow.

The prototype is not trying to be fun yet. It is trying to validate architecture, input, and UI flow.

Implementation Method

Current direction:

  • No direct code will be provided.
  • Implementation will be taught step-by-step.
  • The developer will create the project structure, scenes, resources, and input mappings manually.
  • The purpose is to learn Godot through guided construction, not copy/paste implementation.

Prototype Scope

Included:

  • One battle scene.
  • Four placeholder player combatants.
  • Three placeholder enemy combatants.
  • Dynamic round queue based on Speed.
  • Dexterity tie fallback.
  • One turn per round by default.
  • Basic Attack command.
  • Defend command.
  • Wait command.
  • Target selection UI.
  • Controller, keyboard, and touch support.
  • Simple battle summary stub.
  • Dedicated TurnManager node inside the battle scene.
  • Dedicated BattleInputController node inside the battle scene.

Not included yet:

  • Procedural generation.
  • Real equipment.
  • Safe rooms.
  • Hub.
  • Skill point spending.
  • Discipline progression UI.
  • 3D animation polish.
  • Camera rotation.
  • Loot generation.
  • Crafting.
  • Shop.
  • Full save/load.

Prototype Commands

Confirmed prototype commands and behaviors:

  • Attack: Requires target selection. Deals damage based on placeholder stats.
  • Defend: Does not require target selection. Reduces damage taken until the character's next turn.
  • Wait: Does not require target selection. Passes the turn with no effect.

Prototype Flow

  1. Battle scene loads.
  2. TurnManager builds the first round queue.
  3. Timeline UI displays turn order.
  4. When a player combatant’s turn starts, command UI opens.
  5. Player chooses a command.
  6. If command requires target (Attack), target selection UI opens.
  7. Player navigates targets with controller/keyboard or taps with touch.
  8. Tap selects a target but does not immediately execute.
  9. Player confirms target.
  10. Action resolves.
  11. Turn ends.
  12. Next combatant acts.
  13. When all enemies are defeated, battle summary appears.
  14. Player confirms summary and prototype scene ends or restarts.

Target Selection Direction

Confirmed direction:

  • Start with UI buttons/portraits for targets.
  • Clickable/tappable 3D enemy models may be added later.
  • Touch flow is tap-to-select, then Confirm.

Screen Orientation Direction

Confirmed direction:

  • Sensor-based rotation is allowed for the final game.
  • The prototype will be designed landscape-first, as development and initial testing will happen in landscape.
  • Portrait adaptation will be handled later once the landscape baseline is proven.

Prototype Input Requirements

Target selection must support:

  • Controller D-pad/left stick navigation.
  • Keyboard arrow/WASD navigation.
  • Enter/Space confirm.
  • Escape/Back cancel.
  • Touch tap selection.
  • Separate Confirm button for touch.

Command menu must support:

  • Controller navigation.
  • Keyboard navigation.
  • Touch tap.

Next/previous page actions:

  • Confirmed as general UI tab/page navigation actions.
  • Reserved for UI tabs/pages (e.g., switching summary tabs).

Proposed Prototype Scenes

Battle Scene

Root scene containing:

  • Battle manager.
  • Turn manager.
  • Battle input controller.
  • Party container.
  • Enemy container.
  • Battle UI.
  • Camera.
  • Placeholder visuals.

Battle UI

UI layer containing:

  • Timeline bar.
  • Active combatant label.
  • Command menu.
  • Target selection panel.
  • Battle summary panel.
  • Message/log panel.

Character Data

Resource containing:

  • Display name.
  • Stats.
  • Current HP.
  • Current MP.
  • Is alive.
  • Is player faction.
  • Basic weapon scaling data for prototype.

Turn Manager

Dedicated node responsible for:

  • Building round queue.
  • Sorting by Agility.
  • Breaking ties with Dexterity.
  • Emitting turn-start signals.
  • Removing dead combatants.
  • Ending round.
  • Detecting victory/defeat.

Battle Input Controller

Dedicated node responsible for:

  • Reading input actions.
  • Routing input to command menu or target selection.
  • Handling confirm/cancel.
  • Handling touch taps.
  • Supporting keyboard and controller navigation.

Related pages: