2024-05-17 23:49:31 +02:00
|
|
|
# Chickadee Game Template
|
2024-05-17 15:03:07 +02:00
|
|
|
|
2024-05-17 23:49:31 +02:00
|
|
|
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.
|