Re-organization.
This commit is contained in:
parent
5db3ae2933
commit
5421ab7f6e
38 changed files with 0 additions and 0 deletions
74
ABOUT
Executable file
74
ABOUT
Executable file
|
|
@ -0,0 +1,74 @@
|
|||
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)
|
||||
|-asynchat (included with Python2)
|
||||
|-SQL (MySQL, SQLite, Postgresql)
|
||||
|-Django (http://djangoproject.com)
|
||||
|
||||
Evennia is built on top of asynchat, an asynchronous TCP conversation/chat
|
||||
library. This makes the actual socket/connection handling an absolute
|
||||
no-brainer.
|
||||
|
||||
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
|
||||
-------
|
||||
At this time, I am offering no formal support for Evennia. It is not ready for
|
||||
use and is subject to change in a major way from week to week. I can't hope
|
||||
to support such a young product. However, if you have questions or ideas,
|
||||
please direct them to squishywaffle@gmail.com.
|
||||
|
||||
Reporting Bugs
|
||||
--------------
|
||||
Feel free to contact me by email at squishywaffle@gmail.com with as much
|
||||
details on the bug that you can find. Copy/pasting server logs is generally
|
||||
a good idea.
|
||||
Loading…
Add table
Add a link
Reference in a new issue