docs: define v1 requirements
This commit is contained in:
146
.planning/REQUIREMENTS.md
Normal file
146
.planning/REQUIREMENTS.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Requirements: Super Pong Next Gen
|
||||
|
||||
**Defined:** 2026-03-10
|
||||
**Core Value:** Pong reimagined with juice and depth — spectacular visuals, rich mechanics, complete game experience
|
||||
|
||||
## v1 Requirements
|
||||
|
||||
Requirements for initial release. Each maps to roadmap phases.
|
||||
|
||||
### Core Gameplay
|
||||
|
||||
- [ ] **CORE-01**: Ball moves continuously and bounces off top and bottom walls
|
||||
- [ ] **CORE-02**: Each player controls a paddle that deflects the ball
|
||||
- [ ] **CORE-03**: Ball angle changes based on where it hits the paddle (not purely geometric)
|
||||
- [ ] **CORE-04**: Ball speed increases gradually over the course of a match
|
||||
- [ ] **CORE-05**: Player scores a point when ball passes opponent's paddle
|
||||
- [ ] **CORE-06**: Match ends when a player reaches the target score (first to N points)
|
||||
- [ ] **CORE-07**: Player 1 controls paddle with keyboard (W/S keys)
|
||||
- [ ] **CORE-08**: Player 2 controls paddle with keyboard (Up/Down arrow keys)
|
||||
|
||||
### AI Opponent
|
||||
|
||||
- [ ] **AI-01**: AI opponent tracks and intercepts the ball
|
||||
- [ ] **AI-02**: Easy difficulty: AI reacts slowly with error margin — beatable by any player
|
||||
- [ ] **AI-03**: Medium difficulty: AI reacts at moderate speed — provides fair challenge
|
||||
- [ ] **AI-04**: Hard difficulty: AI reacts fast but not perfectly — requires skill to beat
|
||||
|
||||
### Screens
|
||||
|
||||
- [ ] **SCRN-01**: Title screen displays game name with visual branding
|
||||
- [ ] **SCRN-02**: Mode select screen lets player choose Solo vs AI or 2-Player
|
||||
- [ ] **SCRN-03**: Settings menu allows configuring AI difficulty, sound on/off, and color scheme
|
||||
- [ ] **SCRN-04**: Game over screen shows match result (winner) and offers Play Again and Main Menu options
|
||||
|
||||
### Visual Effects
|
||||
|
||||
- [ ] **VFX-01**: Ball emits a glowing aura that intensifies as speed increases
|
||||
- [ ] **VFX-02**: Ball leaves a fading motion trail behind it
|
||||
- [ ] **VFX-03**: Particles burst from ball impact point when ball hits paddle or wall
|
||||
- [ ] **VFX-04**: Screen shakes briefly when a player scores a point
|
||||
- [ ] **VFX-05**: Canvas renders sharply on Retina/HiDPI displays (devicePixelRatio aware)
|
||||
|
||||
### Power-Ups
|
||||
|
||||
- [ ] **PWR-01**: Power-up spawns in the arena at random intervals during a match
|
||||
- [ ] **PWR-02**: Player collects a power-up by hitting it with the ball
|
||||
- [ ] **PWR-03**: Multi-ball power-up spawns a second ball in play
|
||||
- [ ] **PWR-04**: Enlarged paddle power-up temporarily increases collector's paddle height
|
||||
- [ ] **PWR-05**: Speed boost power-up temporarily increases ball speed
|
||||
- [ ] **PWR-06**: Slow time power-up temporarily slows the opponent's ball perception (slows everything except collector's paddle)
|
||||
- [ ] **PWR-07**: Active power-up is visually indicated on the collecting player's side
|
||||
|
||||
### Arenas
|
||||
|
||||
- [ ] **ARENA-01**: Default arena: classic open Pong layout
|
||||
- [ ] **ARENA-02**: Obstacle arena: center barrier or pair of obstacles that deflect the ball
|
||||
- [ ] **ARENA-03**: Each arena has a distinct visual theme (colors, background style)
|
||||
- [ ] **ARENA-04**: Player selects arena from mode select or settings screen
|
||||
|
||||
### Audio
|
||||
|
||||
- [ ] **AUD-01**: Sound effect plays when ball hits a paddle
|
||||
- [ ] **AUD-02**: Sound effect plays when ball hits top or bottom wall
|
||||
- [ ] **AUD-03**: Sound effect plays when a player scores a point
|
||||
- [ ] **AUD-04**: Audio context initializes only after first user interaction (respects browser autoplay policy)
|
||||
- [ ] **AUD-05**: Sound can be toggled on/off from settings
|
||||
|
||||
## v2 Requirements
|
||||
|
||||
Deferred to future release. Tracked but not in current roadmap.
|
||||
|
||||
### Experience
|
||||
|
||||
- **EXP-01**: Pause screen with resume option mid-match
|
||||
- **EXP-02**: Background music loop during gameplay
|
||||
|
||||
### Content
|
||||
|
||||
- **CONT-01**: Third arena variant with moving obstacles
|
||||
- **CONT-02**: Difficulty progression beyond hard (adaptive AI)
|
||||
- **CONT-03**: Combo counter for consecutive paddle hits
|
||||
|
||||
## Out of Scope
|
||||
|
||||
Explicitly excluded. Documented to prevent scope creep.
|
||||
|
||||
| Feature | Reason |
|
||||
|---------|--------|
|
||||
| Online multiplayer | No backend, high complexity — out of scope for v1 |
|
||||
| Mobile touch controls | Keyboard-first; separate design problem |
|
||||
| Persistent leaderboards / accounts | Requires database / server |
|
||||
| More than 4 power-up types | Research warns balance becomes unmanageable beyond 4 |
|
||||
| Tutorial flow | Pong teaches itself; tutorial adds complexity for no gain |
|
||||
|
||||
## Traceability
|
||||
|
||||
Which phases cover which requirements. Updated during roadmap creation.
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| CORE-01 | — | Pending |
|
||||
| CORE-02 | — | Pending |
|
||||
| CORE-03 | — | Pending |
|
||||
| CORE-04 | — | Pending |
|
||||
| CORE-05 | — | Pending |
|
||||
| CORE-06 | — | Pending |
|
||||
| CORE-07 | — | Pending |
|
||||
| CORE-08 | — | Pending |
|
||||
| AI-01 | — | Pending |
|
||||
| AI-02 | — | Pending |
|
||||
| AI-03 | — | Pending |
|
||||
| AI-04 | — | Pending |
|
||||
| SCRN-01 | — | Pending |
|
||||
| SCRN-02 | — | Pending |
|
||||
| SCRN-03 | — | Pending |
|
||||
| SCRN-04 | — | Pending |
|
||||
| VFX-01 | — | Pending |
|
||||
| VFX-02 | — | Pending |
|
||||
| VFX-03 | — | Pending |
|
||||
| VFX-04 | — | Pending |
|
||||
| VFX-05 | — | Pending |
|
||||
| PWR-01 | — | Pending |
|
||||
| PWR-02 | — | Pending |
|
||||
| PWR-03 | — | Pending |
|
||||
| PWR-04 | — | Pending |
|
||||
| PWR-05 | — | Pending |
|
||||
| PWR-06 | — | Pending |
|
||||
| PWR-07 | — | Pending |
|
||||
| ARENA-01 | — | Pending |
|
||||
| ARENA-02 | — | Pending |
|
||||
| ARENA-03 | — | Pending |
|
||||
| ARENA-04 | — | Pending |
|
||||
| AUD-01 | — | Pending |
|
||||
| AUD-02 | — | Pending |
|
||||
| AUD-03 | — | Pending |
|
||||
| AUD-04 | — | Pending |
|
||||
| AUD-05 | — | Pending |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 37 total
|
||||
- Mapped to phases: 0
|
||||
- Unmapped: 37 ⚠️
|
||||
|
||||
---
|
||||
*Requirements defined: 2026-03-10*
|
||||
*Last updated: 2026-03-10 after initial definition*
|
||||
Reference in New Issue
Block a user