TechBlog

Welcome to the jungle, we’ve got code and sadness.

It was a given that programming was going to be the bane of my existence for this year. As someone who didn’t really do code, my first idea was to reach out to see if anyone with skill could join my team to make Arlo happen. When I didn’t get a programmer, the sense of dread hit me pretty early on. Fortunately, Arlo shaped into something that could teach me the basics of 2D game programming.

There were quite a few things that I’d touched upon in the past in game jams and stuff but hadn’t really learnt when it came to programming. So I had to figure out movement, UI and various other bits and bobs to put together the game. Most of it went off without too much issue but it’s safe to say that that was down to the help I got from my housemate Benedict.

Fire Mechanics

The biggest issue we ran into was the fire mechanics. Here’s the basic process (as I understand it).

  • Hold down the mouse button
  • The flamethrower shoots out a bullet at a random rotation between 2 points.
  • A number of layer masks spawn off of each bullet in random locations around it as it travels.
  • Attached to those layer masks is a fire particle effect, so it looks like it burns the layer away as it works.

This all sounds fine, however, once you’ve spawned over a thousand layer masks, the game does get decidedly choppier (especially if they’re all in one place). I, therefore, went to James to see if there was anything that could be done about that.

Without completely redesigning the entire system (Something that I would do if I were to bring Arlo forward), the answer was an unfortunate no. Some changes that could be made include lowering the number of layer masks that are spawned per second, this, however, damages the look and feel of the fire. The same issue occurs if we lower the number of bullets that spawn off of the flamethrower.

UI Scripts

It’s safe to say I underestimated UI, it’s important to note, moving forward that something that seems simple in Unity, usually isn’t simple at all. I had assumed at first, for example, that if you put a button element into unity, and attached a script to said button, telling the button to do something when it was clicked, that it would do that thing. This is incorrect. I came to learn that the real way of setting up a button is to make the button, import the graphic into the button, turn off the text processing, drag the button from the hierarchy into itself, attach the script that does the thing you want the button to do and then find the script in the on click function.

My GitKraken Process which can no longer be pushed due to Bugs

Throughout the process I kept everything up to date using GitKraken, it saved the project one time when I accidentally deleted the game scene and had to push back.