BomberTalk
Networked Bomberman for Classic Macintosh
BomberTalk is a networked Bomberman clone that runs on Classic Macintosh hardware. Two to four players on a LAN find each other automatically, connect in a peer-to-peer mesh, and play on a shared 15x13 grid. It runs on a Mac SE (68000, 8 MHz) through to a Performa 6400 (PPC 603e, 200 MHz) from a single C89 codebase.
The game sits at the top of a dependency chain built specifically for this:
clog handles logging with a network sink for remote monitoring. PeerTalk handles all the networking: UDP discovery, TCP mesh connections, and both reliable and fast message transports. BomberTalk just registers its seven message types and gets on with the game.
Features
- 2-4 player networked Bomberman over LAN
- Automatic peer discovery via UDP broadcast
- Runs on 68k (Mac SE) and PowerPC (6200, 6400) from one codebase
- Tick-based timing so gameplay speed is consistent across 8 MHz to 200 MHz machines
- GWorld double-buffering with dirty rectangle optimisation
- Zero allocation after startup - all memory pre-allocated
- Monochrome rendering path for the Mac SE (16x16 tiles) alongside colour (32x32 tiles)
- Deterministic player ID assignment via IP sort - no negotiation needed
Tech Stack
Architecture
BomberTalk uses a screen-based state machine: Loading, Menu, Lobby, Game. The main loop polls Mac OS events, PeerTalk callbacks, and keyboard input every frame. Game state updates are tick-based, not frame-based, so the Mac SE at 8-15 fps plays at the same speed as the 6400 at 24 fps.
Network messages split across two transports:
| Message | Transport | Purpose |
|---|---|---|
| Player position | UDP (fast) | 5 bytes, sent every frame |
| Bomb placed | TCP (reliable) | Grid coordinates |
| Bomb explode | TCP (reliable) | Forces sync on slow machines |
| Block destroyed | TCP (reliable) | Tile removed from grid |
| Player killed | TCP (reliable) | Death notification |
| Game start | TCP (reliable) | Includes protocol version check |
| Game over | TCP (reliable) | Winner ID |
Hardware
| Machine | CPU | RAM | OS | Display |
|---|---|---|---|---|
| Mac SE | 68000, 8 MHz | 4 MB | System 6.0.8 | 512x342, 1-bit mono |
| Performa 6200 | PPC 603, 75 MHz | 40 MB | System 7.5.3 | 640x480, 8-bit colour |
| Performa 6400 | PPC 603e, 200 MHz | 48 MB | System 7.6.1 | 640x480, 8-bit colour |
Alpha gameplay across all three machines
Status
Alpha. The networking and game logic work. Players are coloured blocks, bombs are smaller blocks, explosions flash the affected tiles. Sprites (PICT resources) are the next step, along with further optimisation for the Mac SE.