GGJ 16 Post-Jam Report: Mosaic

This was one of my least exciting Global Game Jams, probably because I talked it up at the top of the week and the RNG disapproves of this kind of behavior.

Cutting to the chase: I wasn’t part of a group this year, but I did make a small, meditative game called Mosaic, which will run in a web browser if you have the Unity plugin (requirements: modern Windows or OSX with a not-Chrome browser.)

Here’s the play-by-play.

Thursday evening

Stupid cold. I do not want a cold, your timing is terrible.

Friday morning

Am I well enough to attend GGJ?

Friday afternoon

Yes. Yes? Yes.

Friday evening

Hi everyone DON’T HUG ME you do not want this cold.

Also, hi site organizer, I don’t wanna join a team because I feel terrible, but I still want to maybe make something, is that okay? Okay, phew, THANK YOU for being so understanding.

Saturday morning

I have an idea for a tiny game where you light candles in order. It would look great in 3D, so I’m gonna learn Blender!

Saturday afternoon, many tutorials later

I have not learned Blender.

I’m gonna make art with Hexel instead!

Saturday evening

Gotta get the code underway. Art can wait.

Saturday night

Sunday morning

Code is done!

I have no energy to make art in Hexel.

I’m gonna use images from Wikipedia instead!

Wow, that really worked. Why didn’t I think of that originally?

Sunday afternoon

“I made this.”

And people clapped. Hooray!


The scope of this game was right. There was never any doubt that I could complete the code, even while ill. I’m pleased about that.

The art slowdown did cost me, though. This game has no instructions, splash screen, or ambient audio, which is directly related to the art slowdown and a code problem detailed later. I regret not prioritizing those higher.

The most effective part of the game is the reward at the end – finally seeing the stained glass image in full brilliance, with nothing obscuring it. The ripple of music that plays is very effective as well, especially because [spoiler]you haven’t gotten to hear the proper scale until that point, even though you’ve been concentrating on it – so there’s a natural “resolution” from hearing it played.[/spoiler].

But from a design perspective, that’s a problem. I wanted this game to be meditative, and it really isn’t – either you’re taking notes to figure out how to light the candles, or you’re clicking rapidly among the gongs to find your next candle.

My initial idea for making the game more meditative: add animations and slow everything down. Lighting a candle should delay while it flickers into life, ringing a gong should force you to hold there for a second or so while it swings and the note plays, candles going out should include a hiss and a wisp of rising smoke. But in execution, this might be frustrating rather than meditative. Would have to test with players.

On a side note, I’m torn on whether the solution should be a spoiler or just part of the normal instructions. I conceived of it as a puzzle game in addition to being a ritual, but is the puzzle aspect actually appropriate?

Apart from the art style swaps, my major slowdown came from a “shortcut” that wasn’t. I had this idea that I wanted to pull in a bunch of different stained-glass backdrops without resizing the graphics, so I generated, scaled and positioned all the sprites with code instead of just editing the graphics to the sizes and positions that I wanted, thereby introducing about a thousand bugs that had to be hammered back out (and didn’t all completely vanish). It would have been vastly more efficient to resize everything by hand.

On the up side, because everything’s scaled and arranged in the code, the existing system can support more than eight tones. Which is kind of neat.

play screenshot

Bookmark the permalink.


  1. RNG is a cruel god indeed :( Feel better soon! Perhaps the ritual that players all over the world are enacting by playing this game is a prayer for well-being :)

  2. Sorry you didn’t get to be part of a group. Feel better soon!

Leave a Reply

Your email address will not be published. Required fields are marked *