Files
gijs_pong/.planning/research/FEATURES.md
Dabit 28f86d781c docs: complete project research synthesis
Synthesized 4 parallel research efforts into comprehensive SUMMARY.md:
- STACK.md: Vanilla Canvas 2D, fixed timestep, Web Audio, no dependencies
- FEATURES.md: MVP features + v1.x enhancements + defer list
- ARCHITECTURE.md: Game loop + state machine + entity patterns, 10-phase build order
- PITFALLS.md: 8 critical pitfalls with prevention strategies

Key recommendations:
- Use fixed timestep accumulator (60 Hz physics, variable rendering)
- Implement 10 phases from game loop foundation to cross-browser testing
- Address critical pitfalls early (tunneling, timing, DPI, autoplay, AI, power-ups, lag, memory)
- MVP ships with core Pong + AI + menus + basic polish
- v1.x adds particles, trails, power-ups, arenas

All research backed by official sources (MDN, web.dev, Chrome docs) and established patterns.
Confidence: HIGH. Ready for requirements definition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 14:18:11 +01:00

17 KiB

Feature Research

Domain: HTML5 Arcade Pong Game Researched: 2026-03-10 Confidence: HIGH

Feature Landscape

Table Stakes (Users Expect These)

Features users assume exist. Missing these = product feels incomplete.

Feature Why Expected Complexity Notes
Basic Pong gameplay (ball + 2 paddles) Core game loop—players can't engage without it LOW Ball physics, collision detection, paddle movement
Single-player vs AI Standard for arcade games; gives solo players something to do MEDIUM AI needs configurable difficulty to feel fair
2-player local multiplayer Arcade tradition; keyboard-first implementation, same machine LOW Straightforward split-input handling
Game screens (title, mode select, game over) Professional game expectation; unpolished without them MEDIUM Navigation between screens, state management
Settings menu Expected in any "finished" game; customization signals quality MEDIUM Difficulty level, color scheme, sound toggle
Score tracking & display Players need feedback on performance; missing = feels broken LOW HUD element, persisted in-game via canvas
Pause functionality User expectation for any interactive app LOW Toggle game loop, overlay pause screen
Win conditions (first to X points/match structure) Without clear goals, game feels aimless LOW Score tracking, match rounds, restart logic
Responsive controls (smooth paddle movement) Core feel—sluggish controls = game feels bad MEDIUM Keyboard input, velocity-based movement
Visual feedback on collision (ball impact visual) Players expect immediate action-response connection LOW Flash, particle pop, or glow on hit

Differentiators (Competitive Advantage)

Features that set the product apart. Not required, but valuable.

Feature Value Proposition Complexity Notes
Particle effects on ball impact Creates "juice"—game feels modern and satisfying vs flat MEDIUM Burst of 5-10 particles, fade over ~0.2s
Glow/aura effects on paddles/ball Neon/arcade aesthetic; makes visuals pop off screen MEDIUM Canvas shadow glow, can be toggled via settings
Screen shake on scoring/power-up Physical feedback without controller; adds impact LOW Offset canvas camera 2-5px for 100-200ms
Ball trail/motion blur effect Tracks ball movement, improves visual clarity at speed MEDIUM Canvas line drawing from previous positions
Power-ups during play (multi-ball, slow time, enlarged paddle) Adds strategic depth, breaks up gameplay rhythm, keeps matches fresh HIGH Spawn logic, collision detection, timer management
Multiple arenas/stages (different visual themes or layouts) Extends play value; visual freshness; progression feel MEDIUM Stage obstacles, different visual tiling/colors
Difficulty progression (ball speeds up as match progresses) Makes game escalate tension; comebacks feel earned LOW Velocity scaling with score or time
Sound effects (paddle hit, wall hit, score, power-up) Polished audio feedback; arcade authenticity MEDIUM Web Audio API or HTML5 audio elements, 4-6 SFX
Background music/ambience Sets mood; modern games expected to have it MEDIUM Looping track, can be muted in settings
Combo/streak counter Gamification hook; makes chaining successes feel rewarded LOW Visual counter, audio/visual feedback on streak
Visual variety (color schemes, neon vs retro vs modern) Customization drives engagement; feels "yours" LOW Canvas color theming, easy CSS/JS swap

Anti-Features (Commonly Requested, Often Problematic)

Features that seem good but create problems.

Feature Why Requested Why Problematic Alternative
Online multiplayer / leaderboards "Let players compete globally" sounds appealing Requires backend, authentication, persistence; exponentially increases complexity; out of scope for v1 Stick with local multiplayer; defer online until core game ships
Mobile touch controls "More players via phones" seems like obvious feature expansion Touch has different physics (no relative movement); screen size ruins UI; controls feel imprecise; derails keyboard focus Mobile-first is a separate project; keyboard design is cleaner
Persistent progression / accounts "Save player progress" feels professional Requires database or localStorage manipulation; cheating risk; adds state management burden No accounts for v1; each session is independent
Tutorial / onboarding flow "Help new players understand mechanics" is thoughtful Arcade games learn-by-doing; tutorial adds complexity; most Pong players understand immediately Let players figure it out in 30 seconds; simple help text in menu
Ultra-complex power-up economy "10+ power-up types for replayability" sounds great Creates balancing nightmare; testing burden explodes; confuses simple game; dilutes impact of each power-up Start with 3-4 power-ups; quality over quantity
Highly detailed obstacle-heavy arenas "More level variety through complexity" feels deep Clutters screen; makes collision detection harder; slows down pacing; feels chaotic vs satisfying Simple arena variations (walls, center obstacle); minimize visual noise
Procedural/random stage generation "Infinite replayability" sounds cool Makes balance impossible; can generate unwinnable/boring states; unfair feel Handcrafted stages; 3-5 solid arenas beats infinite bad ones
AI learning / adaptation "AI that gets better as you play" Feels unfair; players resent opponent learning from them; debugging nightmare Simple difficulty levels; consistent, beatable AI at each level
Deep customization (paddle size, ball size, court dimensions) "Let players tinker" signals flexibility Breaks game balance; creates invalid states; players get lost in options; paralysis Fixed geometry; color/visual customization only

Feature Dependencies

Title Screen
    └──requires──> Game Mode Select
                       ├──requires──> Solo Play (AI Opponent)
                       │                  └──requires──> Game Loop (core Pong)
                       │                                  ├──requires──> Ball Physics
                       │                                  ├──requires──> Collision Detection
                       │                                  └──requires──> AI Difficulty System
                       │
                       └──requires──> 2-Player Mode
                                          └──requires──> Game Loop (same as above)

Game Loop
    ├──requires──> Score Display
    ├──requires──> Pause Functionality
    │
    ├──enhances──> Visual Feedback (particles, glow, trails)
    ├──enhances──> Sound Effects
    │
    └──enables────> Power-ups
                       ├──requires──> Power-up Spawn System
                       └──requires──> Power-up UI (timer display)

Power-ups
    └──requires──> Game Loop (core physics must handle multi-ball, etc.)

Game Over Screen
    ├──requires──> Score Tracking
    └──requires──> Restart / Menu Navigation

Settings Menu
    ├──enhances──> AI Difficulty (toggle Easy/Medium/Hard)
    ├──enhances──> Visual Effects (toggle particles, glow, trails)
    ├──enhances──> Audio (toggle sound effects, music)
    └──enhances──> Visual Theme (color scheme selection)

Multiple Arenas
    └──requires──> Arena Selection / Mode Select Screen
                       └──enhances──> Replayability

Dependency Notes

  • Game Loop requires Ball Physics and Collision Detection: Pong is unplayable without these core mechanics.
  • AI Opponent requires Difficulty System: Difficulty toggle is critical for fair single-player experience; easy AI vs hard AI makes massive difference in satisfaction.
  • Visual Feedback enhances Game Loop: Particles, glow, trails don't break core game but make it feel modern. These are the "juice" that separates polished from flat.
  • Power-ups enable Strategic Play: Power-ups require solid core loop first; launching with broken power-up balance is worse than launching without them.
  • Settings Menu enhances Multiple Features: Settings unlock customization across difficulty, visuals, and audio without complicating core gameplay.
  • Multiple Arenas depend on Core Loop: New arenas need stable physics first; can add in v1.x after core validates.

MVP Definition

Launch With (v1)

Minimum viable product — what's needed to validate the concept.

  • Basic Pong gameplay (ball, 2 paddles, collision detection) — Players need the core game
  • AI opponent with difficulty levels (Easy/Medium/Hard) — Solo players need something to do
  • 2-player local multiplayer — Keyboard multiplayer is arcade tradition
  • Score display & match structure (first to N points) — Players need goals
  • Title screen, mode select, game over screens — Polished feel matters
  • Pause functionality — Users expect to pause
  • Basic visual feedback (collision flash or glow) — "Juice" starts here
  • Basic sound effects (paddle hit, wall hit, score sound) — Arcade authenticity
  • Settings menu (difficulty, sound toggle, color scheme) — Control signals quality

Add After Validation (v1.x)

Features to add once core is working and players engage.

  • Particle effects on impact — Players will notice lack of visual polish; easy win for engagement
  • Ball trails / motion blur — Improves clarity at high speeds; visual feedback upgrade
  • Power-ups (3-4 types: multi-ball, slow time, enlarged paddle, speed boost) — Adds strategic depth after core gameplay proves solid
  • 2nd & 3rd arena variations (theme/obstacle changes) — Extends play value once players want variety
  • Background music loop — Ambience upgrade; audio polish
  • Screen shake on scoring — Impact feedback; easy add-on

Future Consideration (v2+)

Features to defer until product-market fit is established.

  • Advanced power-ups (ice ball, split shot, shield) — Risk of over-complicating game feel
  • Combo/streak counter system — Gamification; depends on user feedback about engagement
  • Online leaderboards — Requires backend; out of scope for static HTML5 delivery
  • AI learning / adaptation — Risk of feeling unfair; complexity not justified
  • Mobile touch controls — Separate design problem; keyboard focus is cleaner
  • Procedural stage generation — Risk of balance problems; handcrafted is better

Feature Prioritization Matrix

Feature User Value Implementation Cost Priority
Core Pong gameplay HIGH MEDIUM P1
AI opponent with difficulty HIGH MEDIUM P1
2-player local multiplayer HIGH LOW P1
Game screens (title, menu, over) HIGH MEDIUM P1
Score tracking & display HIGH LOW P1
Pause functionality MEDIUM LOW P1
Settings menu MEDIUM MEDIUM P1
Basic visual feedback (glow/flash) HIGH LOW P1
Basic sound effects MEDIUM LOW P1
Particle effects on impact HIGH MEDIUM P2
Ball trail / motion blur MEDIUM MEDIUM P2
Power-ups (multi-ball, etc.) HIGH HIGH P2
Multiple arenas MEDIUM MEDIUM P2
Background music MEDIUM MEDIUM P2
Screen shake on scoring MEDIUM LOW P2
Combo counter LOW LOW P3
Advanced power-up types MEDIUM HIGH P3
Online multiplayer LOW CRITICAL P3+
Mobile touch controls LOW HIGH P3+

Priority key:

  • P1: Must have for launch (v1) — Ship with these
  • P2: Should have, add when possible (v1.x) — Polish pass
  • P3: Nice to have, future consideration (v2+) — Defer or skip

Arcade Game Design Expectations

Based on industry patterns for arcade-style games, here's what makes a Pong game feel "complete":

Screen & Menu Flow

  • Title Screen: Logo/game name, prominent start button, settings access
  • Mode Select: Clear choices (Solo vs 2-Player), easy navigation
  • Game Screen: Clean HUD (scores, timer if applicable), minimal UI noise
  • Pause Screen: Large "PAUSED" text, resume/settings/menu options, darkened overlay
  • Game Over Screen: Final scores, winner announcement, restart/menu navigation

Game Feel Expectations

  • Controls respond instantly (no input lag)
  • Collision feedback is immediate (flash, sound, particle burst)
  • Score changes are celebrated (sound + visual feedback)
  • Difficulty scaling feels fair (AI doesn't feel cheesy at any level)
  • Game is immediately playable (no tutorial; learn by doing)

Visual Polish Indicators

  • Modern Pong games use neon/glow aesthetic OR clean minimal design (rarely both)
  • Movement has trails or blur at high speeds
  • Impacts register visually, not just mechanically
  • Color scheme is consistent (coherent visual language)

Audio Expectations

  • Paddle hits have distinct sound from wall hits (Pong classic: octave difference)
  • Point scoring gets celebration audio (different from hit sounds)
  • No audio ever blocks game state changes (no long audio sequences)
  • Music/ambient is subtle; doesn't mask game sounds

Competitor Feature Analysis

Feature Pong Quest (RPG take) Pixel Pong Pro (arcade) Pong Worlds (modern) Super Pong Next Gen (our approach)
Core Pong gameplay Yes, wrapped in RPG progression Yes, arcade-focused Yes, with obstacles Yes, with juice
AI difficulty levels Multiple via level progression Adjustable difficulty Yes Easy/Medium/Hard toggle
2-player mode Dungeon co-op Local vs mode Yes Keyboard local only
Power-ups 50+ silly power-ups Time-slow mechanic 5 paddle variants 3-4 focused power-up types
Visual polish Retro pixel style Glitchy effects Neon/modern Glow, particles, trails
Sound design Audio feedback Arcade beeps Music + SFX Classic Pong tones + modern polish
Multiple stages Themed dungeons Endless arcade 5+ worlds 3-4 arena variations
Persistence RPG progression tree Score records Progression unlocks Session-based, no persistence
Scope Medium (RPG wrapper) Small (arcade focus) Medium (cosmetics) Small-Medium (pure arcade juice)

Our approach: Skip RPG bloat, skip endless mode chaos, skip complex cosmetic systems. Instead: solid core Pong + focused polish (particles, glow, trails) + 3-4 well-designed power-ups + 3-4 arena variations. Quality over quantity.

Sources


Feature research for: HTML5 Arcade Pong Game Researched: 2026-03-10