t
Use this checklist when preparing a web/mobile release. The goal is to catch old-phone issues early: frame drops, memory growth, audio hitches, oversized modals, touch/controller switching problems, and asset packages that are larger than the game needs.
Test Targets
- Desktop browser: current Chrome/Edge/Firefox.
- Mobile browser: at least one iOS Safari and one Android Chrome device.
- Low-spec target: a phone roughly five years old or a throttled browser profile.
- Controller path: one XInput-style controller.
- Touch path: no physical keyboard/controller connected.
Arcade Pong Release Checks
- Start Exhibition Match from the single-game Arcade Pong build.
- Run Easy, Medium, Hard, and Custom starts; each should reset match settings from the selected preset.
- Play to 5 points and choose New Match; the mode picker should reopen without a softlock.
- Trigger multiball at least twice; all balls should remain responsive and scoring should wait for every active ball.
- Use Fast Ball and Slow Ball; each should multiply current speed immediately without accidentally reversing the intended effect.
- Use Rocket; projectile hit detection should feel tight and the stunned paddle should flash.
- Let power-ups spawn while two are already on-field; collection should go to the last hitter owner.
- Switch between keyboard and controller; power-up labels should switch between
1/2/3 and controller button labels.
- Connect a controller while touch controls are visible; touch controls should hide automatically.
- Disconnect/stop using controller and use keyboard; labels and controls should return to keyboard behavior.
- Open Achievements, Stats, Settings, Game Settings, and Game Info on mobile; every screen should keep its Back button visible and the main content scrollable.
- Let music transition between tracks during play; there should be no obvious gameplay hitch.
Cross-Game Checks
- Main menu loads within a few seconds after the splash sequence.
- Theme changes apply immediately to menus, buttons, panels, and pause controls.
- Global achievements remain visible from the main menu across save changes.
- Settings modals are opaque and readable on mobile.
- Back buttons return to the previous menu, not an unrelated game/menu state.
- Text size Medium should be readable on phone browsers; Large should not push modal actions off-screen.
- Controller Start opens pause/menu in gameplay; Select opens settings where supported.
- RB/LB moves between tabbed menu pages where applicable.
- Right stick scrolls scrollable pages.
Low-Power Mode Requirements
Low-power mode should be data-driven and shared through settings/game settings instead of a scene-local toggle. A low-power preset may:
- Reduce particle/trail/shader effects.
- Prefer static or lower-rate sprite animation.
- Disable decorative background animation.
- Reduce maximum active nonessential field effects.
- Use smaller warm caches for optional UI screens.
- Keep gameplay-critical collision/update rates unchanged.
Current implementation:
SettingsManager.low_power_mode is exposed through the reusable standard settings popup.
- Arcade Pong uses the shared flag to cap active field power-ups, reduce power-up spawn pace, use smaller held power-up slot icons, and hide transient field effect text from
res://data/system/low_power_presets.json while keeping collision and scoring rules unchanged.
- AudioManager uses the shared flag to clear/skip queued next-track music streams according to the same preset, reducing memory and decode pressure on older browser/mobile targets.
Asset And Package Checks
- Individual game builds include only shared assets plus that game's data/assets.
- Web package size is reviewed before release.
- Music files are compressed appropriately for web distribution.
- Large spritesheets are included only when referenced by a game sprite map.
- Android builds remain optional until web/windows/linux packages are stable.
Pass Criteria
- No repeatable browser frame drops in normal play.
- No visible audio hitch during normal track transition.
- No modal exceeds the viewport without a visible scroll path and Back action.
- No input mode leaves the player unable to navigate menus.
- No repeated play/restart/menu cycle shows unbounded memory or node growth in available baseline reports.