
Day 0 (Friday 11/30/18):
I began by breaking one of the "rules" that I often come across around here, the one that says that it's unwise to learn a new language or tool during Ludum Dare. But that's what I did, and here's why. For the two previous Ludum Dare competitions, I used LÖVE, a framework written in Lua. While I have a lot of respect for Lua, I decided that this time around I would make a game that is more "ecumenical" — i.e., playable by anyone with a Web browser (ideally). With LÖVE, I only had time to compile for Windows; folks who used Linux and other operating systems would have to compile the source code themselves if they wanted to run the game. That didn't seem right. Also, I didn't like the hassle of generating the executable file from my source code and then being sure to package it with DLL's and so forth. I like to keep such technicalities to a minimum.
So, in the hours leading up to the nine o'clock starting gun, I decided to explore different gaming tools. Fortunately I found a list that concisely compares some of the more prominent HTML5 game development tools out there:
http://html5gameengine.com/
I gave careful consideration to BabylonJS and Construct, but I eventually ruled out both. BabylonJS looks like a great tool for 3D games, but my heart was set on a 2D game, and this tool struck me as overkill. I almost fell in love with Construct, until I learned that it's not exactly free. I don't like being trapped into using software that will eventually require payment, so I ditched that option. There were a few other tools that looked appealing, but I finally settled on PixiJS. It's free and it doesn't require running a Web server on my local machine. The last thing I want to do on Day 0 is install a Web server on a Windows machine. That would probably be a quick descent into misery and frustration. No thanks. Getting PixiJS to work, on the other hand, was a breeze.
When the theme was finally announced, I was a bit disappointed. At best, I had mixed feelings about it. Still, I felt it was general enough to give my imagination free rein, so it wasn't too bad. I just needed a bit of time to mull it over.
Day 1 (Saturday 12/1/18):
I got up early in the morning and started exploring more game ideas in my head, using pencil and paper when needed. The first idea that stuck was something inspired by my previous game for Ludum Dare, Gretchen's Head. For those of you who are fans of this game and remember the story line, the protagonist, Gretchen, is a mother of ten children. My game for Ludum Dare 43 was going to feature the heads of all ten children. Each head would be floating in the sky, and the goal would be to propel as many heads as possible to the top of the screen, which would represent eternal bliss. The player would have to sacrifice some of the heads in order to generate energy that would send the remaining heads upwards.
While the game mechanic fit the theme pretty well, I ran into several snags. First of all, @genie, the creative artist for the game, balked at drawing the heads of ten ugly children (as players of Gretchen's Head may recall, her children are not spellbindingly attractive). Second, the prototype game that I developed using this idea did not seem very inspiring. It seemed challenging enough, but at the same time I felt it was rather bland. That's when I decided to break another "rule" (I guess, for some folks here) and redesign the game. In fact, I didn't decide on the final design until the next day. In the end, I spent most of Day 1 learning how to move sprites around in PixiJS and playtesting the design that would soon be jettisoned.
Day 2 (Sunday 12/2/18):
I woke up early to attend a weekly study group I've been involved with for a while, and then to meditate at a local Zen Center. I wasn't in the mood for either activity, but I felt obligated for various reasons. Then around midmorning, I felt the full weight of the self-doubt that had surfaced the day before. I felt so tired and miserable that I decided to go back to bed until around noon or so. That's when Genie woke me up and gave me lunch. In the afternoon, feeling a little better, I started thinking more about the game design and settled on the idea of having just a single head (which would later be named "Alice") which would float around the screen and gobble things up. I felt that a game that is focused on a single character, rather than a swarm of several heads, would be easier to learn and more fun to play. In some ways, I got this idea from an LD42 game I had played, Cactus Madness! (@yukey0 et al.), which features a single character running around the screen gathering items.
I spent most of this day rewriting the code, although fortunately I was able to keep a good portion of the code I had written the day before. Some basic things like generating sprites and a collision detection function, the latter of which I swiped from a Pixi tutorial by kittykatattack, could be kept. Also, Genie had given me some pretty good sketches for the head, and I felt like the game was finally crystallizing into its final form.
The ideas for the stars, sun, moon, and other elements of the game just popped into my head during development.
I suspect that one of the main subliminal influences for these ideas was a music video I have been watching these days, "Fjara" by Sólstafir. Its theme of a lost soul dragging a coffin through the Icelandic wilderness is deeply inspiring.

Day 3 (Monday 12/3/18):
I got off to a bad start on this day. I left a note for Genie about my ideas for the final head drawings and then departed to give someone a ride to a hospital for a medical test. I was gone for 2-3 hours and when I got back, I was tired from all that driving but nonetheless eager to finish the game. I looked at Genie's final head sketches and decided that one of her earlier sketches from Day 1 or 2 was the best. Ironically, this earlier sketch had taken her only a few minutes, while her final head sketches took "two hours" to complete. Needless to say Genie was upset about the wasted effort, but I was able to get her to do a few more sketches based on the earlier draft head. With a bit of tweaking in GIMP, the final result, Alice's head, was ready to be incorporated into the game.
On this day I also taught Genie the rudiments of Bosca Ceoil, and with a little help she was able to compose the end-game music. She was new to music composition, but overall I'm happy with her work. It is not Bach or anything like that, but it is original.
I spent the afternoon and evening playtesting and working out the final details of the game. Fortunately no game-stopping bugs appeared. Even so, polishing the game took up every minute of my time during the final stretch.
Here's the lowdown:
What went well:
- Taking a chance and learning a new tool on Day 0. In hindsight, I'm glad I ditched LÖVE for PixiJS. Overall I'm very happy with the tool.
- Sinking my first game idea and redesigning the game with only one avatar. It was harrowing at first, but in hindsight it worked out for the better.
- Working with Genie, who in the end produced some great artwork and some rather unusual music.
What didn't go well:
- I should have been more clear with Genie about what kind of artwork I was expecting. We would have avoided a lot of grief if I had talked with her in person about the final sketches instead of leaving a note with instructions.
- I should have bought a bunch of junk food in the days leading up to Day 0. In the past I had eaten snacks like pretzels and candy while coding. This time around I ate healthy food like sandwiches and salads and stuff. Yes I realize that's important for my health, but it's just too bland and uninspiring. Fortunately I had plenty of coffee.
I fear I have rambled on far too long. I hope there is some useful advice here for y'all.
P.S. here is a link to the game: https://ldjam.com/events/ludum-dare/43/stjarna-hofu