A choice-based shared online text environment sandbox
Python JavaScript HTML CSS
Switch branches/tags
Nothing to show
Clone or download
Andrew Plotkin Andrew Plotkin
Andrew Plotkin and Andrew Plotkin Comments.
Latest commit 9f52377 Dec 6, 2015
Failed to load latest commit information.
lib Holler command on the admin page. Dec 6, 2015
static Add a checkmark feature to the popup menu. Oct 5, 2015
.gitignore Genericize the config files. Jun 4, 2013
LICENSE Added the MIT license. May 14, 2013
README Update some version numbers and copyright dates. Mar 14, 2014
requirements.txt Bump to Tornado 3.1.1. Sep 27, 2013
twcommand.py Comments. Dec 6, 2015
tweb.py Added a feature to serve extra static top-level URLs. Dec 6, 2015
twloadworld.py Now that we're tagging portlists with keys, let's track them by keys … May 30, 2014
tworld.py Debug option for showing stack traces anyway. Jun 14, 2013
twsetup.py Report localization updates on running setup. Oct 6, 2015


Tworld -- a choice-based shared online text environment sandbox

Tworld pre-release version 0.10.
Designed by Andrew Plotkin <erkyrath@eblong.com>.
Site: <https://github.com/erkyrath/tworld>

Tworld is a text MUD engine in a new style. It runs as a web application,
offering hypertext environments (hyperlink-based actions rather than a
command line). Players can construct new areas in a wiki-style interface.
The intent is to have a modern, easily-accessible shared world, which
blends the lightweight social environment of a chat MUD with the inviting
collaborative sandbox of a wiki.

* Caveats

Tworld is still in development. It is not finished yet! I'd be willing
to call it "beta", but with a lot of lip-pursing and squinting.

The scripting language is mostly defined, but is missing large chunks
of functionality.

The database schema is also mostly defined. Future changes will come
with a database-upgrade script (twsetup.py --upgradedb).

* Requirements

Python 3 (3.3 or later)
MongoDB (2.4 or later) (not tested with 2.5 or 2.6)
Tornado (3.1 or later) (not tested with 3.2)
PyMongo (2.4 or later)
Motor (0.1)

Typically you will install Python 3 and MongoDB with your package manager;
on MacOS, I use Homebrew. Python comes with its own package manager, pip3;
use this to install Tornado, PyMongo, and Motor.

Note: the latest version of Motor (0.1.2) specifies the not-quite-latest
version of PyMongo (2.5.0). This is a nuisance. I am currently using
PyMongo 2.5.2 with Motor 0.1, which seems to work with a simple Mongo
configuration. Do not try this with replica sets.

* Installation notes

At the moment, you're on your own. I will regularize and document this
as the system gets closer to beta.

The overview: Tworld runs as a trio of daemon processes (mongod, tweb, and
tworld). To run them, you will need a private server, or a shared compute
service such as Linode or Amazon EC2. Tworld is not suitable for a shared
web-hosting service; these usually forbid long-running processes such as
chat and MUD apps.

Once you have installed everything, edit tworld.conf to your liking.
(The admin_email entry should be a real email address.)

Make sure mongodb is running.

Run the setup script:
python3 twsetup.py --config=tworld.conf

Then start the tworld and tweb processes, in separate shells:
python3 tworld.py --config=tworld.conf
python3 tweb.py --config=tworld.conf

* License

Copyright (c) 2013-2014, Andrew Plotkin.
Open-source under the MIT license. See the "LICENSE" file.

This package includes the following third-party software:

  jQuery JavaScript Library v1.9.1
    http://jquery.com/  (MIT license)
  jQuery UI v1.10.3
    http://jqueryui.com  (MIT license)
  jQuery.contextMenu version 1.7 (with modifications)
    https://github.com/arnklint/jquery-contextMenu  (public domain)
  jQuery Autosize v1.17.1
    https://github.com/jackmoore/autosize  (MIT license)