Hey all,
So, I've recently made big strides with an old project that I've been kicking
around ever since working on Divunal back in the Twisted Reality days. Since it
uses several Twisted-community projects to solve some problems I've been
tinkering with for years, the first place I hoped to recruit interest was among
the Twisted community.
My goal has been to create a MUD-like environment, particularly one derived
from the philosophies of LambdaMOO. However, I also wanted to use modern web
technologies to create something that could be more than a text-based
environment, though still probably less suited for an immersive 3D environment
or some such. I wanted to allow "anyone" to safely develop in-game code using
Python, without fear of accidentally creating an infinite loop and taking down
the system. Finally, I wanted to ensure that if someone did create a virally
popular game, it would be possible to scale the system in ways LambdaMOO never
could.
Today I released what is best described as a developer preview of the 1.0
release of this software, antioch. It comes somewhat from the lineage of a
predecessor named txSpace, but is pretty much a complete rewrite.
antioch approaches things with entirely different goals than Twisted
Reality/Imaginary did. Like LambdaMOO, it makes very few assumptions about the
attributes of your world, assuming it will all be implemented using game verb
mechanics. It's primarily concerned with individual user rights, object
ownership, and code isolation.
Using Twisted, community libraries (such as Nevow, txAMQP and ampoule),
PostgreSQL and RabbitMQ, antioch implements a high-performance, scalable
virtual world. There's more details on the features below (sorry for the
execu-speak, a habit), but to jump right in, head over to:
http://philchristensen.github.com/antioch
Or sign up for the discussion group/mailing list at:
http://groups.google.com/group/antioch-dev
I've done my best to create tons of documentation and installation guides, but
I'm always adding to the collection.
Any and all feedback is always appreciated,
- phil
antioch feature set
--------------------
* **Customizable AJAX-Enabled Client** —
The antioch web client provides a standards-compliant interface based
on the Nevow Athena AJAX framework, and is supported by all modern browsers.
Although the default database provided is geared towards text-based games,
the flexibility of the client interface and the power of the plugin system
allows many different kinds of games to be developed on the antioch
platform.
* **Graphical Object Editors** —
Programmers and authors alike will find the built-in authoring tools
expedite world creation and verb programming.
* **Plugin System** —
antioch 'modules' allow developers to create new client functionality.
The module system was used to implement the built-in object and verb
editors, demonstrating the creation of new verb-environment functions,
Web resources, and client-side JavaScript.
* **Isolated Verb Execution** —
Database code is run in individual subprocesses, allowing for memory and
runtime limits to be applied at the UNIX process level, and allowing for
verb code to be written in a synchronous style.
* **Highly Scalable Messaging Layer** —
antioch uses the RabbitMQ server to implement message passing support,
allowing support of thousands of active clients with minimal latency.
* **Powerful Natural-Language Parser** —
The built-in interpreter parses a large number of different imperative
statements, making user-world interaction a more immersive experience.
* **Internal Scripting** —
A Pure-Python scripting layer integrates tightly with the framework code,
allowing a high degree of customization.
* **Robust Networking** —
antioch relies on the Twisted Python and Nevow frameworks to implement
client-server communication. This robust asynchronous networking library
allows client counts to scale easily to hundreds of connections.
_______________________________________________
Twisted-Python mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python