// 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.