A postmortem at last!


Introduction

A game Jam is always an opportunity to try out new things, to play with your own skills and to learn something. The limitations presented can provide a great challenge and lots of fun.

Being my very first Jam I was expecting all of that. However, I also got an exciting feeling and a pump of adrenaline. And that is the reason why I make this post-mortem public. If you have any doubts on joining any jam, I hope this article helps and encourages you. Let's get started.

B&W Jam Logo source: https://sites.google.com/view/lonerabbit/bw/presskit

First things first: the game Jam itself. This jam was called B&W Jam. As the name implies only Black and White games were allowed. In fact, there were two rules. For the games that follow Rule A only two colors were accepted: black and white. On the other hand, Rule B allowed not just black and white but also shades of Gray. Usually, a game Jam lasts 2 days or even less. This one however went through two weeks.

There was also an option theme: “You only realize the value of something when it’s gone”. Besides the color limitation there was no significant limitation whatsoever. It could be used any tool or engine and the game could be released for any platform. Assets could be used but the idea is not reusing things especially if they were used in other games.

With all that in mind my first choice was the genre or the game's type. Since I was a huge fan of shoot them up games (and I had made tons of them) I chose that genre, more specifically the bullet hell type. And since the jam is called B&W jam, I came up with a name that both represents the games genre as well as ties in with the jam: Bullet Warrior.

Bullet Warrior Logo

Finally, when it comes to the engine, I chose the Clickteam Fusion because I had been working with that tool for a while (in fact I'm still working with it). Which is a great segue for the...

What went right.

The tools

It's important in any project - not just for video game projects - the tools you are going to use for such a project. Despite game jams being a great chance to try out new things and to discover new ones, one thing that must be considered is time or lack thereof. If you are going to use some tool that you don't have former experience, you could end up wasting more time with the tool with the game Jam itself. If that's your goal no problem. But you must keep that in mind during the game Jam otherwise you could end up feeling frustrated with the result.

Clickteam Fusion Screenshot

Besides the Clickteam Fusion, I used several other tools, ranging from open-source tools such as Gimp and Inkscape and paid tools such as Pyxel for the visual elements. Turbo FM Sound and Deflemask were used for the title music and the sound effects. Ironically these last two would end up being part of what went wrong but I'm getting ahead of myself.

Version control was performed by git (more on that later). Whenever I needed to deal with text files, Visual Studio Code came to the rescue. Lastly, I drew sketches with pencil and paper.

I had been using these tools for quite some time, and I was quite experienced with most of them. Had I decided to use different tools, certainly Bullet Warrior would have been completely different from the finish game I got for this jam.

Early definitions and sticking to them.

After I decided to make a shooter, I established some boundaries. This is one of the most crucial things I believe every project must come through. As Harry pointed out: "a man got to know his limitations". Even with your favorite tools if there are no limits the time will run short because the temptation of putting every idea into action is too strong. And without any restriction even including the kitchen sink sounds interesting. When we set the limits for our project, we can call this the project scope.

Bullet Warrior design map

For Bullet Warrior I took inspiration from Galaxian and Space Invaders. Also, the game should have a “retro” look and feel, like the games from the 1980’s. One last thing: once everything was set, changes wouldn’t be accepted unless it was really crucial to the game. In other words, the choices were set in stone with no room for any last-minute change. With that in mind, the design choices became focused and not all over the place which, in turn, made things simpler to design, build and test. Considering that I was working on this project all by myself, the simplest the better.

One last thing related to choices: since there are many ways to achieve something, if I got stuck with an approach for too long, I moved to something else and got back with a fresh mind and a different approach for that task.

Design, Build, Test. Rinse and Repeat.

With the right tools and the scope set, the whole development cycle could go with no major issues. First, I drew a sketch with all the elements I needed to build. After that, the sketch was transferred to the digital world thanks to Pyxel (great for tilesets), Piskel (sprites and animation), Inkscape (vector graphics) and Gimp (last refinements).

Bullet Warrior's early sketch

The images were loaded into Clickteam Fusion and the game itself took shape. Events were added to get the game working. Finally, a version was built and tested. Once the concept was brought to life, I repeated these steps for the next elements. However, every time I got a minimal functional game, or a minimal viable product (MVP) in Lean Startup lingo. You may say that on each interaction Bullet Warrior got improvements, but it was always a working game, albeit missing some features. Or, if you want to put in another way, I ended up making several Bullet Warrior games, each one with new features compared to the previous games. Once I got a version with the features I had wanted, that version became the “ready to release” or gold. The jam’s time constraint had a strong influence on what implemented features were required to check if the game version was becoming gold or not.

The features I expected to be implemented were at least two enemies with their distinct behaviors, player’s score and lives including a basic UI, intro, and game over screens.

Sit, make the game and, above all, relax!

Even though the game jam can be seen as a competition, a jam is a jam; it is all about the experience. So, don’t take it too seriously. The game could have been better? Absolutely. But the simple fact that you came up with a game considering all the constraints should be a reason to celebrate. If you had fun making the game and some people had fun playing it, it’s a win-win scenario. Besides, all those improvements can be included in the next version of the game and in your next projects as well.

What went wrong.

Know your tools, but not so much really.

One thing is knowing the tools you are going to use in your project. But the real world presents some challenges that will put your actual knowledge of such tools to the test. Since I decided to make Bullet Warrior a web game, that turned into a restriction on itself. One of the issues I faced was the antialiasing problem. Look at this image:

Antialiased letter

Have you noticed the smoothness? That’s antialiasing. The problem here, though, is how it is done. To give that smooth look to the text you need more than one color. In fact, you need shades of grey. And since I chose Rule A with the two-color limitation, antialiasing was forbidden.

Objects available for Clickteam Fusion HTML5 Apps and the GraphicFont object

Clickteam Fusion uses objects to represent sprites (Active), backgrounds (Backdrop) and so on. Also, it allows the deployment for other platforms, such as Windows, Android, Web, among others. For each platform, a subset of the available objects can be used alongside the common ones (Active and Backdrop, just to name a few). For web projects there are some special objects that I found they could have been useful for Bullet Warrior. The GraphicFont object could have been quite useful for rendering text. Basically, all you need is a bitmap font, set some parameters and choose what font and size should be replaced by your bitmap font. Wherever there is a text on the screen using that font and size defined will end up being rendered with your bitmap font. At least, in theory. So, I added the GraphicFont object into Bullet Warrior and unfortunately it didn’t work as planned. The text got smashed and entirely out of place.

Mangled text provided by GraphicFont

The worst thing about this sort of issue is the fact that it appeared too close to the jam’s deadline. And I didn’t have enough time to research how to fix it. I lost several minutes trying to make it work. In the end I drew the text directly over bitmap images. I gave up flexibility and the chance to add a high score screen or multi-language support.

As a side note, one thing I thought it could have been cool was an endless scrolling background. I had done before in other games, but Bullet Warrior would have been my first vertical scrolling game to have that. Sadly, that was also cut during development.

Know your tools, but how about itch.io?

I have something to confess. I was not a great itch.io user, let alone a game publisher. Although this game jam was the first that I made and published a game, it was not the first jam I joined. Several years ago, I had joined another game jam, but I ended up not actually engaging. Thus, my previous experience with itch.io was mostly related to visiting the site and buying stuff (assets, games). However, I had never published a game at itch.io, Bullet Warrior would have been the first.

Even though the publishing process was simple and fast, I got to know how it worked too close to the deadline and that became another issue to overcome. Fortunately, the process itself was easy and it took less time to publish the game than what I expected.

Some rules can be bent, others can be broken.

In the “What went right” section I mentioned the concept of “early definitions”, and I stressed how crucial sticking to such definitions was. Guess what? That’s right, I broke that rule. At first, I decided to not include sound to Bullet Warrior. “That could be a waste of time”, that was what I thought. However, as the deadline came closer, I changed my mind and rushed to make sound effects and even the intro tune.

Turbo Sound FM Music Maker and the Intro tune.

Considering the retro look and feel of the game, I needed retro-styled sounds as well. I used Deflemask for the sound effects and Turbo Sound FM Music Maker for the intro tune. To make matters worse, even though I had had previous experience with Deflemask, that would have been my first-time using Turbo Sound FM Music Maker. In other words, I decided to add sound effects and intro tune and to learn a completely new tool, all at once. It was a little bit stressful, but fortunately I managed to get great sound effects and a fitting intro tune.

What now?

Now that the jam is over, what is next on my list? When people played the game, they said the game was too fast. So, for the version 2.0, it would be cool an “easy mode”. The second most requested feature was the mobile version of this game. Finally, a local and global rankings would be nice.

Leave a comment

Log in with itch.io to leave a comment.