Skip to content

Chiaroscuro

Another Games Done Quick marathon means another game jam I participate in, and I made a real video game this time! It’s slightly cryptic and experimental and might look like a puzzle game, but the levels are randomly generated and personally it feels better to me to think of it as a strategic game about incomplete information. It might be tuned a bit too difficult, but I wanted to incentivize certain kinds of behavior with a lower-than-comfortable amount of resources. I assure you that it is in fact usually possible to win the game without having to do more than a tiny bit of memorization at any one time!

https://chz.itch.io/chiaroscuro


The genesis (this will turn out to be a pun next sentence) of this was a game I started in 2013(!) and never finished called The Painters. It was supposed to be a narrative game where you reenact an original, color-based creation myth: the world starts gray and formless, and colors are added one at a time, bringing some natural element to the world and also a puzzle mechanic. I never got very far in the project because I couldn’t come ever come up with a set of mechanics that I thought jelled together well.

At some point around when I stopped working on that, I had the idea that the general gray-vs.-colors idea could work as a randomly generated explorey game, which I programmed as Canvas. Canvas plays broadly the same as Chiaroscuro, with the main difference being that instead of a meter, there are three different colored containers and each color has an inherent range. I more or less finished Canvas, which I still have the code for, but I never released it because I felt it had insurmountable clarity issues. Not just for colorblind folks, for whom I’m sure the game would’ve been a disaster, but for anyone I found it pretty difficult to pick a set of colors for the background and player such that you’d always be visible no matter which color you were and where you were standing, while only having a 5×5 sprite to work with.

screenshot of a nearly completed level 2 of Canvas; the picture is mostly random splotches of color, mainly yellow with some red and blue and their combinations

I thought a grayscale version could possibly work better, so I made the original version of Chiaroscuro, which was basically the same game as the new version. I was unable to get the player visibility where I wanted it to while also balancing a decent amount of different gray shades, so I never released that one either. I never saved a copy of the original Chiaroscuro code, so at some point my PuzzleScript browser storage cleared and I lost it.

Finishing or remaking one of the two games has always been in the back of the mind as a potential project to do during a GDQ jam, and I finally did it this time! The main thing that changed this time was that I suddenly decided that not only was I okay with the player sometimes just being completely invisible, but that it would be cool actually to reinforce the horizon of the unknown and have areas essentially “so safe” that you disappear in them.

Rather than take my old Canvas code and repurpose it into Chiaroscuro 2: Electric Boogaloo, I rewrote the game from scratch. It’s a little bit more polished than Canvas was (and I assume the original Chiaroscuro was); I added a couple extra sound effects, animations, and [REDACTED], tweaked the tile probabilities to something that finally felt good for me specifically to play (but maybe not anyone else), and put in the final graphical hold after you beat the game which I never thought of before working on the game last week but seems completely 100% obvious in retrospect.

I don’t know if the game’s actually fun for anyone else, since mechanically it’s very simple and while there is some strategy it doesn’t really admit a whole lot, I think there’s kind of an exploratory zen feeling to it, like you might get from hopping into a randomly-generated cave in Minecraft and finding rooms designed with absolutely no intentionality or purpose but which must be navigated anyway.

Post a Comment

You must be logged in to post a comment.