Evennia Proof-of-Concept ------------------------ Evennia is a proof-of-concept MUD server written entirely in Python, backed by SQL. The project rises from a general dissatisfaction with the limitations of softcode in MUX and MUSH, and the generally inflexible Diku-derivatives and relatives. Evennia represents a combination of several technologies, and most importantly of all, my first venture into codebase design. You may find things within the source that look strange to you, perhaps not ideally designed. I'm open to suggestions, but this really is largely an experiment and a learning experience. Design Objectives ----------------- 1) To create a MU* server that serves as a great foundation for capable admins to craft into their respective games. It is not my intention to provide a full-fledged, ready-to-run base, I'm releasing the means to make such games. 2) Development of games on Evennia must be easy for anyone with some degree of Python experience. Building needs to be easy, and per-room, per-object, and environmental customizations need to be simple to do. 3) The server must utilize SQL as a storage back-end to allow for web->game integration. See the details on Django later on in the document for more details. 4) Any and all game-specific configuration must reside in SQL, not external configuration files. The only exception is the settings.py file containing the SQL information. How it all Works ---------------- Python (Including the SQL driver of your choice) |-Twisted (http://twistedmatrix.com) |-SQL (MySQL, SQLite, Postgresql) |-Django (http://djangoproject.com) Evennia is built on top of Twisted, a networking engine that handles a lot of the guts and lower-level socket stuff for us. Serving as our storage medium, SQL is one of the more important and unique features of the codebase. It allows for very simple code in many cases, and can lead to a game being a lot more scalable due to the inherent speed of most modern SQL servers. Another extremely important benefit is that by storing everything in SQL, we make the entire game accessible from other means, such as a website. Which leads us to the next component. Django is perhaps one of the most interesting introductions to the codebase, since I'm not aware of any other server using it to run MU*'s. Django is technically a Python web framework, but it also includes a great data modeling and database abstraction module. This means that things like Players or Objects can be represented by a very short class, then related to one another. This allows us to add, remove, delete, and manipulate things in our database very easily. Another huge benefit is the admin interface that Django more or less automatically generates for us. Instead of a bunch of clunky admin commands, you can fire up your web browser and administer pretty much everything from there, although equivalent in-game commands may be offered. The possibilities for developing your game's website are nearly endless with this tandem of MU* server, SQL, and Django. Support ------- The best place for support is the Evennia website, located at: http://evennia.com Reporting Bugs -------------- Make sure to report any bugs you encounter on the issue tracker on our Google Code project. This is easily reached at: http://code.evennia.com