Postmortem - 18 Circles

Note that this is slightly spoilery if you haven't played the game!

Things that went well

  • Its so important to let an idea sit in your brain for a while. I thought about doing a radial platformer (given the circle theme). Found out about Circa Infinity which has a super cool aesthetic.  But I wasn't a fan of actiony bloody setpieces in games, so the blood theme was kind of offputting to think about. Sat on the idea a bit, grabbed some breakfast, took a walk, and a flash of inspiration hit me - an image of blood dripping down into the centre of the world (albeit somewhat creepy come to think about it). Linked that to the mechanic of karma and the whole mechanic clicked into place.
  • Having a great idea that inspires you can be a great motivation to complete. Before settling on the idea, I was somewhat reluctant to start. By the time the idea was complete, my engine was raring to go and my brain was already thinking of all the mechanics available. Do something that excites you - that will help tide you through the punishment of the 48 hours to follow. 
  • Know your limits, but push them a little. Having no experience completing a game, and having never done a platformer before, I wanted to try it but putting a twist (radial platformer) to it to challenge myself a little. Plus I have a rough sense of how to do it (after seeing Brackey's Shrinking Planet concept), why not! 
  • Sticking with a simple set of colors that are functional. With time not being on your side, you want to limit your color palette as much as possible, and also make it functional so that it visually helps the player rather than hinders. Circa Infinity looked really cool with a limited palette, but the cool bit was that enemies would glow red if you are in danger of hitting them. 
  • Spend time to fine tune the core gameplay. Especially in stamping out game breaking issues. In a platformer, there's so many things that can go wrong. There were missed key presses (game not detecting character was grounded), there were issues with bullets hurting the player if the player runs fast enough, and with a radial platformer the collision detection was a real head scratcher. I also spent some time making sure that the creatures bounce at the right height by tweaking the gravity applied.
  • Be prepared to discard stuff that are not essential. I was sidetracked in learning the masking layer to implement blood splatter in the game, but after struggling to make the masking layer scale up, I abandoned it entirely. Early on I also thought of having the usual platformer suspects: spikes, moving platforms, switches, conveyor belt. Without time on my side in the game jam, those ideas were nuked as they weren't useful for the theme. Health containers were cool and easy to implement though!
  • Devcheats are useful tools. Just need to remember to turn them off if the game ends, or bind them to a key the player wouldn't press (like the 8 key for this game!)

Things that weren't so well

  • Familiarity with tech is really important - Was not familiar with GMS2 at all and the tutorials online were split between Game Maker, Game Maker Studio and GMS2. Still, it was interesting to learn something within a short span of time, and its a testament to how easy GMS2 is to pick up and use. Some aspects are a little challenging to understand though, like "with(other)" and initializing objects. Then there was wrestling with the video capture software, and being confused on how to upload stuff to Wasn't adept at using BFXR too and couldn't locate the right sound for water dripping.
  • Always create a test scene in some art program to visualise the final outcome  before doing any major sprite animation and scene work. I fell into a huge trap halfway in the game making - It was time to replace the placeholder sprite that I had as my main character which was all white at that time. Then I went to Pyxeledit and made the main character sprites, which took a lot of work with the pixel art. After putting that into the game, only then did I realize that I colored the main character totally wrong - he was white and outlined in black, but with the gray background it was hard to make out the limbs and the body. Ultimate fail right there! Fortunately there was the color replacer tool in Pyxeledit but I still spent a lot of time changing the black outline to white. This could have been averted if I did a test scene with my main character sprite before doing all the spriting work. This is also useful to get proportions right, and to see if there are any clashing elements in the design.
  • Pixel art is hard work. I ended up getting my right finger cramped on clicking the mouse. Pixel artists - how do they survive?
  • Don't underestimate the time involved in debugging. So many bugs crept up, and its a case of when you stamp out a bug, a new bug crops up. Playtesting was vital but yet I did not manage to playtest to completion, so the final implementation was still kind of buggy. 
  • Getting someone to playtest is really useful. Some things I was totally blind to and only realized after uploading. I put "Press start to play" in the main screen, totally forgetting that its a keyboard that the player is going to be using! Balancing is also key and if you create a game, you naturally assume a lot of things that new players will find hard to understand. Realized later on that a ducking action could be implemented easily and help with the gameplay but it was too late to implement.
  • Not having enough time to apply more polish at the end. Would have loved more particle effects in this, but didn't have time to learn the particle system. Animation was lacking. Needs more screen shake too. Audio is also one aspect I neglected until the end and it felt kind of half baked as I was already in dire need of sleep at that time and just couldn't be inspired to create something that sounded more complete. A good game jam schedule mentioned by others was (1) having a workable fun complete game by day 1 and (2) applying polish on day 2, but I was still adding and fixing mechanics on day 2.
  • Spaghetti code. They say it's ok to do that in a crunch like a game jam, but sometimes thinking things through before implementing can save you tons of time down the road stamping out game breaking bugs. Code defensively, declare those variables nicely and test every step of the way.

Tech tips (more for my own notes)

  • Pyxeledit - put your background color as a layer at the back and test that contrast right away. Also, pressing control while dragging a selection moves it. 
  • Inkscape - always check and double check the resolution and export settings when exporting and remember to click Export.
  • GMS2 - to debug positions, create an instance that spawns on the position. 
  • Bosca Ceoil - this is an amazing program in the right hands, but i need a handy list of instruments that don't sound too scratchy

What to improve

  • A ducking feature tied to the down button 
  • More juice, particle effects, screen shake, zooming/scaling effects
  • At the end level, to make the circles to form a nice uniform circle. Also make the boss' final form shoot out uniform bullets sensibly.

Get 18 Circles

Leave a comment

Log in with to leave a comment.