Missdemanor is an action puzzler where you are the villain, causing a lightning strike every 10 seconds you’ve been in motion, and you have to time it carefully in order to advance. You don’t need to play the game, but I encourage you to watch the 3-minute playthrough for context:
https://www.youtube.com/watch?v=fFGKeYnUi4k
Moving from no-engine to an engine for kids
I worked with my friends on LD48 and 50, and that led me to two brief stints with Unity, and they were disastrous–every last bit of Unity really sucks. Aside from that though, I used to attend each event with an empty .cpp file and SFML, for almost the purest hardcorest compo experience. Every time, a half of Saturday was spent on the basics.
The LD site getting web embeds was what finally swayed me towards Godot, because SFML doesn’t support emscripten officially, and writing a game in SDL from scratch during one weekend is too much even for me. I used to play with Godot before, but mostly Godot 4 alpha/beta, and I had to move back to Godot 3 for the event, because it turned out (last second) that Godot 4 can’t export web builds without issues, yet. Thankfully, the differences between 3 and 4 are relatively insignificant for 2D development, except for tile maps–which almost screwed me over.
I now understand why no one wants to reinvent the wheel every time. Godot is nice. It lets you make prototypes astonishingly quickly, and it’s got everyting built-in, and it has a web export, and it’s not Unity! I just wish they remade their in-house scripting language from scratch, pretending gdscript never existed (and you can’t realistically use other languages either because the bindings suck, even the “officially supported” C#).
The idea, or lack thereof
My thoughts tend to be turbulent whenever the theme gets announced, and among all the lame ideas I had this time, the lamest of them all, “every 10 seconds, lightning strikes”, suddenly did not seem so lame if the lightning would strike the object you were looking at–or, if you weren’t looking at anything at the time, it would strike you. Or perhaps it just sounded less lame than everything else. It seemed like it could go somewhere, so I decided to go with it and amend it if needed. Every other design choice was added organically. The timer only advances when you’re in motion because I figured that 90% of games would end up going with the “every 10 seconds, x happens” cliche. The “focus” key, which fast forwards the timer, and can only be used when you’re stationary, was only added to make torch-zapping less tedious, and it accidentally became the backbone of the game’s balance, and I think I would significantly nerf it in a potential post-compo. The camera is the way it is because a room-based camera forces... a room-based design, and I didn't want a centered camera.
In the end, I hated Every 10 seconds much less than I’d thought I would. My interpretation was above average, but also not the best. It wasn’t as ““smart”” as Keep it alive being about saving the IT industry from collapse, but that only scored me 3.8, and I’m definitely not salty about it to this day.
When a friend asked about my idea for LD51, I only said that it was going to be super hot, although Superhot was not a direct inspiration.
Level design and the perpetual struggle with difficulty
Missdemanor has 8 loosely defined rooms, including 3 encounters.
6 rooms, including 2 encounters, were made on Saturday:
https://www.youtube.com/watch?v=QkfdfgOMi5Q
This was very important to me, because back in the previous events I used to defer level design until late last day, and the results were often incomplete or subpar.
If you know what you’re doing, you can easily clear all of it in one take without dying. But that’s not enough for a good jam game, as I already learned back in LD46 with That Desert Game, and then forgot about it.
I spent a big chunk of Sunday playtesting the game and tweaking the AI (something I finally had the time for, because I hadn’t spent the first half of Saturday prepping up the engine), and the end result was more polished than anything I’d ever done at LD. I figured that if I could beat the game with no problem → the game was beatable → anyone could beat the game. This logic was deeply flawed, because, as it turned out, being beatable is not the only factor deciding whether people will actually be able to beat the game, because they won’t be able to beat the game if their left hands inadvertently tap alt+f4 first. This game, like That Desert Game, suffers from a light case of the Bennet Foddy syndrome, minus the potential loss of progress (unless you do press alt+f4), so it can only be enjoyed by god gamers and masochists, and I may happen to be both, and everyone else just finds it frustrating (even if no one wanted to admit it in the comment section). While the game isn’t hard once you figure it out, it has way too much “action” and too little “puzzle” for an action-puzzler. People rate games better if they can beat them. I should have added an easy mode.
After watching many Ludum Dare streams over the years I’ve come to a baseless conclusion that arcade-y, flash game-y “score attack” games tend to be enjoyed the most. The ones that have a single, often endless level, a transparent scoring system, and permadeath. Those games usually have a progressive difficulty curve, so every time you die, you have to repeat the easy portion of the game, which I personally disdain, but some other people probably like it, because not dying every 10 seconds makes them feel less stuck and hopeless than in a Missdemanor encounter. My first LD submission was just like that, and it was pretty decent (its menace was controls, not difficulty), but these days it’s not my type of game for various reasons. But there is another format, greater than flash-y games, and greater than linear games: hub-based games. After all, it’s a big part of the reason why Talos Principle is objectively and undisputably better than Portal 2. So one of my biggest regrets this LD is not having gone with a hub-based progression system that would let everyone play at their own pace, and go to a different level in case they were stuck.
As for the levels themselves, I think the encounters were pretty good. Each one has many solutions, some that work every time and with no APM involved, some less easy, and some that are technically possible, but very hard to pull off. The latter is a big drawback of the multiple-solution puzzle design, because players tend to stick to their incorrect solutions and curse the game for its difficulty instead of rethinking the puzzle, and this is intisified in Missdemanor by the (needlessly) tight timing window against hostile mobs. @bluishgreenpro made an interesting point about the game not telegraphing well enough when a solution is suboptimal/hard to execute, but I still think that it’s just something the player eventually figures out. It’s a bit of a problem for LD games because people generally don’t have patience for rough prototypes. The second encounter is a puzzle that you are supposed to figure out progressively, much like some complex levels in traditional puzzlers where your first solution seems correct, but right at the end it turns out you ran out of one resource, and have to redo everything, taking that resource into consideration.
The final encounter was a bit more rough because it was made on Sunday, but it was also the encounter where streamers just kept surprising me with new solutions. There was a suggestion, again by @bluishgreenpro, to add a checkpoint between the two mobs, but it would ruin an aspect of the puzzle. While there are many solutions, there are two general outcomes of the “combat” with the first mob: the player kills the mob while standing on the top platform, like in the canonical solution, or on the low ground. The latter doesn’t leave enough time to deal with the second mob canonically (by luring it into falling down), which forces a different, more difficult approach. If there was a checkpoint in-between, this aspect would be lost, unless I implemented checkpoints that saved the remaining time–but that wouldn’t be Every 10 seconds. In other words, more checkpoints is usually good, but you also have to be careful not to too many checkpoints.
Besides, once the player found their method of dealing with the first mob, they were usually able to pull it off almost every time–and the pattern that has to be repeated is only several seconds long, which is nothing compared to boss walks in Dark Souls (Missdemanor is *literally* the Dark Souls of LD games).
The problem with introducing the mechanics, without introducing the mechanics
While I love the encounters, the pacifist rooms could have used more work, and could have introduced the mechanics more efficiently.
You have to look at the target directly and in a straight line. Some figured it out immediately, and some weren’t even sure by the second encounter. Some were stuck in the first room for 10 minutes. I thought the outline would be enough, but clearly it wasn’t.
If you have to explain the mechanics with text, you have already failed. Most people can’t read. I know I can’t read. But if you don’t explain it with text, and some people don’t get it, you have also failed. A backup plan was to record explanation voice lines that would get triggered if you got stuck, but turns out recording voice lines with a shit mic and a voice changer was much tougher than I had expected.
There should have been another room that would involve deliberate rotation towards a candle. If I redid it today, I would also use a cone instead of a straight line for mob detection, which would simultaneously fix the tight timing windows.
Criticising other platformers for bad platforming, and then making a bad platformer
I used Godot but otherwise I didn’t use premade code, which means I implemented the platformer myself. I implemented deferred jumping, when you press space too early, but I kinda forgot about ~~the Iron Fleet~~ coyote jumping, when you press space too late. There’s not much else to say here; unless you’re making a precision platformer (in which case you’re already a lost cause), add coyote jumping, always.
Ear massacre, or how one mistake can ruin everything
This was the first LD (I’m still pretending LD50 never happened) where I truly made my own music without relying on excessively long samples (LD39), content generators (LD46, 48), brown noise (LD47) or recordings of the weather outside, stretched tenfold (LD37). I don’t hate the aforementioned techniques, but it turns out that spending two weeks learning how to make music is actually somewhat easier. Videos like Andrew Huang’s “Learn music theory in half an hour” can actually be really helpful.
Perhaps it wasn’t very noticable in Missdemanor outside of the “combat” loop, but the game had dynamic music, with layers being added as the game progressed. There wasn’t much opportunity to use it fully, but I think every game should have dynamic music. It’s only possible when you make your own music though.
The aforementioned “combat” loop involved layering a drum sample over the regular music. The regular music goes through a low pass filter that increases in intensity depending on the distance to the nearest aggressive mob, and at the same time the drum sample increases in volume. If no mob is active and in range, it deactivates. I was pleasantly surprised to learn that Godot’s built-in audio system supports many basic filters, including low pass. You can check out the “combat” loop in the walkthrough at 1:23 (the Ludum Dare website doesn't support timestamps).
I made the fire, rain, jump and lightning SFX in Vital from scratch during the event because stealing samples from freesound would have been against the rules in my book. It was a bit crazy, but the end result was much better than I expected. The fire sound sounds more like a campfire than a candle, but it does the job surprisingly well; I never would have expected it would sound like any kind of fire. The rain SFX went through several revisions, and the current indoors sound was originally supposed to be played outdoors. It felt too muted for outside so I amended it, and that was a mistake, because everyone’s ears were blown off by the final version of the rain SFX outside. Apparently it’s just me who isn’t bothered by it.
It’s disappointing I put so much work into it because I expect no more than 2.5 in audio due to the mixing issue that made some people play the game at such a quiet volume that they didn’t even notice the voice lines. A streamer thought I did it deliberately and added a volume slider for this exact reason, but no, I would have added it either way (like I did in LD48) because volume control can be ass, especially in browser games. As for why it’s displayed all the time and not in the menu, it’s because the game doesn’t have one. From now on I will assume everyone has the most earrapey treble-heavy IEMs and I’ll have to default the volume slider to 50%.
Eye massacre
The visual side lay at the bottom of my priority list, because no matter how much time I spend on it, I never get it right anyway. The mirror was drawn about an hour before the deadline, and I wish I had time to add a reflection, but it was such a minor part of the game that it didn’t really matter. If I had even more time, the plan was to add background props like torches or paintings, and a proper entrance to the manor, but alas, making sure the game was imbalanced in a balanced manner was more important.
There was one sprite that I shouldn’t have omitted because it actually made the game more confusing. Aggressive mobs were supposed to have a crown of thorns for a cheap visual explanation of contact damage. The final sprite was, of course, a permanent temporary recolor of Ms Demanor, and that was a problem, because a surprising number of players didn’t immediately realize the other Demanors were foes. I thought the aggressive audio layer would be enough of a hint, but, well, you already know how that ended up.
I later redrew the sprite, making her actually cold and drenched, but I still didn’t really know what I was doing, and if I were to keep this level of visual fidelity during a compo, I wouldn’t get out of Aseprite until Sunday.

Final thoughts
I rarely write essays because I just can’t put my thoughts on paper, despite being able to maintain a permanent internal monologue. So I apologize for incoherent writing. Thank you to everyone who sent feedback, with special thanks to @itooh @honey-pony @peachtreeoath @rasblo for particularly constructive feedback, and thank you to streamers and @100th-coin for direct insight. The TL;DR of this rambling is: don't screw up your audio mixing, add an easy mode, and, if the game is a puzzler, don't use linear level progression.
As a side note, I believe no one found the easter egg without watching the spoiler section of the walkthrough. Bummer.
I hope y’all have fun with the upcoming results, even though I have 0 expectations myself.