When I was in middle school, I spent countless hours in front of a Telnet terminal playing MUDs. This project is a love-letter to this style of game, in particular the Diku/Merc/ROM style MUDs such as Fatal Dimensions.
The core of the server uses tokio to handle Telnet connections and the game loop.
Current implemented features include:
- Handling of multiple simultaneous Telnet connections
- A partial implementation of a ROM area file format parser. Currently, only rooms, mobiles and mobile reset commands are implemented.
- Chat via
gossip
andsay
commands. - Colored output.
- Movement throughout the world with
NSEWUD
andlook
commands.
There is still a ton of work to do such as implementing deeper interaction with the world, objects, combat, etc.
If you want to try this out:
- Clone the report.
- Write a settings file in TOML. For example, you could create a file
settings.toml
using the following template:
port = 4073
# Some sample areas sourced from the classic ROM distribution
areas = ["areas/midgaard.are", "areas/school.are"]
recall_vnum = 3001
- Run the server with the configuration file using
cargo run -- --config-file settings.toml
. This will start a server locally on port 4073. - Connect to the server and explore using
telnet localhost 4073
.