Single-page arcade · revision 12

Mini Games & Board Games

16 small games in one browser tab · functional multiplayer · revision 11

Pick a game below. Every game runs locally in JavaScript, uses simple buttons/cells, and is designed to be lightweight enough for the portfolio site. Chess includes a compact alpha-beta minimax AI. The multiplayer panel can match two ready visitors, open chat, start optional camera/video/audio, and synchronize the supported duel games. First player chooses the game; second player controls the old AI side. Revision 11 re-enables microphone sound for speaking while keeping the local preview muted to reduce echo.

Multiplayer lobby · revision 12

Match with another player

Check the option when you want to play with someone else on the website. The first ready player becomes player 1 and chooses the game. The second ready player becomes player 2 and controls the old AI side in supported games.

Not searching. Check “Ready for multiplayer” to enter the queue.
No match yet.

Camera uses browser WebRTC and normally needs HTTPS or localhost. To reduce bandwidth on Android/mobile connections, video stays around 256 × 192 at 10 fps, and microphone sound is enabled with echo cancellation. Your own preview stays muted to reduce feedback. Tap the other player video if the browser blocks remote sound. Multiplayer board sync is active for Three-in-a-Row, Four-in-a-Line, Dots & Boxes, and Chess.

Your camera
Other player

Board

Choose a game

Select any game from the list.

Ready.

Upgrade plan

Revision 2Add chess with selectable minimax AI depth.
Revision 3Fix chess piece colors so white and black pieces remain visually stable.
Revision 4Add player matchmaking, chat, and optional camera lobby.
Revision 5Fix PHP 7 compatibility and safer lobby storage.
Revision 6First player chooses the game; second player takes the AI side with synchronized moves.
Revision 7Improve Android/WebRTC camera reliability with video-only streams, inline playback, renegotiation, and diagnostics.
Revision 8Reduce camera bandwidth with smaller video constraints, lower frame rate, and WebRTC sender bitrate limits.
Revision 9Ask the active camera peer to resend video when the other player joins late or Android delays negotiation.
Revision 10Fix two-way camera negotiation so the second player camera appears on the first player screen.
Revision 11Re-enable microphone sound for speaking while keeping low-bandwidth video and muted local preview.