clears throat
Our Ludum Dare group has a proud tradition.
The events tend to span 8AM Saturday to 8AM Tuesday AEST - or sometimes 9AM on Tuesday if Daylight Savings kicks in during the event, which always makes it exciting to try to figure out whether we're in Submission Hour yet and how much we should be panicking. Regardless - Day 1 is high level design and gameplay loop first pass, Day 2 is polish and playtesting, and Day 3 is EVERYTHING ELSE.
EVERYTHING ELSE usually starts at 10AM Monday or so, and goes right through the night until submission time the next morning.
It's a time of stress and frustration, but it's also a time of tightly-coupled teamwork and amused camaraderie. Some of my best LD memories tend to happen during the last 24 hours - be it banging out an entire soundtrack in the pitch black of the night, or finally seeing that dialogue tree come together three hours before deadline.
So imagine my surprise when, around 3AM on Tuesday morning, we agreed to fold up and go to bed.
We weren't giving up, or dying of exhaustion or frustration. We weren't preparing to pick back up in a few hours, after catching an eye-blink of rest.
We were just...done.

Preparing for Ludum Dare 51
We didn't have a high turnout this time around. We only got any concrete commitment the day before the event, with two and a half people participating; I could only commit for one day due to other obligations. This was...not a lot, in comparison to our past projects. Nevertheless, we went ahead, and within a few hours of brainstorming we had a workable concept.

This is the first Ludum Dare where we've had clearly assigned responsibilities from the start. It was clear up-front that all the coding and UI work would be with @googlefrog, as I didn't have time to contribute outside of audio work. @istaera had no supporting artists this time, and had to go it alone. And I had a very clearly defined timeframe to sort out background music and the handful of sound effects we ended up going with.
(To lessen the load on the coding side of things, I went with one 5 minute track rather than a bunch of programmatically assembled sections, like I have in the past. Strangely enough, the workload doing this was about the same as usual.)
The Game Loop and Playtesting
We love our high scores.

Once the core components had been ironed out, we slapped on a bunch of scoring systems and started playtesting. A few mutual friends were kind enough to run the game through the gauntlet for us. We had towns, raw material repositories, trains, and a way to tell how well you were doing. We were eager to see how we had done.
We found this resulted in-
Well, to be frank, a huge mess.

Rather than a cohesive experience, this setup led to something like the anatomy of a chess game.
- The opening, where you set up all your track and start routing resources through towns.
- The middlegame, where the whole thing develops into an unrecognizable mess and none of your preparation makes any sense anymore.
- There was no endgame because everything was on fire.
However, we pretty quickly discovered that the part where you tried to make your resource routing make sense was actually fun, and decided to prioritise this as the goal. Unfortunately, this discovery was made tending toward the end of Day 2.
We were very fortunate that at this point all the mechanics were in place, and most of the graphics were sorted. It became just a matter of polishing up the UI and rearranging some of the components.
Playtesting and Level Design
Day 3 brought with it the desperate need for content. @googlefrog had already considered making a level loader so that we could send levels to playtesters mid-playtest, to better test specific layouts and edge cases. Unfortunately, some technical issues got in the way of this, and the level loader wasn't finished early enough to be useful.
However, @googlefrog did create a rudimentary level editor. It involved setting global constants manually and copying generated tables from the console, but it did the trick.
Imagine doing this manually.

With the console output provided in a simple text format, @googlefrog and @aquanim were able to send each other levels and collaborate on them very efficiently, despite the time constraints. This allowed for the creation of over 10 polished levels in the last few hours of development - alongside some visual tweaks to solve issues made clear by the new levels, where some layouts could be confusing or unclear to the player.
Post-Jam
We published the game early Tuesday morning...and then just kept working on it. It started with more levels, which motivated @googlefrog to add a proper level editor - which led to a greater variety of scenarios and a better understanding of the game, which then led to mechanics tweaks and balance passes, etc. etc. Now, trains can reverse, towns can catch fire, and we've even put some thought into making levels less punishingly difficult than our usual standard.
We've listed the post-jam release as a separate version in the downloads section of our game page. If you liked the jam game, please consider giving the updated version a shot, and let us know if the additional tweaks made a difference!
If you're interested in things like balance issues and rapid level prototyping, I highly recommend you check out @googlefrog's post in the comments of our game, which goes into a bit more detail.
Conclusion
These things are...taxing. They're high stress and high output, and given most of us have professional lives outside of this, they can be difficult to plan for (or plan around, depending on who you ask). We saw that a third Ludum Dare was scheduled for next year, and thought as a group 'hm, we're not sure about this'.
However, a lot of this might come down to our approach to making Ludum Dare games. Most of our games have complex systems and some sort of resulting emergent behaviour. Many of these systems are broad and can barely be fit into three days of work, let alone playtesting and polish. The tradition of pulling an all-nighter on the last night isn't an artefact of poor planning - it's just become the way we scope our games.
However, that doesn't mean we'll sit out additional Ludum Dare events entirely. This may prove a good opportunity to try working outside of the box; perhaps on an art- or dialogue-heavy game with simpler mechanics. Who knows what trying something new might bring?
We'll see.
Thanks for reading this wall of text, and hope to see you next time :)
Credits
- @googlefrog - code, UI, level design
- @istaera - art
- @avareii - music + sfx
- @hoheinheim - contributions at high level concept phase
- @aquanim - level design, playtesting
- joeuigi (external) - playtesting
- amalgam (external) - playtesting