Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Imaginary is a system for building fictional, interactive worlds via parallel, intersecting simulations.
Python Other
branch: master

Merge pull request #34 from glyph/containment-is-broken

Correctly compute the set of contained items to display to the player in all contexts based on the Idea graph rather than just the containment system database structure
latest commit 75f3d75a66
@glyph glyph authored
Failed to load latest commit information.
axiom/plugins merge code-versions-1946.
doc Finishing touches.
imaginary describe contributeDescriptionFrom much more thoroughly
xmantissa/plugins Merge imaginary-integration-897-2
.gitattributes Generate the versioneer artifacts with ` versioneer` - necess…
.travis.yml Remove some things that should be in different branches.
COMPATIBILITY.txt Another merge forward, resolving a few conflicts
DEPS.txt We have moved on a little bit.
LICENSE Merge move-pottery-to-trunk Generate the versioneer artifacts with ` versioneer` - necess…
MULTIPLAYER.rst Finishing touches.
NEWS.txt Merge release-20091125
README.rst Pip needs to know this is a path, not a distribution. Remove some things that should be in different branches. not in this branch


Imaginary is an experimental simulation-construction toolkit.

Be warned! We aren't kidding when we say "experimental". Many features are not implemented yet and documentation is incomplete. We think there are some pretty cool ideas here, but if you are intending to use this system, be prepared to participate heavily in its development.

Imaginary can be used to build both single-player interactive fiction, text adventures for small groups of friends, or large multiplayer games.

To get it installed, you will need to install some dependencies. Due to a series of unfortunate events, you need to run pip manually a couple of times, rather than simply installing the package directly. (We're working on fixing this.)

$ pip install twisted
$ pip install epsilon

At this point, you may just do:

~/Projects/Imaginary$ pip install . ./ExampleGame

... but if you want to develop Imaginary itself (and you probably do, because as we explained above, it's still in a very early state), you can set up an editable install with:

~/Projects/Imaginary$ pip install -e . -e ExampleGame

To get started, first you'll need a world file. There's an example world in doc/examples/

To load that world, run

$ python -m imaginary doc/examples/

A "world" for a single-player game is simply a Python file with a function called world in it, that returns an instance of an ImaginaryWorld. The example contains several useful items, and until there is more thorough documentation you should be able to construct your own example by modifying it.

If you're interested in setting up a multi-player Imaginary server, see MULTIPLAYER.rst.

Something went wrong with that request. Please try again.