// 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, and 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 whether 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, so 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.