It takes a village…
Shortly after promising myself that I was going to work on one of my game ideas I began to get overwhelmed with all there is to know about game development. I held steadfast for quite a while before one day when I was standing in the TSA check line at the airport watching this video on scriptable objects that I finally cracked.
I have the concept, fleshed out mechanics, storyline, and rough UI designs. I’m working on soundtracking and audio design for the whole game. I can’t wait to create a promotional site and focus on some grass roots indie marketing once I’ve got something substantial to show. Is it too much to ask that someone help me with the actual coding of the game?
So I did what any modern problem solver does and took my issue to reddit. I made this post on both r/GameDevClassifieds and r/INAT (I Need A Team) and surprisingly the DMs started to pour in. Also surprising was the content of those DMs.
Most folks had never done any form of development before, or were trying to convince me of changing conceptual things like making the game web browser based or tacking me onto their existing project. I know beggars can’t be choosers, but because this is my baby and a part time gig I don’t plan to make much, if any, money off of I felt I could be a bit pickier with my selection.
Two different guys seemed to fit the bill and once I shared more of the concept they got excited about it. I didn’t expect this to happen so quickly so I hurried to create a team in Unity and populate a Trello board full of actionable tasks. It was really happening.
When our powers combine
We started breaking up the work assignments and for the first time I realized that the ideas I believed to be “completely fleshed out” were lacking clear, actionable substance. That’s when I got serious and started cranking out detailed requirements. I also have a tendency to noodle around when I’m learning something new so that’s how I ended up with detailed flows (some animated!) to explain how certain enemies and projectiles could work.
This was the fun part. The main thing I love about designing is dreaming of the possibilities and combinations we can create once these fundamentals are established.
Eventually I realized the guys on my team may not have been as experienced as they had claimed. When talking about bullet patterns one night I came across a ton of bullet hell assets in the Unity store and after researching each one I decided on using Uni Bullet Hell.
My thought was, let’s not reinvent the wheel – let’s reuse components that other people have perfected so that we can focus on what is unique to our game. But pride got the better of one of my guys and he refused, stating he wanted to code the entire thing from scratch using no outside assets. If I’ve learned anything from web development it’s that this is a silly and highly inefficient view of programming.
Here I Go Again
Long story short, I kept butting heads with this one guy and the other guy was trying to manage life, school, and a job and just couldn’t commit any time which led to our little team falling apart. I was pretty bummed. All this time and effort down the drain…
Until I realized something.
The mechanics were actually fleshed out this time. The foundational concepts had been thought through and at least had a first draft of how everything should work together. The layout of a demo level was there, frame for frame. The tasks were well groomed and laid before me, ripe for the coding!
So now it was back on my shoulders, but with a renewed sense of confidence that I could actually do it. And I’m going to do it my way. So I sat down and researched. I looked at scripts and tutorials that could help me achieve the functionality I was looking for and weighed it against assets from the Unity store, being conscious that I need to be very intentional about the ones I picked so my codebase doesn’t get bloated.
It seemed like there would be two pretty complex mechanics that weren’t unique to my game. First would be creating interesting and flexible projectiles for both players and enemies. With the mount-swapping system, mount-specific abilities, and making an effort to have the projectiles feel unique to the level I needed an asset that focused only on projectile formations and made it easy to swap/combine and customize the look and feel of each one which is how I landed on Uni Bullet Hell (henceforth referred to as UBH).
Next up would be managing waves of enemies and obstacles. I needed a way to pool the game objects and direct when they would spawn and trigger actions to delay or move to the next wave. I landed on Core GameKit because it seemed to be fantastic with the wave control but also came packaged with object pooling functionality that integrated with UBH.
Equipped with some powerful assets and a clear pipeline I started a brand new project and got to work. Let’s ride.