8sync based live hackable MUD

Christine Lemmer-Webber cec78683f6 You can now kiss the frog! 2 gadi atpakaļ
build-aux c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
data c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
mudsync c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
worlds cec78683f6 You can now kiss the frog! 2 gadi atpakaļ
.gitignore f45624ba34 Add infrastructure for static files, etc 7 gadi atpakaļ
COPYING 5d54195e24 Add GPL 8 gadi atpakaļ
Makefile.am c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
README.org 4f6d8aab55 how to connect to the guile socket version 2 gadi atpakaļ
bootstrap.sh 7b28863815 Basic automake build stuff 8 gadi atpakaļ
configure.ac 88dfeff789 Update configure.ac and guix.scm 2 gadi atpakaļ
guix.scm c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
mudsync.scm c2a2f4b942 Un-deadname myself 2 gadi atpakaļ
pre-inst-env.in c2a2f4b942 Un-deadname myself 2 gadi atpakaļ

README.org

Mudsync

Mudsync! What a game. Or is it?

Well it's not really a game, more of a MUD framework. It does contain a couple of small demo worlds. The more interesting of them is the "bricabrac" world. I assume you want to play with it, but I guess we're getting ahead of ourselves.

Installing Mudsync

First of all, you need 8sync (currently 0.4.2, or git master) and Guile 2.2. Install those.

... Or, if you have Guix, you can set up a "guix environment" which should have everything you need all set to go:

guix environment -l guix.scm # optionally add --pure

Next, in mudsync's directory:

source pre-inst-env guile -l worlds/bricabrac.scm -e run-game

You can then connect in your browser:

http://localhost:8888

Playing

Well, try some things! Assuming you're starting with the bricabrac world, try "ring the bell", and that should give you some information to get started.

Hacking

When you start up the bricabrac demo, it'll by default start up a socket you can connect to with emacs + geiser like:

M-x geiser-connect-local 
  guile 
  /tmp/8sync-socket 

Then you can live hack away!

If you change something in bricabrac (or whatever) and want to update the object you changed, you can "live" put in the new and updated version from the game-spec at the REPL with:

(inject-gameobj! (game-spec) 'room:lobby) ; to replace the lobby, but of course ; do what's appropriate for your ; object

That's it for now!