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.
|