Evennia, a MUD Building Toolkit

29 August 2013 by Kelketek

Felix just wrote a post on Seltani and its work to create a more accessible MUD experience.

There is another project which has similar aims, but more indirectly. It’s aimed at the developer who wants to customize their MUD completely, using a language that offers quick development: Python.

It’s called Evennia, and it brings a host of game-changers (pardon the pun) to the table.

Evennia is a project that has been maturing over the last few years into a very polished toolkit for creating any sort of MUD you can imagine. Some of the features I’m describing are (at the time of writing) only available in the development branch, but these should be available soon.

Evennia, much like MUCKs, MUSHes, and MOOs, comes to the table with a minimal set of game-specific features (No combat system, for instance), but a wide array of tools for building your own and a number of really useful defaults. For instance, it comes with a built-in comm system, a set of basic building commands (though these are likely to need changing if you anticipate public building), and the ability to Immortals and the superuser to run Python expressions through the @py command right within the environment.

It is based on the Django framework, though this is mostly abstracted away. You can write a MUD in Evennia without knowing anything about Django. However, if you choose to learn Django, it opens up a world of possibility for Web Interaction, which is a key aspect of attracting modern users. In the dev branch, changes done through the web immediately affect characters in game. For instance, if you create a form to edit your character’s description in Django, the description would be immediately available on the character in-game. It also comes with a basic web-client so that users unfamiliar with Telnet can play without having to download anything special and configure it.

Because it’s based on Python, you have the entirety of the Python language and libraries at your disposal. Evennia makes use of the Twisted Framework, and provides internal hooks for interacting with outside services. Evennia comes with the ability to link with IRC channels over the comm system, and also can subscribe to RSS feeds. This could be used to auto-announce changes on your game’s forum, for instance.

The documentation for Evennia is also quite excellent, and its IRC channel gives direct access to its lead developer, Griatch, who is always willing to help, and even talk about your new MUD idea.

I’ve been using Evennia to work on the new version of Winter’s Oasis, and you can find the repository for my work on GitHub.

There’s much left to do, and we’re currently dependent on the dev branch. One of the bigger challenges has been transferring all of the data from the old server to the new one. This has meant serializing the old MUCK database into JSON and then using that data to recreate all of the assets in Evennia. However, this is entirely possible, and works well. Another server which is working on transferring to Evennia is Latitude MUCK, and one of us will likely be the first to release a production game in this new codebase. We’ll be happy if you stop by!