mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
71 lines
3.2 KiB
Text
71 lines
3.2 KiB
Text
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
|