Tube Fighter: The postmortem

(A link to my game, the full DevLog,, and a few YouTubers are at the bottom of this post)

Over the last week of January, I participated in my first Game Jam, Weekly Game Jam 29. For those unaware, a Game Jam is a competition(although this one was very casual and non-competitive) in which you have a limited amount of time to develop a video game based on a theme given to you. For week 29 the theme was Tubes, which I interpreted by creating an arcade-style action game, Tube Fighter: The Tubening, in which you use tubes to fight off waves of enemies who are as well armed with tubes. This was the first “Game” I have ever finished, and despite all it’s faults, I am very proud of what I have accomplished. Though pride in my game shall gain me nothing, only by tearing apart the game, the process by which I created the game, and overall the decisions I made while creating the game, will I gain anything from this experience.

I have been learning to programme for a few months now, using online resources like MOOC’s and certifications, but up until a month ago, I was primarily focused on learning to develop Android apps. Throughout the time before this Game Jam, I had found my interest in Android, and Java, to be waning. Slowly I was losing interest in programming, despite the energy and desire I originally had, I could no longer sit for hours and push myself to learn more. Realizing this I reevaluated my current goals and changed both the language I was using and the product I wished to create. Having been interested in video games from a very young age, it was only natural that my second choice after Android apps would be games.

I began experimenting with creating games with the engine LibGDX but found that with my limited programming experience (less than a year at this point) that LibGDX was far from intuitive. At this point, I searched the internet for other game engines, I ran into quite a few, but eventually decided on using Unity. Immediately the UI and ease of entrance (but hard to master!) attracted me, the only issue was the language of choice, C#. At first, I was worried about having to restart all over with a new language but found that plenty of what I had learned in Java carried over. With a few changes in how I wrote and a few new concepts added to my knowledge, I was ready to write in C#.

Leading directly up into the Game Jam, I had accomplished very little with Unity. I had a few small demos working, but nothing that could be considered a game. With no time constraints given to me, my discipline wavered and I would spend hours watching tutorials and testing out ideas just to end up where I had started. I needed something to light a fire under my ass to push me further. It was at this moment I found mentions of Game Jams on Reddit. I had a vague idea of what a Game Jam was before this but had never researched into the topic. After doing a little digging I found a Game Jam that seemed to fit what I wanted to do perfectly.’s weekly Game Jam.

My constraints were simple for this Game Jam, I had 7 days and a theme to follow, basically, everything else was allowed. Despite this, I still choose to not use any assets I didn’t create besides a little post processing and an explosion asset because it was added so late in production. This was a daunting task for someone who had never completed a game, yet alone any real software, but I was determined to face this challenge on head first. First and foremost I set out on creating some sort of simple schedule to allow for better time management. And that is where I learned my first lesson from Tube Fighter, always plan for the worst, not the best. I was extremely overconfident in my ability to complete sections of the game, despite those sections requiring me to spend vast quantities of time researching and learning new concepts. Next time around I will be very gracious with the amount of time I give myself to complete tasks.

Digging into the actual development of the game I quickly realized that I was going to have to speed run learning, and implementing, all steps of game development. I started with 3D modeling to create a simple player model and tube to use as a weapon. For 3D modeling, I picked Blender 3D, a free and open source modeling software. Two things I will always support! I watched many a tutorial and slowly started to grasp how to use Blender. Looking back on the process by which I created these models, I will change everything on my next attempt. I had no idea how to model with a guide image in the background, I didn’t understand all of the easy to use shortcuts, and I had no idea how the rigging system really worked. Having more experience in Blender should lead to better models in the future.

Having created the models I was going to use, I moved on to programming and implementing the game mechanics. I blindly coded onward slowly implementing one thing after another. I wisely enough had the foresight to at least write somewhat of a skeleton plan on what I desired to accomplish. As well I usually focused on finishing one feature at a time, only moving onwards if I was truly stuck and the feature wasn’t critical. Looking back, I could’ve used a lot more organization and comments/clean code throughout this time. As time went on, and the lines of code increased, I found it harder and harder to quickly read through where I was, and what I wished to change or add. On top of this issue, my project lacked any good form of code structure. All future projects will have a longer planning period, review periods every day, and some time spent on structuring code, to maintain some level of organization and cleanliness.

Now we come to the final section of development, game testing and polish. In total, I had around an hour of time spent on game testing for Tube Fighter. To make matters worse, I spent much of that time only playing for a few minutes to test out a specific issue and then returning to “fix” it. This lead to no one play session where I played for more than 5 minutes, this ultimately was the reason why many of the bugs in the game made it into the final product. Now, with only a few hours left until the deadline, I moved on to some last minute polish I wished to add to the game. I created some music(though I only spent 20 minutes on it, I had originally planned for a few hours a day before to be spent on music and sound), added some post-processing, and changed a few stats till they felt right when playing. Any future games will have much more of the time dedicated to this crucial final step, as well I plan to spend as much time as I can playing the game without trying to tweak everything as I encounter it.

This week has been more than just a journey of coding and development, it has been a journey of self-improvement and self-discovery. I have learned new skills, sharpened ones already known, found ways to improve my mental habits on productivity, discovered more healthy ways to deal with myself, and reached goals I once thought impossible for me. At this point, I can already feel the addiction for Game Jams setting in, and cannot wait for the next one I decide to join. I wish to thank all my friends and family who played the game and gave me time to rant, thanks to the many YouTubers I watched that helped me learn, and last but not least, thanks to the weekly game jam community for inspiring me to attempt this Game Jam.


Tube Fighter: The Tubening:

DevLog: (who would’ve guessed?)


Brackeys –

Sebastian Lague –



One thought on “Tube Fighter: The postmortem

Add yours

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

Up ↑

%d bloggers like this: