Skip to content

Development Plan

Phased rewrite of the prototype. Systems are rebuilt from scratch on the development branch, referencing beta code as a guide. 26 systems across 4 phases.

Phases

  1. Terrain & Rendering Foundation - WFC pipeline, ribbon projection, camera, level structure
  2. Player & Core Systems - Player entity, skills, movement, pathfinding, inventory
  3. Combat & Enemies - Health, enemy spawning, combat tick, aggro, death
  4. Auto-Battle, UI & Save - Auto-battle loop, vendor, HUD, menus, checkpoints, save system

Each phase depends on the one before it. Terrain must exist before the player can stand on it. The player must exist before combat works. Combat must work before auto-battle makes sense.

Architecture

  • ECS: Koota. All game state lives in entities with traits. Systems run each frame via frameloop.ts.
  • Rendering: React Three Fiber + WebGPU via three/webgpu. Three Shading Language (TSL) for terrain materials.
  • Game tick: 250ms (4 ticks/sec) for combat and consumables. Movement runs every frame.
  • Terrain data: Per-vertex binary format. Chunks are hex grids generated by the WFC + noise pipeline.
  • Shared data: shared/game-data/ holds items, enemies, and constants shared across packages.

Success Criteria

The prototype is complete when a player can:

  • [ ] See their character on a procedurally generated ribbon terrain level
  • [ ] Auto-battle follows the main road, fights clustered enemies, collects gold
  • [ ] Buy gear from the vendor that affects combat stats
  • [ ] Defeat the boss at the end of a level to unlock the next one
  • [ ] Die and get a fresh procedurally generated level for the next attempt
  • [ ] Use the collapsable menu bar to manage inventory, equipment, and skills
  • [ ] Save and load progress from localStorage
  • [ ] All of the above works on mobile web

Out of Scope

  • Gathering skills (Mining, Woodcutting) and crafting
  • Gear drops from enemies / loot tables
  • Ability system / mana
  • Quest system / NPC dialogue
  • Multiplayer
  • Sound / music
  • Map editor
  • Server-side saves