Development

Voices Between Worlds: Intermud3 Reborn

Distant fantasy towers on separate worlds connected by luminous message ribbons across a star-filled planar void

Once, every MUD was an island with a telnet port for a shoreline. Intermud3 turns the ocean into a conversation.

The 2025 repair replaced stubs and unsafe partial integrations with a complete client built around a thread-safe event queue. Network work happens away from the main game loop; character-facing events return through a controlled producer-consumer path instead of letting a background thread touch live game state directly.

A full voice across the network

Players gained cross-MUD tells, shared channels, remote who queries, finger information, player location, a network MUD list, channel subscriptions, and emotes. Administrators gained status, statistics, reconnect, reload, and save controls. A file-based configuration keeps gateway details and feature toggles outside the code.

The command family includes i3tell, i3chat, i3who, i3finger, i3locate, i3mudlist, and i3channels, with configuration and administrative commands for operators.

Rebuilt with the doors locked

The implementation closed the issues found in the earlier client audit: buffer overflows, use-after-free risks, unsafe logging formats, race conditions, resource leaks, and cross-thread access to character data. Bounds checks, input validation, explicit JSON cleanup, safe queue ownership, and graceful auto-reconnect replaced the fragile paths.

JSON-RPC 2.0 provides the wire protocol, with json-c handling messages and the ordinary heartbeat processing completed events. Both Autotools and CMake know how to build the system.

Intermud3 remains configuration-dependent—the gate must be opened deliberately—but the source-side bridge is no longer a sketch. It is a working, auditable passage through which a tell can leave one world and arrive in another.