summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3f0e71c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,53 @@
+# Chickadee Game Template
+
+This repository provides a template to use as a starting point for
+making a new game using
+[Chickadee](https://dthompson.us/projects/chickadee.html)! It
+includes all the autotools boilerplate so you don't have to worry
+about that nonsense too much.
+
+## Using Guix
+
+We *highly recommend* using [Guix](https://guix.gnu.org/) to manage
+your development environment. Once Guix is installed, getting all of
+the dependencies you need to develop is *easy*. Just run `guix shell`
+from the root directory of this repository and you'll be good to go!
+
+## Building from source
+
+Assuming Guile and Chickadee are installed on your system, a fresh
+project can be built like so:
+
+```
+./boostrap.sh
+./configure
+make -j$(nproc)
+```
+
+After the build system is initialized, only `make` needs to be run to
+recompile the Scheme modules.
+
+## Running the game
+
+To run the game from the source checkout, use the `pre-inst-env` wrapper script:
+
+```
+./pre-inst-env run-game
+```
+
+## REPL-driven development
+
+After the game is launched, a Guile REPL server will be running on
+port 37146. We recommend using the
+[Geiser](https://geiser.nongnu.org/) Emacs extension for connecting to
+it using `M-x connect-to-guile`. Once Geiser connects to the REPL,
+the game can be modified while it runs!
+
+## Bundling
+
+If you are setup to produce redistributable bundles of Chickadee games
+(see
+https://dthompson.us/manuals/chickadee/Invoking-chickadee-bundle.html),
+then you can use `chickadee bundle` to produce binary release bundles.
+This is admittedly an area where things really do not "just work" as
+they should, so do reach out for help if you need it.