summaryrefslogtreecommitdiff
path: root/README.org
blob: 19b4c968afc17adda095f5a0c33f8ec884dc3a65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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.