A Mini Post-Mortem for a Mini Digger


(originally posted on my Ludum Dare blog)

I was considering writing some post-LD thoughts up earlier, but now that ratings are up, I should probably get it done now. So, without further ado:

Overall: 118 (3.714 average in 23 ratings)
Fun: 157 (3.476 average in 23 ratings)
Innovation: 230 (3.238 average in 23 ratings)
Theme: 134 (3.762 average in 23 ratings)
Graphics: 108 (3.905 average in 23 ratings)
Audio: 76 (3.65 average in 22 ratings)
Humor: 272 (2.5 average in 16 ratings)
Mood: 247 (3.167 average in 20 ratings)

Here’s the game, but I’ll try to explain things so you don’t have to play it.

What Went Right

I was really lucky to find a good idea for a game fairly quickly, and I could start building right away. Previous jam projects have either had me floundering for something solid, requiring time for brainstorming, or salvaging an old game idea. I think I was inspired by one of the losing themes, “Island,” and wanted to make something like Captain Toad: Treasure Tracker. I’ve never actually played it, but I know the core concept is just moving your character from point A to point B in a small, self-contained level, and that’s what I lifted. Instead of per-level puzzle elements, though, I decided to set it on a grid and add a Minecraft-like gimmick of destructible terrain.

For some reason, I also knew I wanted to focus on polish early. One of the first things I did was make character movement feel good. After all, that’s the primary means of interaction. Once I had level loading in place, I also spent some time to add an interesting transition animation. Normally I wouldn’t think that polish is really something to worry about in a prototype (and, actually, it shows - the level transition animations still have a few janky frames), but for a competition judged by internet strangers, I think it paid off.

This game jam turned out to be a test of my level design skills. Or rather, lack of them. Despite not having enough time nor any interesting gameplay mechanics, I spent lots of time making tutorial levels that I tried to make teach you how to play, without telling you how to play. And apparently that worked; very few players had trouble grasping the basic mechanics. I’m also really proud how few words are actually used in the whole thing since I used symbolic control descriptions. Maybe someone who doesn’t know English could play it.

Graphics. Having control restricted to a grid doesn’t actually do much for the gameplay, it just made it easier to program and to control. But it does easily lend itself to a block-y art style, which is great because I’m a programmer who can’t do sophisticated art. I like the blue color that I eventually settled on for the ocean. I’m not really sure where I was going with the main character, but at least it’s vaguely humanoid. I think I was inspired by Hot Tin Roof: The Cat That Wore a Fedora that also has a monolithic main character. When developing the movement mechanics (especially turning), I realized I was having a really hard time telling which way was front. I didn’t want to add a face or other detail, because everything else in the game is untextured. So, that’s where the backpack came in! It lets you intuit your direction, and fits in with the adventuring archeologist narrative that started to develop.

Audio, apparently‽ The score isn’t as high as the other categories but it ranked well somehow. I was definitely happy how well just putting an envelope over some pink noise worked for an ocean wave swell. The jump and dig sounds were made in bfxr. The level complete jingle is just a sine wave with a soft envelope climbing up fifths and octaves. I put less effort into the main menu music than the music in any of my other jam games. In fact I even disabled it for the main gameplay, since I thought it might be too distracting. That plus the fact that the melody doesn’t start for two bars leaves me wondering if people who rated it actually listened to the whole 30 seconds. I wanted a “tropical” feeling of course, but I couldn’t decide between bongos and shaker for the percussion–so I used both! And saxophone, for the lead, apparently? It doesn’t make much sense but it sounded good. No bass or accompaniment because I didn’t want it to be too complicated for a “small” game. The main theme used the SGM soundfont, and both it and the level-complete jingle were made in LMMS (yuck).

What Went Wrong

The theme. Somehow I kept confusing the theme with the older one, “tiny worlds,” and one of the losing themes, “island.” Really the only thing keeping the game in theme is the title and narrative that I threw on top–there’s nothing inherent that makes the world small, other than I guess the number of blocks on the islands. No part of the gameplay other than the self-contained level design really ties into the theme either. Finally, what I created was multiple small worlds, when the jam theme was singular. Regardless of all this it (somehow) didn’t score too poorly in the Theme category.

Multi-platform testing. I developed the whole thing in Windows, and since I knew moving diagonally would be confusing on digital keyboard cursor keys, I intended it to be played with a gamepad with joysticks. So, because of that, the mouse camera control is way too sensitive, and I definitely got docked for that. I could have even added a sensitivity slider to the main menu to give it some purpose. And because I used Unity, I was able to publish a web version along with the Windows build, and builds for Mac and Linux. I didn’t have time to boot into those systems to try them out, though, and I suspect they don’t actually work at all because Windows doesn’t have an executable bit flag and Unity exported them directly to the filesystem instead of an archive or something. And while the HTML export worked well (way better than the junk Unreal gave me last time), it didn’t support my joystick (at least in Firefox). Because I used the default Unity keybindings, one of the controls is ALT, which actually takes away focus in the browser. That’s annoying.

Is it really even a puzzle game? I thought I had come up with a good game idea that could lead to some interesting levels. I even had a feeling some cool emergent design could come out of the tree blocks, which have the unique ability of not being able to climbed on top of (and they’re unbreakable). Unfortunately, I also didn’t want to have any failure states, and that meant to enemies or hurtful obstacles, and no undo’s or resets. And that means every puzzle has to be designed to be impossible to lose, which in turn means a level has to be playable with all of the blocks missing, which finally means there isn’t actually a puzzle mechanic if you just remove all of the blocks. Opportunities to improve here would be to either include a non-destructive action, or going ahead and allowing undo’s, resets, or hazards.

No reset. Related to that, I never tested thoroughly to make sure the levels have to stuck spots. An early tester got stuck on one level, which is when I had the realization above. I fixed some levels to make sure they were playable with all of the blocks removed, and also added a reset button just in case, but this was all after the deadline. I probably should have kept the earlier version but I had already deleted the old builds (though I could have still gone back in version control).

Invisible mechanics. There are two ways of digging: below the character, and in front of the character. The problem with that is, which way your character is facing is not nearly as obvious an indicator as which grid cell your character is standing on. You can turn your character, but only if they can’t move in the direction you tell them to go. It isn’t obvious you need to do that, or how to do that. On the other hand, I thought it was going to be a real puzzle element, where in some places you wouldn’t be able to face the right direction. That falls apart because if you can’t face a direction you can go that direction and dig below you. Since it’s not a puzzle element it works out alright, but if I were to make that a problem it would need some more thought.

What is and isn’t tutorial-ized. This I think is something small that could have been fixed with some playtesting. I had one or two levels to teach the player that they can fall down multiple blocks without trouble (that is, no fall damage), but there’s no need to introduce the lack of a mechanic, especially since there are no ways to get hurt at all. On the other side of things I forgot to tell the player which blocks can be dug and which can’t (stone, trees, and layer-1 blocks can’t; sand, dirt, and grass can). I guess I was relying on some Minecraft knowledge, but even that game lets you break stone and trees with ease. Really, the distinction is arbitrary, there’s no difference between the dig-able blocks, and color-coding that way is not an accessible-friendly design choice, anyway.

Optimization. Okay, so it’s really not a priority in a game jam, and I got away with it pretty easily, but I still felt pretty gross making a GameObject (with pointless collider) for every single block, and destroying and re-creating the whole level any time a single block changed.

Levels. There really aren’t many of them, even though I left myself plenty of time to make them. Probably related to the poor puzzle mechanics. One player also pointed out that they expected the final level to be a final accumulation of all of the mechanics taught so far, but it was just a big dig search (just like real archeology, I guess). The levels with lots of digging and one shaped like an inverted cone also hurt from the limited camera movement.

Graphics. I think the graphics turned out okay, but I could have done better with the color scheme. I wanted a carefree cartoon look (I think, plus the turn-based grid mechanics, inspired by Snakebird‘s Island levels), but some of the colors are very desaturated. The whole thing is very chaotic, palette-wise. Also the trees look like something you’d find in a cold forest, not on an island. I could have gone with palm trees, but they’re not as block-y. I think just upping the saturation again would have helped. Finally for the title screen I just chose some tropical-looking font (“Hanalei”) and put the title in objective-gold color on top of some representative vignette. The title that I ended up with doesn’t really look good with that font though, and as I already mentioned, the main menu doesn’t really serve any purpose.

Playing games and feedback. I think I only got enough ratings to qualify because I got a spot high up in the “danger” sorting. I would have liked to have played and rated more games but a combination of the late voting window and me getting sick in the middle of it prevented that.

Level building. I thought the easiest way to make levels would be to have a simple text file format, with a grid made of characters and separated by paragraph breaks for vertical layers. Unfortunately, not only is that format very hard to parse, but it actually turned out very unintuitive to build with, and some levels took multiple iterations just to get the blocks to go where I expected them to be. I’m not sure what a better solution would have been.

Streaming. For this jam, I live-streamed the first day, but not the second, and didn’t make a timelapse like I have before. Streaming makes me way nervous but it keeps me on task. I feel like there is a balance that I haven’t found yet.

Learning experience. I really wanted to use this opportunity to learn Phaser, but alas the idea I came up with was 3D, and there was no time to find anything else, so I went with what I knew.

Conclusion

WOW I was not expecting to write that much, heh. Maybe I’ll come back to this game someday if I can come up with more refined puzzle mechanics, but I think some other ideas probably have more value. I hope some people enjoyed playing it. Special thanks to modernmodron for suggesting the title and for getting stuck while playing it. (fun fact about the title: it was originally spelled “mini-ana jones”, but change the spelling to MiniAnna, and ta-da, the main character is female now.) (oh, and the original project name was MiniDigger, hence the post title).

Get MiniAnna Jones!

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.