assets | ||
game | ||
scripts | ||
.gitignore | ||
bloatrunner.tiled-project | ||
bloatrunner.tiled-session | ||
bootstrap.sh | ||
bundle.scm | ||
configure.ac | ||
guix.scm | ||
LICENSE | ||
Makefile.am | ||
pre-inst-env.in | ||
README.md |
Chickadee Game Template
This repository provides a template to use as a starting point for making a new game using Chickadee! 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 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 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.