Ludum Dare 48 Post-Mortem

Final scores for the Ludum Dare 48 game jam have finally been released, so I figure I ought to do a little post-mortem analysis of my game The Company Store.

Here are my scores, alongside last year's attempt (which you can play here):

Category LD48 LD46
Fun 3.243 (> 43.9%) 3.859 (> 89.5%)
Innovation 3.143 (> 46.1%) 3.750 (> 85.4%)
Theme 3.721 (> 59.8%) 4.031 (> 82.2%)
Graphics 3.600 (> 61.3%) 2.625 (> 6.08%)
Humor 2.946 (> 59%) 3.516 (> 75.4 %)
Mood 3.125 (> 37.5%) N/A
Overall 3.429 (> 47.7%) 3.500 (> 52.7%)

While my Overall score was pretty middle-of-the-road both years, I did a lot better last year in most categories than I did this year. In particular, I was in the top 15% for both Fun and Innovation last year (the two most appealing categories, in my opinion), but I was below average in both this year.

So, why wasn't my performance as good this time?

1. Going Into Debt Is Not Fun

According to data from the last 10 jams, the category score that correlates most strongly with a game's overall score is Fun:

Correlation of overall score with each category score (sorted from greatest to least). Fun: 0.889, Mood: 0.774, Graphics: 0.718, Innovation: 0.698, Audio: 0.686, Theme: 0.554, Humor: 0.445

Unfortunately, my game is not particularly fun. I think this is largely because there's no real sense of progress or accomplishment; no matter what you do, you get deeper in debt. This was deliberate, since the theme of the jam was "Deeper and Deeper" and the game was inspired by the lyric "another day older and deeper in debt." The goal is supposed to be to survive as long as possible, arcade-style. But even "survive as long as possible" games should have some sort of short-term rewards and signposting so that you can judge how well you're doing, and I don't have any of that.

In retrospect, I probably should have prioritized fun over adherence to the theme. It should be easier to earn money at first, with the difficulty increasing over time, and there should be some sort of end goal or long-term progression. I also like the idea of adding interactive fiction elements between the match 3 sessions, although that would probably take a lot more time than I can justify spending on this.

2. The Player Isn't Really In Control

The main feature that distinguishes my game from a lot of other match 3 games is the fact that you're supposed to avoid matching certain blocks. This was supposed to make the game more strategic, since the player is actually thinking about the consequences of their actions instead of just clicking on whatever matches they happen to see.

Unfortunately, the fact that cleared blocks are replaced at random creates two major problems: you can't plan very far ahead, and over time most of the good and neutral blocks will be removed, leaving a board with only bad moves available. This means that in the end the outcome is very random and not dependant on player agency.

Some amount of randomness is inherent to the genre, but I think player agency could be increased through some creative powerups; in particular, there should probably be a powerup that "reverses" the board (changing bad blocks into good ones and vice-versa), since that would also help to address the problem of the board filling up with only bad options.

3. Fugit Inreparabile Tempus

My entry for LD46 was made over 72 hours (since I entered the "Jam"), while this year I only had 48 hours (per the rules of the "Compo"). When the time ran out, there were a number of things left to do that could have substantially improved player experience - in particular, the game needs better better feedback about what's happening and why certain moves are not allowed. I was hoping to address this through a combination of sound effects1 and visual effects2, changes that I plan to make in the future when I have time to polish the game a bit.

Where I Improved

Although my scores this year aren't as good as last year, there are definitely a lot of areas where I improved qualitatively.

The one category in which I beat last year's score was Graphics. Last year I was in the bottom 7% graphics-wise, which is understandable because my game looked like this:

A screenshot of my game from LD46.  The art style of the player character and purple puffball sprite does not match that of the background and tileset at all,and neither art style is any good.

While this year's game was not very art-heavy, I did try a lot harder on the graphics and it paid off with a solidly above-average score. I also put some real thought into my colour palette, and a couple commenters specifically complimented me on the palette, so I was pretty happy about that.

This year I was also "more professional" in some sense. I used real game dev tools, specifically Aseprite for graphics and Godot as the engine. In contrast, last year I attempted to make an animated sprite sheet in Gimp, and designed the level using a conditionally-formatted spreadsheet in LibreOffice Calc:

A screenshot of my level design spreadsheet with conditional formatting.

This year I also managed to make a cover image, a main menu, in-game instructions, and a page on a proper game distribution platform, with a donation link and everything (just in time for itch.io to be in the news due to distributing "games that are so offensive we cannot speak about them in federal court."). I think that's pretty neat.

Finally, it's worth pointing out that I was able to make a reasonably complete game in 48 hours, unlike last year (when I was softly aiming for the 48-hr category, but wasn't ready in time). This is a non-trivial achievement.

Ultimately, while my scores this year weren't as good as last year, I think I learned a lot and I'm looking forward to my next game jam opportunity.


  1. i.e. "good" sounds when breaking coal blocks, "bad" sounds when breaking tools
  2. i.e. coloured particles when a block breaks, so you can see what type of block just broke, and some sort of "attempted to swap" animation when swapping two blocks that don't result in any matches