[Twisted-Python] ANN: antioch 1.0 developer preview released

Phil Christensen phil at bubblehouse.org
Fri Dec 17 11:13:45 MST 2010


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.






More information about the Twisted-Python mailing list