b7adfd4846
On my tuxedo laptop with a hosted guix on an Ubuntu derivative the configure script found the host guile version which lead to loading incompatible bytecode of the guix provided libraries. Updated the README.
63 lines
1.9 KiB
Markdown
63 lines
1.9 KiB
Markdown
# 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.
|
|
|
|
Note: On hosted guix the configure script might find the host guile version
|
|
instead of the guix provided one. This can lead to incompatible bytecode errors.
|
|
To force to use a consistent guile use
|
|
|
|
```
|
|
./configure GUILE=$(which guile)
|
|
```
|
|
|
|
to ensure the right version is configured.
|
|
|
|
## 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.
|