Creating a MUD

Sometime during our parental leave, I decided that I wanted to start working on a MUD. What’s a MUD? A MUD is a text-based game that can be accessed by multiple players at the same time. MUD stands for Multi-User Dungeon and has come in many forms and variations. There’s a long history of MUDs which you can read about on Wikipedia.

My personal goal for the MUD has been to create a version of Disneyland that would be a jumping point for players to go to many different areas. My initial thought is to have the player start in Downtown Disney and figure out their way to get tickets into the parks. Once they are in the park, they’ll be able to interact with the different rides and attractions in a way that makes sense through text.

Codebase

When thinking through how I wanted to build the MUD, I was faced with a few options, do I build my own codebase or do I adapt an open-source one? I landed on an existing, open-sourced one because I didn’t want to spend my time with starting from scratch and instead focus my time on customizing the world and tweak the code to my will.

The next question was which codebase? There are several popular codebases and even derivatives of these codebases. I narrowed it down to either Evennia or CircleMUD. I would have liked working with Mordor because of my history with Isengard, but it was hard to find an updated version of it if one existed. Evennia would be great because it’s written in Python and even includes a pre-generated Django site.

I ended up with a CircleMUD derivative called TBAMud. It’s the closest to what I remember playing as a kid and had a lot of existing examples in the codebase itself.

Now that I’ve started with it, I do appreciate the customizability of the codebase and how easy it is to learn from practicing with it. However, my main gripe is that I don’t know C and adapting existing code or snippets is quite the practice in patience. I’ll keep working with it because I’m learning more about programming in C by reading the code and maintaining and debugging builds using all the gnu tools. Eventually, I’ll finish everything I want to accomplish and have a fully playable game.

Example Gameplay

I’ve built out Downtown Disney and a majority of Disneyland so far. The main things missing in Disneyland are mostly my adaptation of the rides and attractions. I’ve been able to work on parts of Sleeping Beauty’s Castle and Peter Pan’s Flight.

Here’s an example of how Sleeping Beauty’s Castle works. You enter the castle, poke around and you might run into Prince Phillip just kinda doing his own thing. You can go upstairs into the castle and you’ll be transported into a medieval-style castle where you are fighting orcish goons that are trying to find “Aurora.” You can fight them, get their items, etc. As you make your way into the Great Hall and Keep areas, you’ll run into a giant dragon. Fighting one-on-one with the dragon known as Maleficent would be extremely difficult. You have a few options here, you can try to level up your character to become strong enough to defeat her, call a few friends to log into the game and see if you can defeat her as a party or find Prince Phillip, convince him to follow you and have him fight Maleficent with his enchanted Sword and Shield.

To be continued…

Comments