diff options
-rw-r--r-- | README.org | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/README.org b/README.org new file mode 100644 index 0000000..19b4c96 --- /dev/null +++ b/README.org @@ -0,0 +1,64 @@ +#+TITLE Community Garden + +* About + +Community Garden is a simple multiplayer gardening simulator designed +as a tech demo for Spritely Goblins. + +* Building + +Community Garden relies on some bleeding edge software and currently +requires Guix to setup the build environment. Assuming Guix is +installed, simply run =guix shell= within the directory containing +this README. + +To build, run: + +#+BEGIN_SRC sh + ./bootstrap + ./configure + make +#+END_SRC + +* Running + +Community Garden is split into two programs: =host-garden= and +=join-garden=. Networked multiplayer is achieved using the Tor +network. + +** Starting the Tor daemon + +Community Garden requires a locally running Tor daemon. See +https://docs.racket-lang.org/goblins/captp.html#%28part._.Launch_a_.Tor_daemon_for_.Goblins%29 +for instructions on setting that up. + +** Starting the host program + +The =host-garden= program creates a new garden that other people can +join. It takes a garden name and the host's name as arguments. + +#+BEGIN_SRC sh + ./pre-inst-env host-garden "Spritely Community Garden" "Alice Gardiner" +#+END_SRC + +Upon successful startup, you should see a graphical window with a +basic garden editing interface, and an OCapN URI in the terminal +output. This URI is what needs to be shared for those that wish to +join the garden. The terminal will also display an event log as +players join, edit, and leave. + +Please note that there is no persistence layer in this demo. When the +host program is closed, the garden's state is gone. + +** Joining a garden + +The =join-garden= program is used to join a garden created with +=host-garden=. It takes the remote gardener's name and an OCapN URI +as arguments. + +#+BEGIN_SRC sh + ./pre-inst-env join-garden "Lemmy Diggit" ocapn://s.onion.foo/bar +#+END_SRC + +Please note that Tor onion services can be very slow to start, so the +initial connection may take awhile. |