From c1d5240aecab77021c262b9ad1ac27df54b59017 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 24 May 2023 08:54:11 -0400 Subject: First commit! --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 README.md (limited to 'README.md') 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. -- cgit v1.2.3