Post-mortem for the Week of Awesome V and the NES Jam.
Note: this post-mortem was originally published in Itch.io: https://racso.itch.io/castilla-1528/devlog/7605/jam-post-mortem
This is my post-mortem for the development of Castilla 1528 during The Week of Awesome V in Gamedev.net and the NES Jam in Itch. It's preceded by the devlog updates I posted during the jam.
Both jams were 1 week long, and they were run during the same week. Each of them had its own set of requirements:
The Week of Awesome V had four themes available, and participants needed to use at least two of them in their games. It also awarded points for having an active community participation (e.g. posting updates) during the week.
The NES Jam required games to have a resolution of 256x240 pixels, and to only use colors from the NES original palette.
The initial choices
The four themes of the WoA were Chain Reaction, Assassination, Alien Invasion and Castles. I thought of several combinations (even trying to use the four themes at the same time!), each leading to a different game genre and style. In the end, I decided to go with a relatively simple formula: Aliens and Castles. As for the game, the obvious way to merge the themes was to simply confront both factions. As soon as I thought about that, I remembered how much I loved Battleheart, so I decided to try a similar "tactical battleground" mechanic.
I also decided since the beginning to use very simple graphics. For example, characters would be sized 8x8 pixels.
Lately, I've been testing tools for developing games. I've even found tools that I didn't know that I had, for example, because I bought them in a Humble Bundle and then immediately forgot about them. For this game, I used the following:
Unity: I wanted to try a different engine this time, specially since I knew that Unity isn't optimized for pixel perfect games, which would probably give me trouble when trying to achieve the NES resolution (it did). However, given the time constraints, I decided to use it again to avoid wasting the week learning to use a new engine.
Pyxel edit: a tool for creating pixel art and animations that I got with a Humble Bundle. I also have other new tools that look pretty cool, but I decided to try this one this time.
The development process: the good
Using source control with Git has become mandatory for my projects. It's an incredible safety net for those times where you mess up (you will).
Pyxel edit did a quite good job. I miss some features (mainly, the possibility of adding some padding to each tile in an exported animation sheet), but the tool was up to the challenge. It even included the NES palette as a color preset!
Unity worked, as it usually does. This time, I think my code was specially well structured.
The graphic style worked. I was happy with the final result, and I've received good feedback about it.
I found a couple of good free songs for the game, as well as a public domain pack of sound effects.
The development process: the bad
I simply run out of time in the end. I couldn't polish the game as much as I wanted, and my submission to the NES Jam (the first one to finish) had two serious bugs, one of them because I forgot to change a variable I was using for debugging. Last-minute submissions are simply not healthy. The bright side is that I had some extra hours to improve the game for the Week of Awesome, which I did swiftly.
At some point, I tried to create music and sound effects with the PICO-8 sound editor, but I simply don't have the skill to do it [yet].
As I expected, Unity gave me trouble with the pixel-perfect part of the game. I had to deal with the cameras and the elements positions in order to try to achieve a good effect, and even then I couldn't manage to finish every detail related to the cameras before the NES Jam ended. For example, I wasn't able to fix the aspect ratio and resolution in time. The worst part came when trying to make the UI, as I needed to adjust the fonts so their pixels were in sync with the game pixels; I failed miserably.
Unity 2017 has some bugs. None of them makes it unusable, but it crashes or freezes from time to time, which is quite dangerous.
I tried to use the Doozy UI asset in Unity for creating the UI for the game, but, again, I encountered problems when trying to make adjustements to the canvases so they used the Canvas Scaler component. I wasted two critical hours with the tool and in the end I had to remove it from the project and simply make the UI by myself. In general, I'm not liking the route the asset has taken with its latest updates, but I hope this was an isolated situation caused by a very specific requirement I had at the time.
I tried to use Unity Cloud to quickly build my game for web in the last hours of the NES Jam, but it's simply not reliable in terms of "emergency builds", as it may enqueue you for some minutes and then fail because you configured something wrong.
I spent some hours during the week following the jams to fix bugs, polish the game and prepare a WebGL version. It now has the exact NES resolution, and looks quite good. The project will probably enter a hiatus right now, but if I ever decide to continue working on it, I will probably begin by adding more enemy types, such a "berserker" alien that doesn't change its target, and perhaps adding more characters and scenarios (such as a Wizard School or a Thieves Guild, with different combinations of characters).