Heya everyone. I’m Budaniel, the artist and programmer for AAGH Games, and this is a retrospective for our LD33 entry, Dial “M” for Monster. This was both the most challenging and the most rewarding Ludum Dare of the four we have entered thus far, so I’m going to tell our tale of troubled development in this Dial “M” for Monster Retrospective.
This kind of going to be a long one, but hopefully it’s an interesting read.
Friday: The First Night (and the days leading up to it)
I was psyched to get this Ludum Dare under way for a few weeks, but as the days counted down I got more and more distracted, to the point where, on the evening the theme was to be announced, I was so far from prepared that I was worried if we would get anything done at all. I usually have all of my tools ready and tested by that point and our live streaming setup has been configured already. This time I was scrambling to get it all in place by 9 PM that Friday.
When the theme was finally announced, our live stream kicked off and we got to work brainstorming. I’m personally of the opinion that the theme itself is never a hurdle – if you can’t think of something interesting to go with a theme, you’re not trying hard enough. In the first 30 minutes we rattled off a list of concepts what constitutes a monster, things like older/younger siblings, politicians, aliens, dai-kaiju, and more. The concept we settled on was rather mundane (a monster lurking in the woods hunting survivors) but our ultimate goal was anything but – we wanted our survivors to collect tools and materials to build a shelter, all while trying to stay fed, hydrated, warm, and safe. This meant a working survivor AI, and that was something we – and I in particular as the programmer – had not done before.
Things went about as well as you would expect from someone making an AI like this from scratch for the first time ever on a 72 hour deadline – progress completely stalled. The first four or so hours were making the survivors run from the monster, approach the fire, and locate nearby any food. We started with just one survivor for simplicity’s sake, and even that presented so many challenges. We adjourned that night with little more than a monster that moved and caused survivors to flee, which was way less than we wanted.
Progress at the end of Friday

Saturday: Long Days and Delirium
We picked back up late on Saturday because I overslept after the previous night’s debacle. I spent the first hour or so making the survivors seek food and then retreat to the heat and safety of the fire. We –and our viewers on the livestream – marveled at the sheer stupidity of our survivors AI, to the point that we were thinking of making that the selling point, thinking of names like “Dunces with Wolves” and “Darwin in Action,” with the plot being that you’re validated in hunting them because if they’re stupid enough to wander into the woods without being able to take care of themselves, then they deserve what’s coming to them.
At the time we were using basic letters to signify everything from the fire to the trees. We talked about the graphics we were planning to replace them with, such as what kind of monster we actually were, when one of our viewers insisted that we keep the text-based aesthetic. After some deliberation, we agreed to keep it, but only after I touched it up some.
Around midday I passed our project over to Floata, our musician/level designer to lay out the map while I took a break and distressed. When I got it back that evening the map was complete, which was good, but now it was time to resume work on the gameplay, which was less so. We again live streamed our work, to an apparent vacuum. It was actually probably a good thing we didn’t have a lot of viewers, because I was so tired that I was making dumb, sometimes crass jokes and Floata was mumble-grumping through most of it. We did manage to get the four planned survivors on the screen together at last, and we finally got them foraging for food and avoiding the monster. Unfortunately that was as far as we got this night before we had to call it until the next day.
Progress at the end of Saturday

Sunday: Where It All Breaks
This was the day where I was sure that we weren’t going to finish on time. We started early (skipping the live streaming since we were struggling so much) and the first thing we did was christen the game with a name. Since we were committed to the art style (and therefore the monster looking like the letter M), we decided to name it Dial “M” for Monster. Our original logo looked like this.

We got to work trying to make the AI protect itself from the monster. We originally had the survivors hunting tools to make a gun but like so many other pieces of the project, that didn’t make the cut due to time constraints, so they were all armed with knives and arrows instead. Way too much time was wasted getting the survivors to shoot at the monster (instead of every which way), but that was nothing compared to getting the survivors to explore more of the map. Originally there were just four survivors, and they were all grouped around the central fire, meaning that 90% of our huge map went largely unused. I decided to lay out a “breadcrumb” trail for them to follow in the form of (invisible) dots that would guide them from place to place. It was terribly finicky to work with, placing them just right so they were neither too close to each other/food/fires or too far away to be detected, but I eventually got it working somewhat. What I really didn’t want was for them to wander a randomly selected direction – I wanted them to follow the paths through the trees to more food or the next fire.
That took most of Sunday, but once that was done, we figured we were in the clear as far as basic mechanics. Sure, we had to cut the survivor item collection and base building, and yeah they weren’t as skilled as we would have liked, but we had the gist of our vision working. Or so we thought – it was at this point it all went to hell.
Whenever we tried to rapidly attack a survivor, the game would lock up the browser, forcing us to crash said browser to get it to close. We figured it had to do with hammering on the spacebar, so we tried various fixes. We tried delaying the monster’s attack speed to only accept attacks every 2 seconds. We tried changing the attack key to something other than spacebar. We tried removing the “slashed” hit animation on the survivors. We tried making the attacking happen on contact rather than via a button press. Nothing worked. Every time we aggressively attacked the survivors, the game froze. We didn’t find any sort of fix on Sunday, so the problem had to get rolled over to Monday. The only positives from Sunday were a redrawn logo (to the one currently in the game), a working GUI and updated visuals (even if they weren’t in the game yet). Here’s a comparison chart of the old graphics to the new/current ones, showing the progress that was made (click the picture for full size).

Progress at the end of Sunday

Monday: I Love It when a Plan Comes Together
Monday was another early start, and with just over 11 hours before the deadline, we had to get this crashing ironed out. While we brainstormed on how to fix it, I made the end credits and instruction screens (if there’s one thing we’ve learned over our years of making games, it’s to never assume anything is obvious to the player, so explain as much of the game to them as possible), plus we finally got Floata’s music in the game, complete with a mute button (another lesson we have learned is that a lot of people would rather listen to their own music – or the TV, or a movie – so always give them the option to silence the game).
We fought the problem until after 4 PM, or five hours to the deadline, making no progress. I was getting frustrated and was just about to compile a playable copy for Floata and some other testers to try when I had an idea for one last test: remove the “panic state” from the survivors that caused them to turn and run from the monster. I made the change without taking time to test it, compiled a build and sent it for testing before going to eat dinner. When I get back from dinner, Floata and our primary tester had both gotten back to me with the following update: the game wasn’t freezing the browser anymore, but the survivors were now ruthless killers that stuck to the monster with a vengeance.
The problem had been found – it was the survivors’ panic state that caused them to try and flip 180 degrees and run. The issue was that as long as the monster was nearby – which it had to be to try and spam the attack command – the survivors were firing their panic state behavior every tick, and that was overloading the game in short order.
It took us probably an hour to fully replace the panic state with something that didn’t crash the game but didn’t have the survivors latch on the monster and murder it almost instantly, but now we had a working, non-crashing game. A last-minute decision was made to move from four, individually colored survivors to four packs of three single-colored survivor packs. We stuck them around different fires, colored the fires slightly to match their pack color, and took the game down to the deadline as I added one more small touch that I thought would look cool – the fires of each pack going out when you wiped out their entire group. This proved to be a challenge and I just finished it up with about 75 minutes left. Floata and I then played it through, beat it a few times, lost on purpose a few times, and agreed it was as done as it would get, so we sent it in and the rest is in the hands of all of you fine folks.
Progress at the end of Monday

And thus ends the retrospective of Dial “M” for Monster. Give it a go, if you haven’t already. We didn’t quite reach our ambitious goals, but it turned out well and we’re quite happy with the result. Thanks for reading!
Click to play Dial “M” for Monster