Release v 1.0


So, this is the first project where I've started from nothing and actually completed it. I've been programming for about 10 years and most projects I pursue, I've dawdled on or eventually gave up on them because they were beyond the scope of my abilities at the time. I think working on a game jam, which has a limited release date, really helped to fix that problem because there's a constant pressure of needing to release your game on time.

With that said, because there was a required release date, I did some things I wasn't particularly proud of, particularly with my code. There aren't very many glitches in the game, at least nothing that I experienced in the first launch build. However, the code behind it is an oversized hacked-together plate of spaghetti with co-dependencies and large systems that are too complex considering the size of my project.

Composition over inheritance is a wisdom that's been long passed in the game development circle. I favor it myself and that is why I used it here. However, I think that if a game only has about 4 different objects, then using polymorphism is not only just fine, but also preferable. As it stands right now, I have an arcade game that can be beaten in less than a minute, and it took me over 8 days to make, when it could have taken me 5 days if I just used simpler programming patterns. Then it could have been a lot more polished. 

Regardless, despite having played around with Unity and C++ in the past, I have never completed a project, much less from scratch. So I am proud that I was able to get things like an Entity Component System with a working physics engine and collision detection up within 3 days. After that, I spent the bulk of my time doing some minor polishing on my code and working on the enemy behaviors. I think the biggest bottleneck for me was the animations, as I have never had to handle animations from scratch before. And there aren't many resources online that teach you how to do it efficiently. So I had to devise my own system for that.

Near the end of the project, I started cutting corners, doing things that I wouldn't do if I were working on my own time. Collision loop is fundamentally flawed because I'm iterating over each entity instead of doing it in pairs? Well, got no time to rewrite the loop, just gotta make a workaround and set flags for the next update loop.  

Overall, I don't have any regrets because it was a huge learning experience for me (and a small milestone). If I were to do it again, I would either make the codebase a bit smaller, or I would reuse some of the code I have in this project as a framework for the next one. I understand why most GameJams are done using premade engines, and I also understand why lots of AAA games are released with tons of cut content and minor glitches. Eventually it dawns on you that you won't be able to implement your original vision within a reasonable timespan.

I hope you all enjoy the brief minute of gameplay Running Gun has to offer. I will continue programming and hopefully come out with another small project that's even better. :)

Files

Running Gun.zip 1 MB
May 17, 2020

Get Running Gun

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.