Sister Brawl — 5-Phase AAA Perfection Roadmap
Pure implementation roadmap. Audit methodology → Audits. Verification gates → Audits. Technical details → Systems.
🎯 Juice Law (Golden Rule)
Hitstop before shake. Shake before particles. Slowmo only for the kill.
Confirmed Priority & Scope
| Dimension | Confirmed Selection |
|---|---|
| Priority Lane | ✨ Visual juice & feedback |
| Core Mechanics | ⚔️ ALL SIX: Light/Heavy split, Parry, Dodge-ride, Super meter & finishers, Grapple/throws, Terrain interaction |
| Core Loop Focus | 🎯 Solo loop perfection, 📈 Meta progression, 🎆 Spectacle moments |
| Game Feel | ⚡ Snappy & responsive |
| Polish Priorities | 📊 HUD refinement, 📳 Screen shake tuning, 🎆 Particle overhaul, ⚡ Hitstop & hitflash, 🎭 Victory/defeat emotes |
Phase 1: Juice Foundation (Week 1-2)
Goal: Make every hit feel weighty and readable
| Task | File(s) | Verification |
|---|---|---|
| Hitstop system — tiered freeze frames (regular=2f, special=2f, combo=5f, KO=3f) | src/lib/screenShake.ts, Game.svelte draw2DFrame | Frame-count in browser console |
| Screen shake per-attack profiles — directional, quadratic decay, stackable | src/lib/screenShake.ts | Unit test + visual |
| Hitflash — 2-frame white→color overlay on damage | Game.svelte draw2DFrame | Visual confirm |
Particle overhaul — cohesive palette, emit on Idle→Attacking, Hitstun, KO, Special | src/lib/particleSystem.ts | Pool ≤200, no GC spikes |
Audio initiation SFX — wire attack_swing, jump, block_raise in detectStateChanges() | src/lib/audio.ts, Game.svelte | SFX on frame 0 of action |
Phase 2: Combat Depth (Week 2-3)
Goal: All six mechanics functional and server-authoritative
| Mechanic | Client Hook | Server Handler (match_handler.ts) | Key Details |
|---|---|---|---|
| Light/Heavy split | input.heavyAttack + charge timer | performHeavyAttack() — armor frames, higher knockback | Charge 30f → heavy, else light |
| Parry | input.block within 8f window | tryParry() — reflect projectile, attacker Hitstun, defender Special state | Perfect block = punish window |
| Dodge-ride | input.dodge during recovery | tryDodge() — 12f iframes, cancels recovery, can cancel into attack | Dodge→attack cancel |
| Grapple | Close range (dist<1.2) + input.grapple | performGrapple() — position swap, tech window 6f | Inescapable if not teched |
| Terrain | Auto on collision | resolveTerrain() — wallsplat (vel→0, stun+), ceiling bounce, pit KO, stage transition trigger | Wall splat = combo extender |
Phase 3: Super Meter & Finishers (Week 3)
Goal: Cinematic payoff for skilled play
| Task | Details |
|---|---|
| Meter build | Damage dealt/taken, combo milestones (5/10/15 hits), parry bonus (+15) |
| Finisher | At 100 meter + special input → cinematic zoom (2s), slowmo (3f), guaranteed KO |
| Comeback | Trailing team meter gain ×1.5 |
Phase 4: Core Loops (Week 4)
Goal: Replayable single-player & meta hooks
| Loop | Implementation |
|---|---|
| Solo endless wave | Procedural bot spawns, scaling difficulty, personal best leaderboard (Nakama storage) |
| Daily challenge | Seeded run (date hash), global board, reward: skin shard |
| Meta progression | progressionStore — skins, stages, modifiers, mastery levels per character |
| Spectacle moments | Slowmo KO cam, crowd meter (fills on combos/KOs), announcer callouts |
Phase 5: Polish & Ship (Week 5)
Goal: Production-grade presentation
| Task | File(s) | Target |
|---|---|---|
| HUD refinement | GameHUD.svelte | Clean HP, large center combo counter, throttled damage numbers (10f), timer |
| Shake tuning | screenShake.ts | Per-attack: light=0.3, heavy=0.8, super=1.5, KO=2.0 |
| Victory screen | NEW VictoryScreen.svelte | Silhouette, taunt phrase, announcer_winner, particles, 4s auto-dismiss |
| Emotes | Game.svelte + CharacterDef | Victory/defeat idle anims + taunt text per character |
| Accessibility | Various | Parry visual tell, input buffering (done), difficulty sliders (solo) |
🔄 Genius Engine Sync Protocol
This roadmap is the living plan for Genius Engine cycles. After each cycle:
- Update checkboxes in Master Checklist
- Add quartz comment at bottom of this page:
<!-- QUARTZ: YYYY-MM-DD cycle-N — Phase X tasks completed: [list] --> - Flag any scope changes for next Discord interview
Cycle Status Tracker
| Cycle | Phase Focus | Status | Quartz Comment |
|---|---|---|---|
| 39 | Juice Foundation (hitstop, shake, particles) | ✅ Done | <!-- QUARTZ: 2026-06-15 cycle-39 — Phase 1: hitstop tiers, shake profiles, particle palette --> |
| 40 | Combat Depth (parry, dodge, grapple, terrain) | ✅ Done | <!-- QUARTZ: 2026-06-22 cycle-40 — Phase 2: parry 8f, dodge-ride 12f iframes, grapple tech 6f, terrain wallsplat --> |
| 41 | Super Meter (meter build, finisher, comeback) | ✅ Done | <!-- QUARTZ: 2026-06-28 cycle-41 — Phase 3: super meter, finisher zoom+slowmo, comeback 1.5x --> |
| 42 | Core Loops (endless wave, daily, meta, spectacle) | 🔄 Active | <!-- QUARTZ: 2026-07-04 cycle-42 — Phase 4: solo endless wave, daily challenge, progressionStore, KO cam --> |
| 43 | Polish (HUD, VictoryScreen, emotes, accessibility) | ⏳ Planned |
Master Checklist (Copy-Paste for Tracking)
# Phase 1: Juice Foundation
[ ] Hitstop tiers (2/2/5/3 frames)
[ ] Screen shake per-attack profiles + stacking
[ ] Hitflash (2f white→color)
[ ] Particle overhaul: palette, emitters, pool ≤200
[ ] Audio initiation SFX in detectStateChanges()
# Phase 2: Combat Depth
[ ] Light/Heavy split + charge + armor
[ ] Parry 8f window → reflect + punish
[ ] Dodge-ride 12f iframes + cancel
[ ] Grapple close-range + tech 6f
[ ] Terrain: wallsplat, ceiling, pit, transition
# Phase 3: Super Meter
[ ] Meter build (dmg, combo, parry)
[ ] Finisher at 100: cinematic zoom + slowmo + KO
[ ] Comeback 1.5× meter for trailing
# Phase 4: Core Loops
[ ] Solo endless wave + daily seeded + PB board
[ ] Meta: skins, stages, modifiers, mastery
[ ] Spectacle: slowmo KO, crowd meter, announcer
# Phase 5: Polish
[ ] HUD: HP, combo, dmg nums (throttled), timer
[ ] Shake tuning per-attack
[ ] VictoryScreen: silhouette, taunt, announcer, particles
[ ] Emotes per character
[ ] Accessibility: tells, sliders
# Verification
[ ] fun-audit updated → fun-plan → fun-verify ≥3.5
[ ] All competitive integrity tests pass
[ ] No 🔴 killers
Verification Gates
| Gate | Criteria | Tool |
|---|---|---|
| Phase 1 Gate | Hitstop 2f/5f/3f verified, shake stackable no judder, particles ≤200 pool | fun-verify + browser console |
| Phase 2 Gate | All 6 mechanics server-authoritative, no desync in 5min 2P match | E2E test + fun-audit |
| Phase 3 Gate | Finisher triggers at 100 meter, slowmo 3f, KO guaranteed | Visual + unit test |
| Phase 4 Gate | Solo wave scales to wave 50, daily challenge seeded, progression persists | Nakama storage verify |
| Phase 5 Gate | fun-verify scorecard ≥3.5 avg, no 🔴 killers, 60fps sustained 5min | fun-audit v2 full run |
Full audit methodology → Audits
Reference Links
- Systems → Juice Systems — Hitstop, shake, particle implementation
- Systems → Combat Systems — Parry, dodge, grapple, terrain server logic
- Systems → Progression & Elo — XP, levels, Elo, rank tiers
- Architecture → Constants — Tick rate, arena size, gravity
funday-play-shellskill →references/game-feel-patterns.md(hitstop, shake, particles)funday-play-shellskill →references/victory-screen-pattern.mdfunday-play-shellskill →references/arena-theme-pattern.md