Skip to content

Add skill & mission tree dashboard page #49

@vcarl

Description

@vcarl

Overview

Add a dashboard page that visualizes player skill progression and mission advancement as an interconnected tree/graph. The visual metaphor is inspired by Path of Exile's passive skill tree — a large, interconnected web of nodes — but the design goal is clarity over complexity. The tree is inherently large (138 skills across 14 categories with prerequisite chains), so the challenge is presenting that scope without overwhelming the player.

Context

The gameserver defines 138 skills across these categories:

  • Combat (26): weapons, energy, ballistic, missiles, shields, evasion, etc.
  • Support (15): drones, repairs, fleet support
  • Trading (11): market, negotiation, smuggling
  • Mining (11): extraction, refining, surveying
  • Crafting (11): components, assembly, blueprints
  • Prestige (10): endgame mastery paths
  • Empire (10): faction standing, diplomacy
  • Exploration (9): scanning, cartography, navigation
  • Engineering (8): ship fitting, power management
  • Drones (8): drone operation and combat
  • Ships (7): piloting, class specializations
  • Navigation (5): jump drives, fuel efficiency
  • Salvaging (4): wreck processing, material recovery
  • Faction (3): leadership, logistics

Skills have prerequisite chains (e.g., weapons_basic:5 -> weapons_advanced -> weapons_specialization), XP-per-level curves, and bonuses per level.

Design Goals

  1. Overview at a glance: Players should quickly see where they are in the tree — what's trained, what's available, what's locked behind prerequisites
  2. Navigable depth: Clicking/focusing a node shows detail (current level, XP to next, bonuses, prerequisites)
  3. Category clustering: Related skills should be visually grouped (combat cluster, mining cluster, etc.) with clear visual boundaries
  4. Progressive disclosure: Start zoomed out showing the full tree shape with category clusters; zoom in to see individual skill nodes and their connections
  5. Path highlighting: Show prerequisite chains clearly — if you hover a locked skill, highlight what you need to train first
  6. Responsive to player state: Trained skills are visually distinct from available (meetable prereqs) vs locked (unmet prereqs)

Visual States for Nodes

  • Trained (has levels): Bright/filled, shows current level
  • Available (prereqs met, 0 levels): Outlined/ready, inviting interaction
  • Locked (prereqs not met): Dim/muted, shows what's blocking it
  • Maxed: Special glow or indicator for fully trained skills

Technical Notes

  • Skill data comes from the gameserver API (get_skills command or player info)
  • The dashboard already fetches player skills as Record<string, number> in the PlayerInfo interface
  • This is a www (Next.js) frontend feature — the dashboard is at www/src/app/dashboard/page.tsx
  • Consider a canvas or SVG-based renderer for the graph (DOM nodes at this scale may be sluggish)
  • Layout could be computed client-side or pre-computed from the skill prerequisite graph

Non-Goals (for initial version)

  • Mission tree integration (skills only first, missions can layer on later)
  • Skill training interaction (just visualization for now)
  • Mobile optimization (desktop-first is fine)

Inspiration

Path of Exile's skill tree is the visual touchstone, but PoE's tree has ~1300 nodes and is intentionally overwhelming. SpaceMolt's 138 skills are large but manageable. The goal is to evoke that "wow, there's a lot to explore" feeling while remaining navigable and informative. Think PoE's tree if it were designed with a UX budget.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions