Building a MUD in 2020
Why the hell not? The MUD medium, also known as multi-user dungeon (aka multi-user dimension and multi-user domain), has been around for over 30 years.
My online science fiction game, Shadowlack, has been around since 2002. It turns 18 in July 2020. Why not add another 30 years of life by turning aspects of it into a MUD?
Shadowlack has lived as a short story format forum-based game (play-by-post game). It has survived through a lot over the years and has a lot of "stickiness" due to the world-building aspect of the game. If you can dream it up, we can likely find a unique fit for it in the game world.
The Shadowlack world has gone through a wide variety of incarnations. The game concept began in 1997 as a series of drawn comic panels. "The Comic" was even confiscated by teachers a few times. It had over 2,600 individual panel drawings.
It made the transition from paper to web in 2002. It has seen life on ezBoard, Ikonboard, Invision Power Board, phpBB, completely custom software, as well as XenForo. What's next?
Evennia is an open-source server, library and toolkit for building multi-player online text games. I chose Evennia for my MUD due to it being written in Python, and the fact that it is bare bones.
Evennia is not thread-based and runs using one process using Asynchronous I/O. It gives the appearance of everyone operating at the same time even though it is using sequential code. This means that there can be no race conditions or things that happen due to weird timing. The main drawback of this is that we cannot take advantage of multiple processors. For a text-based game of this size, it is acceptable.
Django Web Framework
Django is being used as Shadowlack's ORM. I've been using Django for around six years now for various projects. The cool thing about using Django is that anything that I can normally do with Django, I can easily extend to Evennia.
What about game mechanics? I am deviating away from more traditional MUD-like games (though not entirely MUSH-like) due to the more character-driven narrative nature of Shadowlack. I have been working on a "Shadowlack Core Book," and the rule system of Fate fits with how Shadowlack is structured. Fate is designed in such a way that it allows for non-obstructive roleplaying and less fiddling with dice than a typical Dungeons and Dragons game. The idea here is to keep character adventure and development on the forefront.
Fate in a MUD environment? Whaaaaat.
Given that it's a text-based game, Shadowlack has always had a fairly high amount of sight-impaired players, as well as those with motor impairments (RSI, cerebral palsy, muscular dystropy, etc). Right out of the gate, all development is being done with consideration for screen readers and a wide range of assistive technology.
Everything is keyboard accessible, and follows WAI-ARIA Best Practices. Additionally a screen reader mode is available in the game client, and then some! Check out the A11Y Project if this sort of development interests you. They also do a phenomenal job at busting myths.
No client? No problem. You can access the MUD-portion of the game using a browser and a web-based WebSocket client that mimics Telnet. Or you can connect using your favourite MUD client. It's up to you.
Forum For Life
Shadowlack's forum is here to stay if the new (old) MUD aspect of the game is unappealing. The hundreds of thousands of existing stories have a forever home. Asynchronous roleplaying will remain possible. How the MUD client and forum will interact is not set in stone, but the major zones (countries, moons, etc) will be accessible in either medium.
Full Stack Development Ahead
Believe it or not, this is the first actual game that I'm developing. I feel as though many developers start in games and then shift over. I've been programming software for over 20 years now (in API integrations, UX, securing development environments, and security flows), and it's been cool to see how easy it is to pull all of the different moving parts together. It's exciting.
Shadowlack is a labour of love and is kept alive by the community. I've been the sole developer at Shadowlack for 17 years. If you're interested in contributing to the project, check out our Patreon or hop on our Discord. I don't plan on being the only developer forever... and creative writers are always welcome. 😉