A collection of retro arcade games, entirely vibe coded — designed and built through AI-assisted development from concept to completion. No manual pixel-pushing, no copy-pasting tutorials. Just vibes, prompts, and iteration.
Play: shawtim.github.io/arcade-games
| Game | Description |
|---|---|
| Tetris | Classic block-stacking. SRS rotation, wall kicks, 10 levels. |
| Bubble Shooter | Aim, bounce, match 3+. Physics-based trajectory with wall reflections. |
| Space Invaders | Defend Earth. Descending alien waves, dodge and shoot. |
All games share a unified retro arcade cabinet aesthetic — CRT scanlines, neon glow, pixel fonts, stegosaurus background (don't ask).
This entire project was built through vibe coding — a workflow where:
- AI generates the code from high-level descriptions and iterative feedback
- Human provides direction — game feel, visual style, what's fun and what isn't
- No boilerplate, no frameworks — every line exists because it was prompted into being
The SKILL.md defines the project's style guide and constraints. Think of it as a creative brief that keeps every game consistent.
- Proves AI can ship real, playable games — not just demos
- Every game is self-contained and readable (no framework magic)
- Fast iteration: concept → playable in hours, not weeks
- The constraint of "no dependencies" forces clean architecture
Every game in this collection follows the same visual DNA:
- 🖥️ CRT cabinet frame with scanline overlay
- 🎨 Neon color palette — cyan, magenta, yellow on dark
- 🔤 Pixel fonts — Press Start 2P / VT323
- 📱 Mobile-first — touch controls, responsive layout
- 🦕 Stegosaurus — the unofficial mascot (again, don't ask)
HTML5 Canvas + Vanilla JavaScript + CSS3
That's it. No React, no bundlers, no npm install. Open index.html and play.
game.js → Game loop, state, logic, rendering (all-in-one)
index.html → Canvas + UI elements
style.css → Cabinet frame, responsive layout, effects
Each game is a single game.js that handles everything. Simple, readable, hackable.
git clone https://github.com/ShawTim/arcade-games.git
cd arcade-games
python3 -m http.server 8000Then open localhost:8000 for the game select screen, or go directly to any game's folder.
Follow the SKILL.md — it defines the rules for adding games to this collection. TL;DR:
- Create
your-game/withgame.js,index.html,style.css - Match the cabinet aesthetic (CRT frame, neon palette, pixel font)
- Include mobile controls
- Zero dependencies
- Add to the lobby (
index.htmlat root)
MIT
Vibe coded by ShawTim 🎮