Stunt is a set of extensions to the LambdaMOO server and Improvise is an associated framework that uses those extensions.
Stunt+Improvise is well suited to building immersive, collaborative, Web-based applications—specifically, applications where every user is a programmer.
Together, Stunt+Improvise comprise:
Table of contents.
Mettle is a unit and behavioral testing framework.
The pluggable, flexible, extensible MOOcode parser/compiler framework.
Details on plastic syntax
Specify start scripts when starting the Stunt server.
Mettle is a unit and behavioral testing framework. These are its tests.
Mettle is a unit and behavioral testing framework.
The Dialog Extras package contains objects that extend Dialog: file server, db object server, upgrade protocol handler, and logger.
toddsundsted
toddsundsted
toddsundsted
If you can build the LambdaMOO server and run LambdaCore (or similar legacy database) you shouldn't have any problems compiling and running Stunt+Improvise. I have personally had success with both Linux and OSX.
Fork/clone the Stunt repository and the Improvise repository.
git clone git@github.com:toddsundsted/stunt.git git clone git@github.com:toddsundsted/improvise.git
Build the Stunt server:
cd stunt ./configure make cd ..
In order to connect to a brand-new database you need to define bootstrap passkeys for the two default players. The default players and the passkeys should only be used in a trusted development environment. The passkeys are set via environment variables. The Wizard player has full access to the database and server.
export Stunt_Passkey_Wizard=<passkey> export Stunt_Passkey_Programmer=<passkey>
Run the Stunt server on the Improvise database. The server will start listening for telnet connections on port 7777 and web (HTTP) connections on port 8888.
cd improvise ../stunt/moo Improvise.db Improvise.db.new
In your browser, connect to the running server (http://localhost:8888/) and enter the appropriate player's passkey credentials and press "Connect". You will drop into a web-based console from which you can explore the server.
If you like, you can also connect via telnet:
telnet localhost 7777
Note: Heroku support is proof-of-concept and is currently only suitable for trying out Stunt+Improvise without the hassle of building your own server—it is otherwise not ready for prime-time.
Specific caveats:
This brief tutorial assumes you have a credible working knowledge of both Git and Heroku.
Fork/clone the Improvise repository.
git clone git@github.com:toddsundsted/improvise.git cd improvise
Create a Heroku app and specify the Stunt buildpack:
heroku create <appname> --buildpack https://github.com/toddsundsted/heroku-buildpack-stunt
Add Heroku as a remote:
heroku git:remote -a <appname>
In order to connect to a brand-new database you need to define bootstrap passkeys for the two default players. The default players and the passkeys should only be used in a trusted development environment. In Heroku, the passkeys are set via config variables. The Wizard player has full access to the database and server.
heroku config:set Stunt_Passkey_Wizard=<passkey> heroku config:set Stunt_Passkey_Programmer=<passkey>
Commit changes to git and push to Heroku:
git push heroku master
Open in the browser:
heroku open
Enter the appropriate player's passkey credentials and press "Connect". You will drop into a web-based console from which you can explore the server.
The GitHub source:
The LambdaMOO Programmer's Manual:
Note: The current release of Stunt+Improvise is for hackers only—the new code is reasonably well covered by tests and I use it extensively in my own projects... but consider yourself warned.
I'm available via the MOO-talk Google Group. Post questions and comments there.
Todd Sundsted