Disclaimer: I am not a professional game designer. I’m just a nurse with a bad case of ADHD who thinks constantly. Most of these ideas are definitely borrowed from other games, but my hope is that they’re relatively unique in the context of this style of game.
With all that being said, here’s how I went from a Galaga clone to the current design of my game!
Why Galaga?
When I first started, I was just looking to learn some game development because it’s always been something I’ve been interested in but never took the time to learn. At the time, I was building an MVP for a local startup and going through the backend course at Boot.dev (the SQL course), and I kinda lost interest in development. I started to slow down on the coursework, and the startup just wasn’t as exciting as I thought it would be. So instead of stagnating in my learning, I decided to learn fundamental game development.
I first started in C (I’ve since switched to Odin) because I was learning a lot about the DOOM engine and how revolutionary it was. I wanted to start with something that had already been done so I could use it as a model, so I chose Galaga. It’s a pretty straightforward game, what you see is what you get, but it’s still incredibly fun. My original thought was to throw my own flair on it, make it bacteria vs. antibiotics, set up a couple of levels, and call it good. Then my wandering mind took over…
The First Idea
One thing you should know about me is that my favorite game of all time, including my childhood, is Mega Man X.
Some of my earliest memories are sitting in front of a small CRT TV in the office of my parents’ gym playing MMX. Then, as a teen and a young adult, I got into speedrunning it (my fastest 100% run was around 45 minutes, not close to the world record, but I’m happy with it).
So I had the thought: what if I incorporated a weapon system like Mega Man’s, where some enemies are weak to one type of weapon? This works because in real life there are bacteria that are weak to certain types of antibiotics. So I thought it would be cool to have some way to flip back and forth between the different weapons that you can unlock, like you do in Mega Man. However, I never really found a way that felt right, so I scrapped that idea. It was hard to find a way to do the weakness system that made sense because it was either too specific and required medical knowledge, or too broad and really wouldn’t make a good system. So in the end I did away with it, but it was the one that got the ideas flowing.
Skill Tree
I love a good skill tree. The ability to create a highly customized build that fits a playstyle that you want to play is…
Well, today is a gif day, apparently. Anyway, from Path of Exile to World of Warcraft to Borderlands, I love highly customizable characters, so I was thinking about how to do that with ABX! I’m going to do a level-up system with a sprawling skill tree like Path of Exile’s, but unlike PoE, I’ll reveal the tree slowly over the first 10-ish levels of the first playthrough so people aren’t overwhelmed by all the options. It’ll also be a much smaller tree to start, since I only plan to go to level 50 in the game. Depending on the ship class you pick, you start in one of four different spots in the tree, and then you get to build how you see fit from there. I haven’t started on the tree yet, that’s in phase seven. so I have a bit of time, but I can’t wait to build that out and start playing with the balance of everything.
Procedural Generation
The thing with Galaga is that every level is hardcoded, so it is predictable and the exact same every playthrough, which, for the time and the hardware it was made for, completely makes sense. So I was trying to figure out how I wanted each run to feel unique, and then I remembered that seeded generation/procedural generation exists. What this lets me do is define a set of rules; then, based on the seed it’s fed, the generator produces a randomized draw from those rules. What this affects is what bacteria spawn, the formation it spawns in, how many waves per level there are, which buffs bacteria get, etc. Basically the entire game. This allows every run to feel unique. The hope is that this variability builds replayability. The idea with both of these systems is to build a small game with a simple set of rules that you can play relatively endlessly due to the variability in the formations and waves of bacteria and the custom builds.
The Jury Is Out
These are some decisions that I think would add depth, but I am not quite sure how I want to approach them yet.
Weapon Level Up System
I plan to have several different weapons to pick from, but I am not quite sure how I want to provide customizability to them. The one I am leaning towards the most is a level-up tree where, as you gain more kills with a weapon, you unlock more upgrades for it. I also thought about an inventory system, but I think that would be a bit much for my scope. The downside to the weapon skill tree is that there are more skill trees to manage.
Boss Fights
So the idea with this is to go from Galaga side-to-side action to a more free-range movement for boss fights. Think Asteroids-style movement. The issue is that, since I am using upscaled pixel art, the shapes might scale weirdly. I just have to figure that out. I plan to do it, but I am just putting it here because I am not 100% sure how it will work yet.
Endless Mode
Once you reach max level you are at the endgame, which, as I am planning now, is an endless mode, but to me that feels kinda dull, so I am not sure I want to handle it that way yet. So this is probably a huge TBD. It honestly might get pushed back until after I release the game, and then I will make more content as I get more ideas. Kinda like PoE released the game with only 3 acts when it first came out and then built on it. I am not working at anywhere near PoE’s scope, but the idea is the same.
The State of the Game
Here is what I think I have left to build before the demo:
- Phase One: Level and Wave Lifecycles
- Phase Two: Determinism
- Phase Three: Frame Pacing
- Phase Four: Clay UI Foundation
- Phase Five: Menu System
- Phase Six: Enemy Behavior Architecture
- Phase Seven: Skill Tree
- Phase Eight: Boss Fights
- Phase Nine: Adaptive Wave Composition
- Phase Ten: Cross-platform Release
- Phase Eleven: Documentation
To Wrap Up
I am in the long, dark tunnel of development where I just need to put my head down and work. I need to try not to get distracted by other projects or even another game idea (which I already have: a cozy rock climbing gym management game). I am happy with where I am, but I know I need to get to work lol. Until next time…
“A journey will have pain and failure. It is not only the steps forward that we must accept. It is the stumbles. The trials. The knowledge that we will fail. That we will hurt those around us. But if we stop, if we accept the person we are when we fail, the journey ends. That failure becomes our destination.”
Brandon Sanderson, Oathbringer