From 0e699be281c8dea53e589e08a5831837e0eae7ea Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 7 Oct 2021 20:17:50 -0400 Subject: Updates for Chickadee 0.8.0 and Guile-SDL2 0.7.0. --- manuals/chickadee/Invoking-chickadee-bundle.html | 219 +++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 manuals/chickadee/Invoking-chickadee-bundle.html (limited to 'manuals/chickadee/Invoking-chickadee-bundle.html') diff --git a/manuals/chickadee/Invoking-chickadee-bundle.html b/manuals/chickadee/Invoking-chickadee-bundle.html new file mode 100644 index 0000000..5c9e8f6 --- /dev/null +++ b/manuals/chickadee/Invoking-chickadee-bundle.html @@ -0,0 +1,219 @@ + + + + + + +Invoking chickadee bundle (The Chickadee Game Toolkit) + + + + + + + + + + + + + + + + + + + +
+

+Previous: , Up: Command Line Interface   [Contents][Index]

+
+
+

3.2 Invoking chickadee bundle

+ +

Distributing games is difficult. While Chickadee games are free +software, it would be far too burdensome on the player to ask them to +compile a game from source in order to try it out. Many potential +players will simply not even try. Players expect to be able to +download a compressed archive, extract it, and play. If there are any +more steps than that then the chances of the game being played drop +dramatically. If you can’t beat ’em, join ’em. The +chickadee bundle tool creates redistributable binary bundles +by combining the game code and assets with shared libraries and +executables from the host operating system. +

+

Bundling is currently only supported on Linux. In the future, it may +be possible to bundle on MacOS. Patches very much welcome for that. +

+

It should be noted that bundling is a problematic way to distribute +software. All of the libraries that the bundled application includes +are separated from the distribution that was so carefully making sure +that they stay up-to-date with regard to security patches. The +bundled libraries are frozen in time, vulnerabilities and all. +Unfortunately, the release model used by the most popular +distributions, while wonderful for stable, mature software, does not +fit the needs of game distribution at all. So, we compromise, knowing +that most games are only played for only a short amount of time before +being disposed. Perhaps, in time, the Linux world will shift to using +more robust package management solutions such as +GNU Guix which support long-term +maintenance of stable software as well as the “fire and forget” +nature of game releases. And maybe a game made with Chickadee will +become so popular that major distributions decide to package it, but +let’s get back to reality. +

+

To get started with bundling, simply add a bundle.scm file to +the root of the project directory. It could look something like this: +

+
+
'((asset-directories . ("images" "models"))
+  (bundle-name . "the-legend-of-emacs-1.0")
+  (code . "the-legend-of-emacs.scm")
+  (launcher-name . "the-legend-of-emacs"))
+
+ +

To create the bundle, simply run chickadee bundle. Upon +success, the file the-legend-of-emacs-1.0.tar.gz would be +created in the current directory. +

+

To maximize the chances that the bundle will work on someone else’s +computer, it’s best to build on the oldest supported Linux +distribution available. As of this writing, Ubuntu 18.04 LTS is a +good choice. +

+

In addition to including system libraries and executables, +chickadee bundle also includes the compiled Guile bytecode +(the .go files) for all modules used by the game. The module +source files are not included, so it’s critical that all of the +modules used by the game have been compiled. +

+

Available options: +

+ + +

Default configuration options, such as the list of C shared libaries, +can be found in the %default-config variable. This way they +can be programatically modified, if necessary. +

+
+
Variable: %default-config
+

An association list of default configuration options. +

+ +
+
+

+Previous: , Up: Command Line Interface   [Contents][Index]

+
+ + + + + -- cgit v1.2.3