🎮 Game Arcade for VS Code
Take a break without leaving your editor. Game Arcade is a VS Code extension with 50+ playable games — arcade classics, puzzles, word games, board games, card games, and reflex challenges — all rendered inside a retro neon arcade cabinet UI.

✨ Features
- 50 games across 6 categories — Arcade, Puzzle, Word, Board, Card, and Reflex
- No setup, no internet required — everything runs locally inside the Webview
- High scores saved automatically and persist across VS Code restarts
- Pause, Resume, and Restart from any game with one keypress
- Sidebar shortcut — a joystick icon in the Activity Bar opens the arcade in one click
- Category tabs to quickly filter the games you want to play
🕹️ How to Open the Arcade
You can launch Game Arcade three different ways:
| Method |
Steps |
| Sidebar button |
Click the 🕹️ joystick icon in the VS Code Activity Bar (left edge of the window), then click ▶ Open Game Arcade in the panel that appears. |
| Keyboard shortcut |
Press Ctrl+Shift+G (Windows/Linux) or Cmd+Shift+G (Mac). |
| Command Palette |
Press Ctrl+Shift+P / Cmd+Shift+P, then type "Open Game Arcade" and hit Enter. |
The arcade opens as a panel beside your code, so you can glance over and jump back into work whenever you're ready.
🎯 Game Library (50 games)
Arcade (13)
Snake · Tetris · Flappy Bird · Pong · Breakout · Asteroids · Space Invaders · Pac Maze · Frogger · Bubble Shooter · Pinball · Plinko · Air Hockey
Puzzle (8)
2048 · Minesweeper · Lights Out · Sliding Puzzle · Tower of Hanoi · Sudoku · Maze Runner · Mastermind · Match 3
Word (8)
Wordle · Hangman · Word Scramble · Trivia Quiz · Mini Crossword · Typing Test · Speed Math · Number Guess
Board — vs AI (7)
Tic Tac Toe · Connect Four · Checkers · Battleship · Rock Paper Scissors · Snakes & Ladders · Dots & Boxes
Card (4)
Blackjack · Solitaire · Memory Match · Simon Says
Reflex (7)
Whack-a-Mole · Reaction Test · Dino Run · Doodle Jump · Endless Runner · Color Switch · Stack Tower · Fruit Slice · Archery
(A few games span multiple tags — use the All tab in the lobby to see everything at once.)
⌨️ Universal Controls
These work the same way inside every game:
| Key |
Action |
P |
Pause / Resume |
R |
Restart the current game |
Esc |
Return to the lobby |
Each game also shows its own controls on-screen (arrow keys, click/tap, WASD, etc. depending on the game).
🏆 High Scores
Every game tracks your best score locally using VS Code's persistent storage (globalState). Scores:
- Save automatically when you beat your previous best
- Persist across VS Code restarts and reloads
- Display directly on each game's card in the lobby
📦 Installation
From a .vsix file
- Download
game-arcade-2.0.0.vsix
- In VS Code, open the Command Palette (
Ctrl+Shift+P)
- Run Extensions: Install from VSIX...
- Select the downloaded file
Or from the terminal:
code --install-extension game-arcade-2.0.0.vsix
From source
git clone <this-repo>
cd game-arcade
npm install
npm run compile
Then press F5 in VS Code to launch an Extension Development Host with Game Arcade loaded.
🛠️ Project Structure
game-arcade/
├── src/
│ ├── extension.ts # Activation, commands, sidebar registration
│ ├── ArcadePanel.ts # Webview panel + high-score message bridge
│ └── ArcadeTreeProvider.ts # Sidebar "Open Game Arcade" button
├── media/
│ ├── arcade.css # Shared neon arcade UI styling
│ ├── main.js # Lobby, category tabs, game launcher
│ └── games/ # One self-contained .js file per game (50 total)
├── resources/
│ ├── icon.png # Extension marketplace icon
│ └── icon-activitybar.svg # Sidebar joystick icon
├── package.json
└── tsconfig.json
Every game in media/games/ is a self-contained module that registers itself on window.ArcadeGames[id] with a simple start / pause / resume / destroy interface — so adding a new game means dropping in one new file and one line in the registry.
⚙️ Requirements
- VS Code
1.80.0 or newer
- No other dependencies — the extension is fully offline and self-contained
🐛 Known Limitations
- Solitaire and a few card/board games use simplified rules (single-card drag in Solitaire, no forced captures in Checkers) to keep interactions click-based rather than drag-and-drop.
- Sound is generated on-the-fly via the Web Audio API (used in Simon Says) — no audio files are bundled.
📝 License
MIT — free to use, modify, and share.
Built for developers who deserve a break. Press Ctrl+Shift+G and go play something. 🕹️