// THE SERVER //
The magmacrunch arcade runs on a Raspberry Pi sitting in a closet. It hosts all the game servers and the chat, 24/7. No cloud, no hosting provider — just a little computer with a big job.
Everything talks over WebSockets, which means your browser maintains a live connection to the server while you play. No page refreshes, no polling — moves and messages show up instantly.
// MULTIPLAYER //
The multiplayer games each run their own server process on the Pi. When you create a room, you get a 4-letter code (like A3X7). Share it with a friend and they can join from anywhere in the world.
Up to 6 players can play at once, and anyone else with the code can watch as a spectator. The server handles all the game logic — your browser just sends moves and receives updates.
Multiplayer games:
- Cribbage — the classic card game, 2 players
- Backgammon — neon edition, 2 players
- Checkers — neon edition, 2 players
- Sökö — scandinavian stud poker, 2–4 players
- Chinese Checkers — hex-grid classic, 2–6 players
- Parchisi — indian cross and circle game, 2–4 players
- ..and more (in the private arcade)
// THE CHAT //
The arcade has a global chat room that anyone visiting the arcade page can use. Say hello, talk trash, whatever.
When you're in a multiplayer game, there's also a room chat — a private channel just for the people in that game. It's like having a table mic at the arcade.
The chat server also keeps an eye on the network. That's where the "MULTIPLAYER ONLINE" status light comes from — the arcade page checks if the chat server is reachable over HTTPS every 30 seconds.
// PLAYING //
1. Pick a game and open it.
2. Click "Create Room" to start a new game, or
enter a friend's 4-letter code to join theirs.
3. Wait for players to join (or start right away
if it's just you vs. the computer).
4. Play!
// THE TECH //
The whole thing is vanilla HTML, CSS, and JavaScript. No frameworks, no build tools, no npm. Each game is a self-contained folder with its own HTML, JS, and CSS.
The servers are written in Python using the websockets library. Newer games share a common server base that handles rooms, lobbies, and player management — each game only needs to implement its own rules.
// SECURITY //
All traffic is encrypted via HTTPS (Let's Encrypt certificates, auto-renewed). The server runs a firewall that only allows the ports it needs — everything else is blocked.
SSH access uses key-only authentication with fail2ban protecting against brute-force attempts. Admin interfaces are password-protected, and config files are restricted to owner-only permissions.
// PRIVATE ARCADE //
Some games live in the private arcade. These are password-protected so not everyone can access them.
If you have the password, you can enter it on the modal screen to unlock them. Ask Jake.
// MAGMA//OPS //
The arcade is managed through MAGMA//OPS, a web-based operations dashboard running on the Pi. It handles server monitoring, high scores, chat history, the jukebox, TV channels, themes, and more.