Early Post Mortem.

So the rushed development is over. The game is published (add link) and I had some sleep. Though frankly 4 hours is hardly enough after such sprint.

There will be a separate post mortem for this LD participation after the ratings are here, but for now I wanted to look at the development process and share some thought on it.

Theme Selection: The theme selection was a pretty heated, with one of the Final Round Themes. And surprisingly this theme was the winner. I Guess this is a clear example of “Any publicity is good publicity”. Pretty sure the heated debates drew more attention to this Theme than it would normally have had. And some of the “Trolly” users upvoted it just to spite everyone complaining in advance.

Personally, I don’t think this was the best Theme to have. It definitely fosters many unusual game ideas, as no usual idea will fit the Theme by its definition. At best you need a pair of usual game ideas working in pair. So in terms of game diversity I think this will be one of the Better LDs. However, to contribute to this diversity you have to kind of Embrace the Madness. You have to let your ideas run wild, while still not over-scoping. And it takes quite a skill to pull that off. So in terms of submission rate, I think this LD will end up on the lower side.

The Concept - Anyway, back to my development process. After seeing the Theme I started brainstorming and after some time I got this idea of dual game, when you have to simultaneously pilot a spaceship and playing Match3 that would work together. And the interlinking is done in a pretty blant way - Matching tokens in Match3 give you shield and weapon charge. This was an initial concept and a went ahead from there.

During development some other ideas arised (like losing bits of Match3 playboard when ship gets hit without shields, or having homing missiles in your arsenal), and more appeared, but didn’t make it fully into the game (like engines also requiring fuel, with ship losing speed and maneuverability if fuel is low. Or spending XP to upgrade your ship.

This dual play was obviously pretty complex, so early in development a decision was made to deliberately split controls with all ship piloting being done using keyboard and playing Match3 using only mouse. This way a game might be played as an asymmetric couch co-op of sort with one pilot focusing on piloting and the other focusing on “maintaining the ship”.

But just in case someone would play alone, some controls were made to work as “Autopilot” of sort. For example automatic shooting at designated target once it is in range. But not all of those design decisions turned out to be good. For example ship heading system would probably been better just letting you rotate the ship directly instead of you controlling the heading, which the ship will gradually turn towards.

Execution - Programming Match3 turned out to be a much more challenging than I anticipated. The algorithm of finding matched tokens had to go through 3 iterations, and the final one still didn’t give me support for spawning “Special” tokens (though you do get much better output if you match more than 3 tokens). It took me half of the first day and a portion of the second day to get this working, so a lot of other things had to be cut.

For example the UI. Technically I did make some UI for the game, including - never seen before - ingame “How to play” thingie… But a lot of stuff didn’t make it because I didn’t have enough time. For example a timer showing the time till new enemies will arrive and rough direction where to expect them from. Or a counter to show missiles. And the current target marker is not the best. I planned to put a marker on all enemies showing their HP (if below 100%) and if the enemy is offscreen - to show an arrow at the edge… But I just didn’t have enough time for all this. If it wasn’t for the need to be in the office on monday, I might have used the third day to polish the game a bit more, but I’m not a fulltime game developer… yet.

And the usual victim of the time deficit are the sounds. I have tested waters with LMMS before the event a little bit, so I wanted to add at least some beats, but… there were more important things to be added, and the time ran out too soon.

I was able to create some interesting death animations and explosions though. Pretty happy with how they turned out to work.

Another thing that made me pretty prout was the enemy targeting AI. It will calculate if it can hit you assuming you keep your current velocity. And this means that unless you are constantly making evasive maneuvers you are likely to get a lot of hits. I wanted to nerf it bit, by introducing some scatter to this targeting, but in the result, when a lot of enemies were shooting at you (due to my laziness all enemies spawned in one wave will fire simultaneously in volleys) the scatter only means that the volley is spreading wide, making it hellishly hard to dodge. So I kept their shooting spot on, meaning you are likely to either evade all bullets… or catch them like pokemons…

Surprisingly homing missile AI using similar core principle is… less effective. But maybe I have some bug in them. Plus this inaccuracy means you have to be more strategic when to launch them. So I didn’t feel the urge to fix them.

Enemy spawning is… a bit mixed. On one hand the core system for spawning is working well. Basically every wave has a “budget” of points to spend on enemy ships. And each enemy template has a cost associated to it, and a timestamp, prohibiting this enemy from being spawn before specific amount of seconds into the game. And each next wave having bigger budget than the former.

But for some reason, the enemies spawn really close to each other. And I literally had no time to balance the difficulty curve, so my minute 3 the game turns into a hell with my own record is being able to survive 4:35 (playing in “2 player mode” with my wife)...

Deployment - I have traditionally published the executables using Google Drive, but this time I have all 3 standalone platforms covered (though I only confirmed the build working on Windows… I don’t have Mac or Linux…)

But on top of this finally itch.io allowed me to publish a game on it! So in addition to standalone builds I have HTML5 build published!

Also I have hilariously found a bug in the game that would break the second game starting (like Start Game -> Lose Game -> Start another game -> it breaks!) after I published initial builds, so I had to recompile all versions during “Submission hour”).


In Conclusion I am definitely getting better. A year ago I would definitely not have been able to pull off something like this. True - a lot of stuff wasn’t done in the timeframe, meaning I have over-scoped my capabilities still, but at least all the stuff that ended up not implemented was... not critical.

I will look into continuing developing this game “Post-jam”, but I am currently busy with “Maze Crawler” and have plenty to do for it, so I wouldn’t bet on having a lot of time to polish second game at the same time.

Will be looking forward to the rating part now!