docs: add ROADMAP.md with full feature backlog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
1de0e2edd4
commit
b6ca67ff8b
1 changed files with 100 additions and 0 deletions
100
docs/ROADMAP.md
Normal file
100
docs/ROADMAP.md
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
# Darkwatch Roadmap
|
||||
|
||||
Last updated: 2026-04-11
|
||||
|
||||
A living document tracking planned features, improvements, and ideas. Items move to a spec/plan when work begins.
|
||||
|
||||
---
|
||||
|
||||
## In Progress / Next Up
|
||||
|
||||
### Bugs & Quick Fixes
|
||||
- [ ] **Dice overlay blocks interaction** — 3D dice canvas captures all pointer events; non-covered areas should remain interactive while dice are rolling
|
||||
- [ ] **Fog slider alpha not wired** — AtmospherePanel intensity slider not connected to fog CSS opacity
|
||||
|
||||
### Spellcasting System *(major feature)*
|
||||
Shadowdark uses no spell slots — spells are cast with a check (1d20 + INT/WIS vs DC 10 + tier). Failure exhausts the spell until rest. Full mechanics from the Player Quickstart:
|
||||
|
||||
- [ ] Spell database (Tier 1–2 complete from quickstart; extensible to Tier 3–5)
|
||||
- [ ] Spellcasting check mechanic with success/fail/crit tracking
|
||||
- [ ] Per-spell "exhausted until rest" state on failure
|
||||
- [ ] Focus spell tracking — active focus indicator, maintenance check prompts
|
||||
- [ ] Wizard mishap table on crit fail (d12, tier-dependent)
|
||||
- [ ] Priest penance tracking on crit fail (spell locked until penance paid; cost by tier)
|
||||
|
||||
### Character Creation Improvements
|
||||
- [ ] Stat rolling UI — 3d6 per stat with individual reroll buttons
|
||||
- [ ] Background selection/roll — d20 table (Urchin, Soldier, Acolyte, etc.)
|
||||
- [ ] HP calculation from class HD + CON on create and level up
|
||||
- [ ] Starting gold display — 2d6 × 5 gp shown during creation
|
||||
|
||||
### Leveling & Progression
|
||||
- [ ] XP threshold fix — next level = current level × 10 (10 XP for lvl 2, 20 for lvl 3, etc.)
|
||||
- [ ] Talent roll UI on level up — 2d6 on class table, with stacking support
|
||||
- [ ] Title auto-update from class + alignment + level lookup table
|
||||
|
||||
---
|
||||
|
||||
## Planned
|
||||
|
||||
### Gameplay Tools
|
||||
- [ ] **Initiative tracker** — turn order display, DM-managed, synced via socket
|
||||
- [ ] **Conditions / status effects** — poisoned, stunned, dying, etc. shown on character cards
|
||||
- [ ] **Death timer** — dying state: 1d4 + CON rounds, d20 each turn to rise at 1 HP
|
||||
- [ ] **Party loot / shared inventory** — campaign-level shared pool, DM-managed
|
||||
|
||||
### Metrics & Analytics *(Prometheus + Grafana)*
|
||||
Track feature usage and player behavior to understand what's actually being used. Useful once the app has multiple users/campaigns.
|
||||
|
||||
Event ideas to instrument:
|
||||
- Atmosphere effects toggled (fog, fire, rain, embers) — are DMs using them?
|
||||
- Character color changes — how often, is it a one-time setup or ongoing?
|
||||
- Dice rolls — frequency per session, types rolled, nat 20 rate
|
||||
- Spell cast attempts / failures / mishaps
|
||||
- Luck token usage
|
||||
- Torch timer activations
|
||||
- Feature flags (e.g., "physical dice" toggle if added) — adoption rate
|
||||
- Campaign creation, invite acceptance, session length proxies
|
||||
|
||||
Stack: Prometheus (metrics collection) + Grafana (dashboards). Server emits metrics via a `/metrics` endpoint; Prometheus scrapes it. Grafana visualizes.
|
||||
|
||||
---
|
||||
|
||||
## Atmosphere & Effects
|
||||
- [x] Fog overlay — CSS gradient, synced via socket *(done)*
|
||||
- [x] Fire effect — Three.js particle fire *(done)*
|
||||
- [x] Rain / embers — tsParticles *(done)*
|
||||
- [ ] Snow — tsParticles, not yet implemented; evaluate if worth adding after DM feedback
|
||||
- [ ] Ambient audio — optional, low priority
|
||||
|
||||
---
|
||||
|
||||
## Longer Term / Ideas
|
||||
- [ ] **Profile image upgrades** — beyond DiceBear (custom uploads, etc.)
|
||||
- [ ] **Multi-system support** — select game system on campaign create (Cairn, Knave, Pathfinder 2e, Cyberpunk RED, etc.); stats/rules/theme adapt per system. OSR games are easiest wins (same basic schema, just different data).
|
||||
- [ ] **Containerize server** — Dockerfile for Node server; useful when moving toward hosting. Client stays static build + CDN.
|
||||
- [ ] **Kubernetes / autoscaling** — Socket.IO needs sticky sessions or Redis pub/sub adapter for multi-instance. DB moves to managed service (RDS, PlanetScale). Revisit when public.
|
||||
- [ ] **Monetization model** — if pursued: charge for hosting infrastructure (not game IP). Fan content policies vary by publisher; OSR/CC games are safest. Consult legal before adding paid tiers.
|
||||
|
||||
---
|
||||
|
||||
## Completed
|
||||
- [x] Campaign CRUD with real-time sync (Socket.IO)
|
||||
- [x] Character CRUD — stats, gear, talents, HP, XP, currency
|
||||
- [x] Auto-calculated AC and derived attacks
|
||||
- [x] Talent effects — stat bonuses, AC, attack/damage, gear slots, HP scaling
|
||||
- [x] View/edit mode split, click-to-edit InlineNumber
|
||||
- [x] Medieval visual theme — Cinzel + Alegreya, parchment, gold filigree, color schemes
|
||||
- [x] 3D dice rolling with predetermined outcomes, character-colored dice, delayed roll log
|
||||
- [x] Torch timer — 60 min countdown, synced across clients
|
||||
- [x] Luck token toggle
|
||||
- [x] DiceBear avatars with style picker
|
||||
- [x] Color picker per character
|
||||
- [x] Mobile layout — full-screen sheet, long-press adv/dis, roll log drawer
|
||||
- [x] Custom SelectDropdown — cross-platform consistent
|
||||
- [x] Compact DM character cards — 3-up grid, HP/AC/luck/torch/modifiers
|
||||
- [x] Atmosphere panel — fog, fire, rain, embers; DM-only, synced via socket
|
||||
- [x] MariaDB migration — replaced SQLite with MariaDB 11 in Docker
|
||||
- [x] Auth — email/password, JWT httpOnly cookies, register/login/logout
|
||||
- [x] Campaign membership — DM and player roles, invite links
|
||||
- [x] Per-campaign role enforcement — API middleware, socket auth, frontend gating
|
||||
Loading…
Add table
Reference in a new issue