I’m still recovering from the stretch (plus two work days), but I felt the need to start writing the postmortem.

Play it here!


When the theme came out I was ambivalent. On the one hand, it was very similar to You are the Villain from LD25, if I’m correct. On the other, that was a very cool concept. This meant that most of the game ideas that were suitable back then would fit in here as well, with some interesting additional connotations due to the change from “villain” to “monster”. I decided to go with an ambitious idea that would tie game mechanics AND the game’s narrative AND the jam theme. Now that the jam’s finished, I consider it a failed attempt, but still I’m happy with the lessons learned for future games or a hypothetical post-jam version (I would really like to try to make this work, but from past experiences I’m afraid that it’s not likely to happen. Procrastination is strong in this one, and I have recently started coding a small roguelike during my free time). To avoid spoilers, I’ll split the post mortem in two halves. Skip the second half until after giving the game one try or two, please.



What went right

  • The idea was pretty solid from the start, driving the whole development process forward.
  • Faster, better art than in previous entries. I’m not experienced at all at pixel art, and the last times I tried it it took me a lot of time. This time I changed the approach and went for a more natural drawing style. I’m way more comfortable with it, so I’m way faster and I even think that it turns out better, but I’m not one to judge.
  • Basic gameplay slowwwwly getting better with new entries. Still not good enough, though.
  • Familiarity with the engine (Unity) and tools.
  • Interestingly, the music. Several people have praised it, which I found surprising because I made it in the very last few minutes before the submission period started. I did try to make something that fit the mood, but it’s a very simple repeating pattern with some small variations to give it a sense of progression. Still, I’m very glad that people like it. Thank you!
  • Take advantage of disadvantages. Just an example: due to the way enemies flock together (not a bug per se, but not correct either) I decided to enable the “piercing” switch on weapons. That gave the player the ability to target multiple enemies at once, which feels a lot more rewarding (and useful). Sometimes, specially on such tight schedules, it’s best to come up with different approaches to a problem instead of trying to make the proper fix. Of course, this doesn’t apply in all situations.

What went wrong

  • An alternative title to this post-mortem might very well be: “The excess of ambition produces incomplete games”.
  • Shitty, incomplete AI behaviours. It didn’t help that I approached the implementation of character behaviour by replicating a lot of code, which eventually began to cause problems and I decided to refactor that as soon as I woke up on Sunday. That refactor made me lose 5h of Sunday morning that I should have used to create and fix existing behaviours for AI-controlled characters (so some NPCs could run away from enemies, others might turn hostile, etc). I also wanted to define different “personality” types so that not all enemies or NPCs reacted in the same ways to events, but…no time.
  • No time for one of the core game mechanics. I wanted to add an “irrationality” mechanic that would have been key to my attempt of blending story and gameplay, but it had to be left out.
  • No time for decent level design. I ended up with some props put hastily with no proper sense of space or plot progression.
  • No time for animations or visual feedback.
  • Insufficient sound effects.
  • Tell, don’t show…or was it the other way around? See the narrative postmortem below.
  • No proper testing on release builds: because of this I ended up releasing the web version with a bug on spawn times, making enemy creatures appear a lot later than they should. I have to take a look at this, but I’m still too tired for that.

Lessons learned

  • For the next LD, develop a basic but solid player control + 2D movement/steering behaviours + game entities framework or GTFO. I’ve been reinventing the wheel for several entries now regarding these core features, writing them from scratch instead of reusing and improving on past knowledge. Even if I didn’t use it this time, the same applies to tile maps.

    Not tackling this has been proving a stupid mistake jam after jam. The refactor problem and shitty controls/collisions that I mentioned before are direct consequences of it, and so are all the “no time for XXX” rants. By now I should already have that functionality engraved in stone and keep a code base that takes care of all this across every similar game (even across languages, most of the ideas behind the way I tackle characters in C# for Unity can easily carry through Haxe + Flixel, C++ or even Python), it absolutely makes no sense to keep doing the same from the start (yes, I hardly ever look at old code (facepalm)). Even if I feel that I’m improving over time on those features, improving the code that I’ve already done instead of starting from scratch all over again every single time would be infinitely more productive and would yield better results to the core of a game, its gameplay. With only 48h I can’t afford the luxury of wasting up to a whole day doing something that I’ve already done lots of times in a similar way.
  • Use sounds as debugging aids. Also, start giving sound (and music!) a bit more love.
  • Keep improving at the art process.
  • Need to test more on final builds.

And now on to the story woes.






The game borrows the title from an etching from the renowned painter Francisco de Goya, and I didn’t just choose it out of a coincidence, or because it sounded haunting (which it does, I love it!). Goya was a strong Enlightenment advocate in contrast with the absolutist, old-fashioned rulers and the majority of the population of Spain by the end of the 18th century, and the picture is a satire on the superstition and irrationality rampant at the time (we haven’t advanced much in that regard, sadly). I took it as a reference because it was a perfect match for my original idea: I wanted to depict how prejudice, fear, irrationality or peer pressure can make monsters out of ourselves.

The etching in question. “El sueño de la razón produce monstruos”

With this in mind, I wanted to make a game where through your actions you could end up becoming a monster (metaphorically speaking), but I didn’t want it to feel preachy or just give it all away from the start. I’m a huge fan of games like Papers, Please (btw, I recommend Lucas Pope’s submission for this very compo, Unsolicited ), Little Inferno, Darkest Dungeons or The Swapper, all of which manage to blend gameplay and narrative amazingly, and I wanted to do exactly this. Also, I wanted to offer the player a choice. However, I’m afraid that the idea was too ambitious to fit in 48 hours doing everything by myself (even if I didn’t need to improve in the development process, which I definitely do), and I had to make some dubious decisions to at least wrap things up a little bit.

For example, the intro text is a poor workaround to set the mood and immerse the players into the story. I tried hard to follow the classic “show, don’t tell” rule from writing lessons but that should have really been a part of the gameplay. As you may be guessing, I lacked the time to create some in-game dialogue display functionality (or a full fledged dialogue system for added choice and consequence, of course :D) or some basic cutscene-like sequencing, so we jump straight from a wall of text to a somewhat empty game world. To make things worse, the web version has a bug that adds some insane delay on the first creatures spawns, putting some more distance between the intro and your first seconds in the world that shatters the atmosphere built by the intro. However, this also ends up supporting the core idea in a retorted, accidental way: most of my friends who’ve played the game just start and see a couple of clumsy Corgi NPCs with no other creatures in sight, and immediately start shooting.

Another very important problem was the lack of incentives for non-violent gameplay on the submitted version. Having a richer world, with more and more varied types of computer-controlled characters or items to help unfold the plot and acquire knowledge about the creatures would have been awesome. Also, this would impact the mechanic that I mentioned before that I wasn’t able to add: an “irrationality” measure, a bit similar to the stress system in Darkest Dungeons. The point of it was that your own perception and feeling of control would be altered depending on your actions.  For example: seeing or engaging in violent acts or feeling threatened, or conversely helping someone or discovering more things about the game world, etc. Also, reaching critical thresholds in a variety of stats might probably trigger some no return points leading to game-changing situations (such as pissing enemies off enough to turn them indefinitely hostile from that moment on). I do have a limited set of them, but they’re very simplistic.

Having explicit counters visible in the HUD was also a last-minute hack. A better approach to the countdown (because I wanted to have a limited play time) would add a night-day cycle (or other kind of time frame), for instance, that made creatures flee at dawn, and instead of the deaths counters something more appropriate would have been to see changes on the world entities behaviour reacting to, for example, a massive killing spree hitting a no-return point that made enemies remain hostile indefinitely. Factoring all the possibilities and possibly emergent behaviour changs would have probably been a nightmare to properly test, though.

Last, there are the ending slides (I think there are 5 of them, depending on your behaviour or if you die before the countdown expires, but it’s only text). They’re way shorter than the intro, but again…they should belong in a muse…I mean, in the game world.

And this is it. Thanks a lot if you’ve read this far 😀

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]