Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

XCB BoomshineView game page

Try to trigger as big of a chain reaction as possible
Submitted by wasamasa — 36 minutes, 52 seconds before the deadline
Add to collection

Play game

XCB Boomshine's itch.io page

Results

CriteriaRankScore*Raw Score
Entertainment - how enjoyable/replayable is it?#172.7463.500
Creativity - how original is the idea?#232.5503.250
Presentation - how does it look/feel?#252.3533.000
Overall#252.5503.250

Ranked from 8 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Leave a comment

Log in with itch.io to leave a comment.

Comments

Submitted

Nice mechanic! I kept getting stuck at level 12.

I've used Unifont in a previous game, so it's nice to see it somewhere else.

Submitted

Quite addictive gameplay mechanic, I enjoyed it!

(Even though it looks like I have some kind of visual glitch on my machine:

Submitted(+1)

I didn’t expect much from this game, but it grew on me a lot! The levels do get more satisfying, and I was able to completecompleted level 11 (died on level 12 because I only got 57 balls vs the requirement of 58).

If you plan to continue this further, I have a couple of suggestions:

(a) allow me to restart the same level rather than having to replay all past levels if I make a mistake,

(b) animate the balls in some way to show how much time is left until each one shrinks,

(c) play a dramatic sound effect every time I catch a new ball, increasing in pitch/intensity as I get closer to the level’s goal

Thanks for the fun!

Developer (1 edit)

Thank you for your feedback! From the Rockbox games I've played, I found this one the most memorable. There is a strange kind of satisfaction from getting a chain reaction from a well-timed initial action. Regarding your points:

  • In the original version I've played, I think level 12 was the last one, allowing people to actually see the winning screen. I've considered to remove the extra-hard levels, but your suggestion of restarting the same levels may also work. Alternatively, a level select screen for those previously completed (this is a design I've seen in visual novels and it makes sense to me, although I've rarely made use of the feature).
  • A visualization of the remaining counter could be cool. I thought of adding some unobtrusive status text or pulse or whatever (it's a countdown of 3 seconds since the last reaction). Animating the balls themselves definitely requires more thought, I found it difficult enough to animate the ball movement/enlargening/shrinking.
  • Sounds would be cool, but doing this in elisp is tough. If it's just a single sound, it's doable with a mplayer/mpv subprocess and pipe, I've done that in chip8.el. The downside is the extra setup required from the player and it was difficult enough to ensure the game works for other people. Maybe better suited for a more general-purpose lisp? (I'm partial to CHICKEN)
Submitted

The levels got increasingly more satisfying!

Submitted

Those chain reactions became pretty wild in the end.

Submitted (1 edit)

It's a nice game! Easy in the beginning but super hard in the end.

Side note: with an older version of emacs (27.1 ) the vendored copy of xelb didn't work:

No applicable method: xcb:-+request, nil, #s(xcb:DestroyWindow t 4 1 nil)

After changing the path in launch.sh to the xelb installed from elpa the game worked, but I got a bug - images were somehow corrupted:



P.S. Also, it seems that xcb-boomshine.el file doesn't correspond to its compiled version. For example there is no xcb-boomshine-new-game function defined :/
Developer(+1)

I've resolved the glitch meanwhile on the Git repository, it turned out to be uninitialized memory. So feel free to pull a copy of xcb-boomshine.el from there: https://depp.brause.cc/xcb-boomshine


Kudos for persevering and making it work on Emacs 27.1, I'll work on a build script to make running the game a bit easier.

Developer(+1)

> P.S. Also, it seems that xcb-boomshine.el file doesn't correspond to its compiled version. For example there is no xcb-boomshine-new-game function defined

That may be a side-effect of using Emacs 27.1 as the file is using the shorthands feature introduced in Emacs 28.1. If the feature is not available, the identifier would be boom-new-game instead.

Submitted

Ah, I see :) I don't know a lot about emacs lisp...

Jam HostSubmitted

I modified launch-game to use /bin/sh instead of /bin/bash so it would launch, then got this error:

  error("[XELB] Connection failed: %s" "Authorization required, but no authorization proto...")
  xcb:-connection-setup-filter(#<process XELB> "\0@\13\0\0\0\20\0Authorization required, but no authorizati...")
  accept-process-output(#<process XELB> 1 nil 1)
  #f(compiled-function (obj) "Connect to X server." #<bytecode 0x1e662ff612a0c7c4>)(#<xcb:connection xcb:connection-b119ca>)
  apply(#f(compiled-function (obj) "Connect to X server." #<bytecode 0x1e662ff612a0c7c4>) #<xcb:connection xcb:connection-b119ca> nil)
  xcb:-connect(#<xcb:connection xcb:connection-b119ca>)
  xcb:connect-to-socket("/tmp/.X11-unix/X1")
  xcb:connect(":1")
  xcb-boomshine-x-setup()
  xcb-boomshine-new-game()
  funcall-interactively(xcb-boomshine-new-game)
  command-execute(xcb-boomshine-new-game)
  command-line-1(("-L" "./vendor/xelb-0.18" "-L" "." "-l" "xcb-boomshine" "-f" "xcb-boomshine-new-game"))
  command-line()
  normal-top-level()
I use Guix so I'm used to having to fiddle with pre-built stuff but I'm not sure what to do here.
Developer (1 edit)

XELB does not support authorization at all, therefore it raises this error when it's requested upon connection establishment. Some ideas:


  • Check the Exwm wiki/issue tracker, surely there's a GuixSD user who had this problem. For example https://github.com/ch11ng/exwm/issues/534 looks relevant
  • Run Xephyr without authentication and spawn the game using its DISPLAY
  • Configure X.org to not use auth and restart the session (possibly a very bad idea when it's on a a machine on the internet)
Jam HostSubmitted(+1)

Instead of debugging, I switched to an old Ubuntu laptop and it worked there. I had fun with this! I think I was just one ball shy from beating the 58/60 level! Very cool that it was written in elisp!

Submitted

This runs on Emacs! Amazing!