Ra is descending,
Apophis rises. Stop him!
And save the sunrise!

-Somnium, in the comment section for my game.

Back at the beginning of this month, I participated in the Ludum Dare 39 game jam. In 48 hours, I made a shooter game called Last Sunset, which you can play here. From a technical perspective, it's notable for being my first HTML5/Phaser game, a departure from my old as3/Starling/Flash workflow. Considering Adobe's recent announcement that they are going to try to end-of-life Flash by 2020, it seemed like a good time to jump ship. The competition results just came in this morning, so I figure the time has come to reflect on what went right and what went wrong this time around.

The Results:

Overall: 208th (3.52 average from 27 ratings)
Fun: 97th (3.68 average from 27 ratings)
Innovation: 429th (2.88 average from 27 ratings)
Theme: 509th (3.12 average from 27 ratings)
Graphics: 385th (3.08 average from 27 ratings)
Audio: 142nd (3.4 average from 27 ratings)
Mood: 103rd (3.583 average from 26 ratings)
Considering that, despite the new platform, Last Sunset was much less ambitious than my previous project, one might expect the notes I took during production to be calm, collected, and methodical.
...never mind.
What went right:
  • Graphics - Though I still lack a strong, appealing art style, I did a better job than usual of covering it up this time. The silhouette art style combined with lighting effects turned out fairly decent. One commenter noted that "I would have liked to see more purpose to the light going out, however. I could see most enemies well enough with their glowing marks." Being able to spot the enemies like that even in near-total darkness was exactly my intent.
  • Weapon / Enemy Interaction - I am of the philosophy that, when making a video game where enemies are weak to specific weapons, one should default to making the weapons that are effective against each enemy things that actually make sense to use against each enemy. Since one of Last Sunset's core mechanics is switching shot types to target specific enemies, I got a chance to exercise this philosophy. The enemies that rush the player are weak to the spread shot, the enemies that stand still can be hammered down with rapid shots, and the enemies that are weak to the spear crosshair are so fast that it's challenging to land hits on them with any other weapon.
  • Audio - The unexpected highlight of this compo was that I ended up doing my best sound design yet, and the ratings reflect that. The sound was rated an average of 3.4, 0.2 better than my previous best in the category and it was my first time in the category's top 200. I put quite a bit of effort into the sound effects and music, and it's good to see that it paid off. Also, it was my first time doing any kind of voice acting for a Ludum Dare game. In this case, 'voice acting' means 'saying crazy stuff into a microphone and then editing in Audacity so it sounds less like me' but it was still fun.
  • Mood - I didn't quite make top 100 on Mood, but I got pretty close. While my earlier Ludum Dare games were fairly abstract, I appear to be trending toward picking stronger themes for my games' flavor and visuals. My previous entry had an occult / cosmic horror thing going on, and this time around I committed to Ancient Egypt. I'll admit that I had the wikipedia page for Apep/Apophis open during most of the process. The game features jackals, hawks, pharaohs, ankhs, the Eye of Horus, and a cat. I did, however, miss scarabs and pyramids, so I didn't beat the player over the head with Egypt as much as I could have.
What didn't go so well:
  • Controls - Honestly, this one caught me completely off guard. I figured that arrows/wasd to move, 1/2/3 to switch weapons, and r or ctrl to nova would be a perfectly fine control scheme, but several people took issue with some element of that configuration. At least one reviewer found themself wishing for q/e weapon cycling, and another mentioned that the nova should be in a more prominent location than the r key. Also, someone somehow got convinced that they had to press both r and ctrl to launch the nova attack, a control choice which would be utterly rediculous. Also, more than one person apparently did not realize that phaser games pause when the player clicks outside the frame and thought that the game had crashed (they could have just resumed by clicking inside the frame again). Even worse, more than one person found that their keyboard controls simply did not work at all - an issue which has serious implications for the idea of me doing future projects in HTML5/Phaser.
  • Difficulty - The game was meant to be challenging, but I don't think the fact that many reviewers were unable to complete the game is a good thing. Having a variable difficulty setting would have helped this situation a lot.
  • Theme - In my previous two Ludum Dare games, I used the themes (one room, small world) to the extent that I kept the game to one screen and then did whatever I wanted. Ludum Dare 39's theme, Running Out of Power, demanded a bit more attention. I addressed this with a shared attack power / health bar mechanic. However, I didn't want power management to dominate the gameplay, so I ended up de-emphasizing the power-draining effect of the player's shots relative to the effect of damage taken. In practice, this resulted in the power bar being a glorified health bar. This situation was helped by my decision to make the player a light generator with a strength based on the player's remaining power. Still, Theme was my lowest-ranked category for a reason.

All that said, Ludum Dare this month was as fun as ever. Homework permitting, I'll be back for the next one starting December 1st.