A downloadable game

What is this?

This is a port of Boomshine, a game I've encountered via the Rockbox project. For additional nerd cred, I did not only build it in Emacs Lisp, but used XCB for rendering and event handling via the XELB package. I've recently held a talk about the insights and gory details of doing low-level graphics programming the needlessly hard way. As a consequence, there is still an unintended graphical glitch present in the game. Nevertheless, I hope that this game inspires other people to build more serious games with Emacs Lisp.

How do I play this?

The keyboard controls are the space key (for switching screens or triggering a chain reaction) and q/escape (for quitting the game). In each level there's an amount of balls bouncing around. The goal is to trigger a chain reaction touching a sufficient amount of balls to pass the level. For this the space key is pressed and all balls under the cross hair will be triggered, with additional balls hitting them in a small time window continuing the chain reaction. It is a lot easier to play than it sounds like, so please give it a try!

Licensing information

The game itself is licensed under GPL 3.0+ and so is the XELB dependency. GNU Unifont has been embedded into an adjacent file, it's licensed under GPL 2.0+ with a font exception clause.

Some algorithms (collision detection, rasterization) have been lifted from Gist/Stackoverflow and marked accordingly.

Source code is available now at https://depp.brause.cc/xcb-boomshine/.

Download

Download
xcb-boomshine-0.0.1.tar.gz 1 MB

Install instructions

  • The game has been developed against Emacs 28.2 and tested on Arch Linux.
  • Rendering uses X11, so a working X server is required. Theoretically it can be made to run on MacOS (via XQuartz) and Windows (via XMing). To speak the X11 protocol, the XELB Emacs package is required. The tarball does contain a vendored copy which has been byte-compiled with Emacs 28.2.
  • To launch the game on Linux, unpack the tarball and run the provided launch.sh script. Alternatively, install the XELB package from GNU ELPA, add both unifonts-glyph.el/xcb-boomshine.el to your load-path and execute the xcb-boomshine-new-game function (which is what the script basically does for you).

Leave a comment

Log in with itch.io to leave a comment.