Epic: Skill Tree Data Model & Storage #223

Open
opened 2026-03-16 01:40:09 +00:00 by freemo · 0 comments
Owner

Epic: Skill Tree Data Model & Storage

Parent Legendary: #198 — Character Progression & Skills
Priority: High

Summary

This epic covers the foundational data model for the skill tree system in Aethyr. It introduces the SkillTree and SkillNode classes, defines the five core discipline roots (Combat, Survival, Crafting, Social, Magic), and implements XP-per-skill tracking with persistence through the existing player.info storage and Wisper event sourcing integration.

Goals

  • Establish a robust, graph-based SkillTree data structure that supports prerequisite chains, tiers, and discipline grouping.
  • Define the five root discipline nodes so every new character starts with access to them.
  • Persist per-skill XP and level data in player.info["skills"] with full event sourcing support.
  • Ensure the data model is extensible for future discipline sub-trees and prestige tiers.

Scope

In Scope Out of Scope
SkillTree / SkillNode classes UI rendering of skill trees
YAML-based tree definitions Combat / discipline-specific logic
XP tracking & persistence Balancing XP curves
Wisper event integration Prestige / respec mechanics

Child Issues

Child issues will be linked via dependencies.

Acceptance Criteria

  • SkillTree and SkillNode classes exist and are fully tested.
  • Five discipline root nodes are loadable from conf/skill_trees.yaml.
  • Player skill XP is persisted across sessions via player.info.
  • XP gains emit Wisper events (:skill_xp_gained).
  • All child issues are completed and merged to master.
## Epic: Skill Tree Data Model & Storage **Parent Legendary:** #198 — Character Progression & Skills **Priority:** High ## Summary This epic covers the foundational data model for the skill tree system in Aethyr. It introduces the `SkillTree` and `SkillNode` classes, defines the five core discipline roots (Combat, Survival, Crafting, Social, Magic), and implements XP-per-skill tracking with persistence through the existing `player.info` storage and Wisper event sourcing integration. ## Goals - Establish a robust, graph-based `SkillTree` data structure that supports prerequisite chains, tiers, and discipline grouping. - Define the five root discipline nodes so every new character starts with access to them. - Persist per-skill XP and level data in `player.info["skills"]` with full event sourcing support. - Ensure the data model is extensible for future discipline sub-trees and prestige tiers. ## Scope | In Scope | Out of Scope | |----------|-------------| | SkillTree / SkillNode classes | UI rendering of skill trees | | YAML-based tree definitions | Combat / discipline-specific logic | | XP tracking & persistence | Balancing XP curves | | Wisper event integration | Prestige / respec mechanics | ## Child Issues _Child issues will be linked via dependencies._ ## Acceptance Criteria - [ ] `SkillTree` and `SkillNode` classes exist and are fully tested. - [ ] Five discipline root nodes are loadable from `conf/skill_trees.yaml`. - [ ] Player skill XP is persisted across sessions via `player.info`. - [ ] XP gains emit Wisper events (`:skill_xp_gained`). - [ ] All child issues are completed and merged to `master`.
freemo self-assigned this 2026-03-16 01:40:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#223
No description provided.