Python MUD/MUX/MUSH/MU* development system http://www.evennia.com
Find a file
Griatch 1ea7e69821 Implemented persistent cache, events and gametime counter.
OBS - there is a new data table (for the persistent cache) so you need to sync or restart with your database.

* Persistent cache (pcache)- this works the same as the volatile cache, except it is regularly saved to disk and recovered upon restart. How often the pcache is backed up is set in preferences. This was heck of a tricky thing to get right due to the intricacies of pickle; for example it turns out there is a bug in cPickle, so only normal pickle works to store the cache objects.
* Persistent events - this makes use of the pcache to re-load the scheduled events every reload. Only events with the property "persistent" will be saved this way (if not set, events will get lost upon reboot, just like now). All the main system events have been implemented as persistent events, including a new event to regularly save the pcache to disk.
* In order to track persistent event timers across reboots, there is also a global "game time" defined now. This is saved in cache and counts seconds only when the server is running. Event timers are adjusted with an offset when restarting (otherwise they will be confused by the real time jumping forward after a downtime). There are also a small set of helpful routines in src/gametime.py to help convert from real time to game time (for easy creation of new events).
* Various info commands have been updated to incoorporate the time stamp and the cache sync information.
* There are a few test commands commented out in commands/general.py that I used for testing; I left them in if you want to test things quickly. It works here, but as always more people testing is needed.
/Griatch
2009-11-22 21:18:55 +00:00
docs Add a note about Python 2.6. 2009-04-30 06:20:00 +00:00
game Patched the batch-processor's interactive mode so it will not abort if it processes an object/script parent that changes the player's state. Also added a variable BATCH_IMPORT_PATH to config so one can keep all batch scripts in one location and don't have to write the full path to get them. Default is the new directory game/gamesrc/world. 2009-10-20 22:21:01 +00:00
src Implemented persistent cache, events and gametime counter. 2009-11-22 21:18:55 +00:00
tools Should be the finishing touches on MUX help importer. 2009-01-22 17:07:33 +00:00
__init__.py Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. 2009-08-29 17:41:00 +00:00
ABOUT Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. 2009-08-29 17:41:00 +00:00
CODING_STYLE Adding a coding style document. A lot of the code doesn't follow this right now, we'll need to fix that! :) 2008-06-15 03:14:56 +00:00
INSTALL Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. 2009-08-29 17:41:00 +00:00
LICENSE It's time to take care of the legal mumbo jumbo. We're going with a Modified Clarified Artistic License. Basically, you've got free reign of the software as long as you make any of the changes to the source you make publicly available. 2007-05-18 15:36:28 +00:00
README Added @mvattr command as per MUX (Issue 25). Cleaned up @set to give better feedback. Some minor cleanups. 2009-08-29 17:41:00 +00:00
sitecustomize.py Set the default encoding to UTF-8. UTF-8 support in new codebases is pretty much expected, especially given that MUX/MUSH now have excellent support. This should alleviate some of those encoding errors, and allows us to get rid of that ascii error checker in session.py. 2009-10-27 20:03:03 +00:00
TODO Movin the TODO list to the google code group page. 2007-04-23 15:57:34 +00:00

About Evennia
-------------
Evennia is a proof-of-concept MU* server that aims to provide a functional
base for developers. While there are quite a few codebases that do the same
(and very well in many cases), we are taking a unique spin on the problem.
Some of our flagship features include (or will one day include):

* Extensive web integration.
* The ability to build/administer through a web browser.
* Shared accounts between the website and the game.
* Optional web-based character creation.
* Extremely easy-to-manipulate SQL database back-end via Django 
  (djangoproject.com)
* Simple and easily extensible design.
* Very granular permissions. Individual and group based.

The essential points here are the web integration and the SQL backing via
Django. The Django framework has database abstraction abilities that give us
many features free, such as:

* The codebase will run transparently on MySQL, SQLite, or Postgres
* At the time of this document's writing, our SQL-backed application here
  contains 0 lines of SQL. Django's database abstraction layer is absolutely
  simple yet very powerful.
* For any model we outline for the server's use, we have the ability to
  more or less automatically generate a web-based admin interface for it with
  two lines of code. This lets you Create, Update, or Delete entries.
* On the web-based side of things, features such as automatic form validation,
  abstraction of sessions and cookies, and access to whatever game data you
  desire are all attractive.
  
Support and Development
-----------------------
Since we're so early in development, we really can't hope to offer much support.
However, if you'd like to report bugs, make suggestions, or help with the
code work, visit either or both of the following links:

* Evennia Webpage
  http://evennia.com

* Evennia Code Page
  http://code.evennia.com