My first Post-Mortem! I hope I'm doing this right
Another Ludum Dare completed! And since I’ve never done one of these before, I figured I’d try my hand at a post-mortem for my game, Dayunisi Builds the World! Buckle up, 'cause you're in for a ride!
“Start with nothing”
…okay? Don’t all video games do that? It’s be kind of weird if you started with all of the equipment unlocked. Personally, I didn’t think this was a particularly strong theme, since we ended up with a lot of “you unlocked the jump button” style games that don’t explore starting with nothing in a meaningful way. But I digress…
This is my fifth Ludum Dare that I’ve completed, and by now I’ve gotten into a bit of a routine for these things. To begin with, I always start with at least three hours of planning to find the perfect theme. And it’s usually split pretty evenly between:

Brainstorming to get any and all ideas out on paper. Some ideas are good. Some are bad. Some can stand on their own. Some can be combined with others. Doesn’t matter; every idea I have gets down on the paper. For the most part, I interpreted the theme as making the act of building up to be the most central component. Things like assembly lines and creation myths and Terraria clones were obvious, but I was more interested in thinking outside the box. What if the ‘nothing’ is the knowledge the player has about the game? Heck, why limit it to just a game’s mechanics – maybe I could make an edutainment game? Or a learning algorithm?
After brainstorming, I usually have a handful of themes that sound interesting and could make for fun, unique games. I spend the second half of my planning stage exploring and really considering all the ins and outs of each theme. What would be the core gameplay loop? What kind of assets will I need? Will it be a decent challenge to make? Am I sure I can make it all in 48 hours?

This time, I narrowed it down to six ideas. Two were what I call ‘Mechanical Turk’ games, since they had the player build or correct an AI to proceed. Two others were Terraria clones, where the player had to mine for resources and build structures. One was a pure edutainment game involving mathematical functions and plotting graphs. The last one was a social commentary game around how homeless people face so many barriers to entry into society – to eat you need money. To get money you need a job. To get a job you need a suit and tie and home address. To get a suit and tie and home address, you need money. The twist was to market it as a straight rags-to-riches game, complete with fake screenshots showing a mansion you could never actually get in-game.
Out of these six, four were unfeasible: the Mechanical Turks would require me to program a way for the player to program the AI, which I couldn’t do in 48 hours. Same with one of the world building games, which would need both a mining mechanic AND a music sequencer mechanic. And the math one just sounded tedious to build, and was probably going to be boring to play.
That left two ideas. Between the two, I cut the social commentary game because I had already done a social commentary game last Ludum Dare and felt my execution was nowhere near as clever nor insightful as I thought it would be. That left…
Dayunisi Builds the World!
One of my ideas for “start with nothing” was all the creation myths of the world. Unfortunately, all the ones I knew would make for either very boring or very complex games, so I had to do some research. Through Wikipedia I found the Cherokee creation myth: that the little Water Beetle was the first to leave the overcrowded sky realm. But, finding only water, he dove down to the ocean’s floor and brought back some mud, which grew into the world we know. For me, that was perfect: I could make a Terraria clone. It would have core mechanics that are known by most people while having a unique twist that ties into both the theme of the jam and the theme of the story!
At first, I didn’t know if I could handle a Terraria clone – I thought my computer was going to explode from too many loose physics objects. This is another reason why I flush out so many ideas: I have more options to fall back on if my first choice fails. Thankfully, my computer was able to handle all the blocks, and I was able to continue. It was around midnight now, so I decided to go to bed and be back at it before 9!

… That was the plan, at least. Remember that routine I mentioned earlier? One of the things I do is buy myself some sweets and munch on them over the weekend. After all, Ludum Dare only comes twice a year, it’s time to celebrate! Well, I guess I overindulged that night, ‘cause I was up until 3 from a combination of a sugar rush and an upset stomach. I ended up waking up closer to 10, and finally started working after 10:30.
My entire Saturday was spent just making the Minimum Viable Product. There’s not too much to tell, really. Just a few technical issues that threw a wrench in the works. Like the one where I wanted to use MS Paint to make the art because it loaded faster and was easy to use, but I had to switch to GIMP because Paint doesn’t use transparency layers. Or how my character kept clipping through the floor if he fell from a great height – turns out he was moving so fast the collision check was completely bypassing one of the ground tiles, so I changed the setting from Interpolate to Continuous and everything worked out in the end.
The biggest issue I had was with raycasting. Every LD I try to make use of a new Unity feature – this time it was raycasting to check for blocks. There ended up being so much trouble because things weren’t properly aligned on the Z axis, or I was using Raycast instead of Raycast2D, or I used GetRayIntersection instead of Raycast, which I should’ve known doesn’t work… except for all the times it does… It was frustrating to say the least. This was especially true with the Buzzard’s coin drop, which would randomly drop a whole bunch of coins on the same spot.

Around the end of the second day, this I realized that the core gameplay mechanic loop wasn’t all that fun. It became too difficult to build a nice enough platform because you’d run out of easily available pieces nearby and start to drown very early on. By that time it was nearly midnight, so I had to just leave what I had and pick it back up in the morning. This time, I did actually start at 9! …Well, actually 9:20… and it was closer to 9:30 by the time my computer finished booting up. But what matters was I started earlier than yesterday!
It was at this point that I decided I needed to cut out some features, or at least majorly scale them back. Some of them were obvious, like a handpainted background and power-ups. Some aren’t really needed to experience my game, like a working health mechanic. One of these was actually supposed to be a major mechanic: you see, the coins that Buzzard dropped were supposed to be plants that you needed to harvest. The main idea was to have different types of blocks with different fertility levels. That was how I would incorporate the story into the game: You were supposed to be split between building upwards towards powerups with strong but infertile blocks like stone, and building a nice plane of land made of fertile soil to collect more seeds, which would then be used as upgrade material. That’s why soil was so abundant but such a poor building material. In the end, I dropped the fertility mechanics and reworked plants into generic coins.

Speaking of which, did you wonder why I used such a strange S for the money symbol? That’s because I found that the Cherokee word for money is spelt like DSW, using that S-like symbol. I thought it was too good of an opportunity to make a silly little pun.

Based on past LDs, it looks like my greatest strength is my music. Which is unfortunate, because I felt I gave a very lacklustre performance this time around. You see, just based on how I’m able to budget my time, I can only make one song. No matter what I end up writing in that 1 hour interval, that’s going to be my music. No redos. For a game like this, music was bound to be a disaster. First of all, a happy game needs happy music, but I have no idea how to write in a major key, and it always comes out sappy instead of happy. Secondly, I usually try to write music that shares at least some of the sonic qualities of the thing I'm themeing my game on, which in this case were First Nations myths. Now, I did take a world music course, so I knew which elements make up First Nations music (things like monophony, drums with honour beats, vocables, etc.) However, all of my examples of First Nations music were either traditional prayers and other ceremonial songs with deep meanings, or modern day bluegrass with strong societal and political messages, neither of which I felt I could emulate without coming across as offensive. In the end I tried to experiment with chromatics and accidentals to make a kooky 12 bar blues song, but I was unhappy with the result. It doesn’t even loop properly!
Finally, the deadline approached. I fixed the last few bugs, made an HTML version, and posted it just before the deadline. To make sure the port worked properly, I needed to test it in my browser. And that’s when it hit me: I had never played my game to completion before! I had always made a little island and messed around with the latest changes before returning back to coding. Thankfully, it was actually possible to finish the game, and by that point, that was good enough for me.
After the jam

Unfortunately, good enough for me wasn’t good enough. Many players complained about not being able to get any money. At first I thought people might not have built high enough, since Buzzard only drops coins on blocks above water. Or maybe they didn’t play long enough, as he only comes every 70-90 seconds. But when one user said they reached the final cloud without getting a single coin, that’s when I knew something was wrong. I’m not even entirely sure what’s happening, as Buzzard appears just fine in all three of my browsers.

Looking back, I think I have a problem with messy source code. So many interconnected pieces and prefabs with no file structure and values assigned in editor that if just one thing is out of place, the whole system fails. I know that’s something I have to work on for future games.
And now today came the moment of truth! A lot sooner than I expected, too… weren’t the results supposed to come out at 8pm? Either way, I’ve got one question on my mind: how well did I do?

…okay, that’s not too bad overall, but it is my lowest-ranking game yet. I was hoping I would get some points for Theme, as I thought I did a pretty good job at incorporating it into the main game mechanic. But the more I think about it, that’s not really the case: the fertile world was scrapped, and most people didn’t even get to see its heavily reduced form either, which I imagine means few people actually built a money-collecting continental shelf like I imagined. Ah well. So this jam wasn’t the best I’ve ever had. That’s okay, because I still put in a decent effort and learned a lot from it.
Thank you all for reading my port-mortem / sorry for taking up your time! I hope to see you all again next Ludum Dare!