Anti-Vibe Browser Game Audit
Quality Assurance
121 checks · 14 sections
- [ ] Game loop is clear within 5 seconds - [ ] Restart button always works - [ ] Pause/resume works - [ ] Win state exists - [ ] Lose state exists - [ ] No unwinnable soft-lock states - [ ] Score/progress updates correctly - [ ] Difficulty ramps intentionally - [ ] Game can be replayed without refreshing the page
- [ ] Controls are designed for thumbs - [ ] Tap targets are large enough - [ ] No important control is too close to the screen edge - [ ] No accidental browser zoom on double tap - [ ] No unwanted text selection - [ ] No accidental page scrolling during gameplay - [ ] Multi-touch behavior tested if needed - [ ] Touch input feels responsive - [ ] Controls work for left- and right-handed play where relevant
- [ ] Works on iPhone Safari - [ ] Works on Android Chrome - [ ] Handles browser address bar expanding/collapsing - [ ] Uses the real visible viewport correctly - [ ] Handles portrait/landscape rotation - [ ] Orientation is intentionally supported or blocked - [ ] Safe areas/notches handled - [ ] No UI hidden behind the home indicator - [ ] Game survives tab switching - [ ] Game handles browser back button intentionally - [ ] Refresh doesn't create broken state
- [ ] Stable FPS on a normal phone - [ ] No unnecessary per-frame DOM updates - [ ] No runaway requestAnimationFrame loops - [ ] No memory leak after repeated restarts - [ ] Images/textures compressed - [ ] Audio compressed - [ ] Assets are preloaded appropriately - [ ] Loading screen appears for slow connections - [ ] Large assets don't block first interaction - [ ] Particle counts/effects are capped - [ ] Performance tested with battery saver / lower-end devices
- [ ] Input latency feels low - [ ] Inputs aren't dropped during frame drops - [ ] Buttons have pressed/active feedback - [ ] Hits/collisions feel consistent - [ ] Movement speed is frame-rate independent - [ ] Physics uses delta time correctly - [ ] No impossible-to-read tiny UI - [ ] Important feedback uses more than subtle animation alone
- [ ] Game does not autoplay audio before interaction - [ ] Mute button exists - [ ] Volume setting works - [ ] Audio resumes correctly after tab/app switching - [ ] Multiple sound effects don't explode in volume - [ ] Background music loops cleanly - [ ] Game remains playable muted
- [ ] Initial load state - [ ] Asset loading progress or feedback - [ ] Failed asset state - [ ] Offline/disconnected state if network is required - [ ] Slow network tested - [ ] API failures don't freeze the game - [ ] Retry behavior exists where appropriate
- [ ] Start screen - [ ] Instructions/how-to-play screen - [ ] Pause screen - [ ] Game-over screen - [ ] Restart CTA - [ ] Score clearly visible - [ ] High score clearly visible if applicable - [ ] UI scales across small and large phones - [ ] Text doesn't overflow - [ ] HUD doesn't cover gameplay-critical areas
- [ ] High score persists correctly - [ ] Settings persist - [ ] Save data has sane defaults - [ ] Corrupted/missing localStorage doesn't crash the game - [ ] Reset-save option exists if needed - [ ] Version updates don't destroy state unexpectedly
- [ ] Random generation can't create impossible situations - [ ] Spawn locations are validated - [ ] Player gets enough reaction time - [ ] Hitboxes roughly match visuals - [ ] Difficulty isn't tied to device performance - [ ] Ads/popups never interrupt active gameplay
- [ ] Color isn't the only gameplay signal - [ ] Adequate contrast - [ ] Reduced-motion behavior where relevant - [ ] Instructions aren't dependent only on icons - [ ] Sound isn't the only important feedback - [ ] Essential buttons have accessible labels
- [ ] Loading animation - [ ] Button feedback - [ ] Hit feedback - [ ] Damage/death feedback - [ ] Score feedback - [ ] Screen transitions - [ ] No placeholder graphics - [ ] No debug text - [ ] No console spam - [ ] No invisible clickable areas - [ ] No obviously unfinished menus
- [ ] No game logic tied directly to FPS - [ ] No giant single-file spaghetti game loop - [ ] Game states are explicit (menu, playing, paused, gameover) - [ ] Input logic separated from rendering - [ ] Collision logic separated from visuals - [ ] Restart actually resets every relevant variable - [ ] Timers/intervals cleaned up on restart - [ ] Event listeners aren't duplicated after restart - [ ] Object/entity cleanup works - [ ] Errors are handled instead of silently ignored
- [ ] Played for 10+ minutes on a real iPhone - [ ] Played for 10+ minutes on a real Android phone - [ ] Tested one-handed - [ ] Tested with bad Wi-Fi - [ ] Tested after locking/unlocking phone - [ ] Tested after switching tabs/apps - [ ] Tested repeated game overs/restarts - [ ] Tested at 100% and low battery - [ ] Another person can figure out how to play without explanation - [ ] It's actually fun after the first 30 seconds
01When to use
Use when a browser game is playable and needs a release or polish review, especially on phones. Combine the checklist with real-device play sessions to assess controls, browser behavior, game feel, recovery, and performance.