Archive for August, 2016

Crossbow Assassin Post-Mortem

Tuesday, August 30th, 2016

This post is my Ludum Dare 36 post-mortem and will be mostly about the development process I went through when making Crossbow Assassin. I’m going to be honest here, I had no clue what I was doing for this Ludum Dare. I totally screwed up my submission. I had submitted 6 hours ahead of schedule but absent-mindedly went back to edit the description after the submission deadline. This changed my submission from a “Compo” entry to a “Jam” entry. Thankfully, one of the Ludum Dare admins, sorceress (thanks!), changed it back to a “Compo” entry for me. I’m not even sure if I’m doing this post-mortem right.

Oh well.

Anyway, it was my first time taking part in Ludum Dare and my goals were reasonably modest. I wanted to prototype something simple and fun and most importantly, to finish a game. There would be no fancy art or audio, just finish making a game with interesting mechanics. I was psyched and raring to go. Since the jam was taking place in a different timezone (UTC-07:00), I had to plan ahead and rest up. I would be waking at 9am on Saturday, 26 August 2016 and my submission deadline would be 9am on Monday, 29 August 2016. I took leave for Monday so that I could have a day of rest before going back to work on Tuesday.


The theme for Ludum Dare 36 was, “Ancient Technology.” The idea came to me very quickly. Singapore was smothered in haze over the past week and I was furious about it. If you knew the history behind this, you would know that a particular politician had been spewing nonsense about Singapore and Malaysia, countries affected by haze from this politician’s particular country.

Thus, I conceived a very contrived story for this game. The blurb went like this, “An evil monster has invaded your village, razed homes and burned everything down! Your fellow villagers have charged you, the local hero, Sam, with the mission of eliminating this evil monster, Josèphe Kafka, and his minions! Take your trusty crossbow with you as you enter his lair to complete your mission and save your village from his reign of terror! Be careful of his obsequious guards and archers and the smog from the constant burning!”

The game would have the monster resembling said politician and the player would have to kill it with a medieval weapon (crossbow). I also threw in smog which would obscure and choke the player/enemies. I recalled watching Warren Robinett’s GDC post-mortem on Adventure recently and was inspired to make something similar to Adventure with the same 2D art style (I tried my best). The idea was nothing original but I wanted an outlet to vent my anger and more importantly, I felt this game could be completed while providing enough scope for a challenge.


Since the game was going to be in a similar vein as Adventure, I conceived of a 3×3 world where each square in the grid was a “level.” The player would have to walk to the edge of the screen to move to the next level. For simplicity’s sake, there were 8 levels and the last level would be a boss fight. There were two kinds of minions, a guard (melee attack) and an archer (ranged attack). There was also a “haze” cloud in the game which, when covering a minion or the player, produces a cough. This haze cloud shrouded anything below it and made it harder for the player to see things. This provided an additional challenge. The haze cloud could also float around a level. There were also traps, that fired arrows, lying around the levels. I thought of adding more traps but decided against it because of the time constraints. I did not want the game to go too out of scope and wanted to stick to the original goal of completing a simple game. You could say that the game was nothing unique but I’d argue that it’s a social commentary on the status quo regarding the state of air pollution in the Southeast Asian region. 😛


I’m a programmer by training so I’m not very good at art. The art definitely took me a long time despite it being really simple 2D art. From conception to completion, I think it took me about a total of 12 hours to finish the sprites.

I used GameMaker: Studio’s in-built sprite editor but in the future, for bigger projects, I’ll definitely use something more robust like Photoshop or Pro Motion. I have yet to settle on a particular tool but I’ll keep playing around until I get comfortable with one, then I’ll just focus on working with that particular tool until I know it like the back of my hand.

I chose a pastel colour palette, similar to Adventure’s, and added more colours over time as I needed them. I didn’t test much, I just went ahead and drew the sprites as quickly as I could. Definitely need more practice in this area.


I used GameMaker: Studio because I’m most familiar with it. I’ve already made two simple games with it and enjoyed how quickly and versatile it was to prototype games in GameMaker: Studio. Bringing your ideas to life on screen as soon as possible is critical in game development, GameMaker: Studio is excellent in doing that and I’m definitely sticking with it for a while. Also, since I was making an “Adventure” style game, I also used Chris Sanyk’s Scroll_snap extension. Shout-out to Chris who generously gave away his extensions for free during Ludum Dare weekend. I’d love to make games in a “real” language someday but only if and only if YoYo Games goes bust or kills all further support for the engine.


I’ve not done any real audio work before. Even when I made my previous two games, the audio work was minimal, just sound effects and no music. This time, however, I decided to challenge myself and make music for the main menu and end screen after defeating the boss. I made sound effects in Bfxr (as usual), Audacity (first time using) for editing sounds and music with a new tool I discovered called Bosca Ceoil.

I must say, I had a lot of fun making some tunes with Bosca Ceoil. This was my first time trying to compose something pleasurable to the ears and it was very relaxing. It was the most enjoyable part of the game jam for me. The tool itself was super simple to use the five minute tutorial was enough to get me going. Many thanks to Terry Cavanagh for developing such a great tool! Will definitely start learning up on how to use DAWs properly for composition. Overall, this was a very positive learning experience for me as I’m a complete beginner when it comes to audio.

Level Design

I totally misjudged how much time it would take for me to make levels. I daresay it took me more time to design the 9 levels than it did for me to draw the sprites. Furthermore, due to my overall inexperience, I did not do enough research in Scroll_snap. I blindly used the current settings and ended up having to build large levels which consumed a lot of time and energy. I was brain dead and could not think of any other ideas. Also, I could have structured my code better for level design. Oh, and GameMaker: Studio’s level editor sucks. Lesson learned, definitely something to improve on.

What Went Wrong

  • I totally messed up my submission. 🙁
  • I need to be more creative in thinking up ideas and novel mechanics.
  • Overall inexperience leading to me struggling in level design.
  • Art skills need work.
  • Coding skills need work.
  • Audio skills need work.
  • Could have spend more time composing music.
  • Need to figure out how to function properly on less sleep.

What Went Right

  • I accomplished my goals and most importantly, I finished a game!
  • Choosing of tech: I’m pretty pleased with my choice of tech used for my first game jam.
  • Learning how to make music was invaluable. I’m now +1 on that front.
  • Having a better understanding of game development and how I can structure my process and workflow better.
  • I feel inspired to prototype new ideas now and have momentum to keep making games.


Submission mishap aside, I think I did decently given my relative inexperience. My goals were achieved and I’m so happy to have finished another game! I may or may not do another Ludum Dare as I feel incredibly stressed with the time pressure and it’s really tough to take part with a day job in another timezone. Who knows, I might be so skilled in my tools that I can make a simple game in even less time?

Download Crossbow Assassin at or Game Jolt.

[Play Crossbow Assassin]

Presenting Crossbow Assassin

Monday, August 29th, 2016

An evil monster has invaded your village, razed homes and burned everything down! Your fellow villagers have charged you, the local hero, Sam, with the mission of eliminating this evil monster, Josèphe Kafka, and his minions! Take your trusty crossbow with you as you enter his lair to complete your mission and save your village from his reign of terror! Be careful of his obsequious guards and archers and the smog from the constant burning!

[Play Crossbow Assassin]

I’m chuffed I managed to finish this bug-riddled mess of a game ahead of schedule. It’s been a superb experience for a first Ludum Dare. Now, time for some well-deserved sleep. I’m so excited to check out the other amazing games! Keep at it, y’all!

I’m In!

Saturday, August 6th, 2016

I’m in! This will be my first Ludum Dare and I’m so psyched to be a part of it.

Engine: Game Maker: Studio
Graphics: GameMaker’s in-game editor
Audio: Bosca Ceoil, Bxfr
Others: Coffee, pen and paper, music that’s 130bpm or faster

I plan to make a prototype that’s simple, fun and more mechanic heavy. It won’t have fancy art or audio because I want to try focusing on developing something with interesting game mechanics. Since this is my first Ludum Dare, the goal is to finish a game.