Hello hello hello! Hello all and welcome to an ACTUAL Month in Review, model: April. I’m excited to be able to cover all the things that went on this month, because things actually went on this month! Let’s get to it.
Pivot, pivot, pivot, pivot, did I mention I pivoted?
Yeah, so, rolling back to March, the lost month, I spent a long time taking stock of where I was at and what I was doing. In some places I truly considered if I wanted to continue pursuing the indie-dream™. I was fully out of all of it, and really wondered to myself if I even wanted to endure any more uncertainty, and doubt, and stress, and pressure… I cover it in my February in Review, but I also reflected on all the possible projects I could do, considering their scope, and viability, and landed on a little mobile clicker. I had the gameplay loops concretely figured out, there was no need to creep the scope any bigger than it already was, I was good to go, I thought.
Well, I just didn’t have the momentum behind it, I was uncertain about mobile, and what to build it on. So I ended up pivoting from there. If you know a creator, you know it really sucks to announce you’re going to do something, only to drop it for some other idea by the time you talk to those same people. And boy was I flip flopping.
So I’ll take stock of the stock I was taking stock in over the stock I was taking.
The root of the goals I had was that I wanted to work towards a tangible goal that may lay a foundation for an ongoing revenue stream. Something that is concrete and not relying on the abstract interests and enjoyment of an audience. Lately I’ve been very systems focused and haven’t been able to muster much of my creative, mushy-gushy, voice. So of all the things, I fell back on a long time goal of trying to recreate my toolset that I’ve built, and aggregated, on Unity in the Open Source O3DE engine. What drew me to this project is that the task at hand was directly creating tools and functionality I’ve proven out and already have in existence, making a tangible product that either works or doesnt, and isn’t beholden to the feels of anyone, and works towards building me a foundation of value in being better able to create projects on the engine for future projects that WILL be reliant on wishy washy feels.
That’s good enough for me.
So right out of the gates, the first Monday I had with my cast off, I went to work. I was determined to face this head on, which meant I needed to break through on using the C++ side of the engine, along with making sense of the most preliminary systems necessary for actually working with the engine at this depth: Creating gems, creating components, and using “Reflection” to cause the C++ side of things to appear in the engine’s editor interface and scripting tools. I was daunted, to say the least, but I just brute force slammed up against that wall and worked my way through it. That very first day washed me in creative, problem solving, bliss. All of a sudden all the reasons why I’ve ever been interested in making games and programming came crashing back in, and I quickly lost all doubt that I had gathered in my questioning whether I wanted to still do this these past months ago.
Okay, great, day one, what else did you actually do?
So the next day I had a crisis, I was exhausted and couldn’t get things to work, the day sucked, I was uninspired and doubting myself so hard.
Survived the day, went back at it the next, as you should always try to do. And slowly started chipping my way past these hurdles, making vague incremental progress in my understanding, and slowly getting things to work.
Something to know about C++ programming, is that unlike Unity and C#, you have to fully compile the code to be able to see it in the editor or find out if it even works or not. That takes about 2-4 minutes, EVERY TIME, before you’ll find out that it failed mid compile and you have some fixing to do. This is an arduous thing to deal with when you’re really really bad at C++.
But I pressed on.
Slowly but surely I’ve been able to chip away at my first ‘gem’: the GS_Play Core gem. One that provides base system functionality, alongside common utility that all other gems will stem from. One really significant one is the Save tool. Because this will be a fundamental system, ALL my other systems can use a common method of saving, allowing me to implement saving across all my tools which provides added value and utility.
Throughout this initial journey, as I’ve hit hurdle, and struggle, and frustration, I’ve been further motivated by the value these tools will provide developers. Every bit of work I abstract away from the boiler plate C++ stuff becomes ease of use and immediate utility towards prototyping, jamming, or building up complex gameplay that will ultimately extend beyond the toolset. Even by extending beyond the toolset, I am laying the groundwork for intuitive reliable patterns that developers can expand on, rather than having to recreate systems from scratch just to get beyond the initial bounds of the tools. Very cool all around.
So here I find myself, one month in.
It’s looking like I’m in the final throes of finishing this Core gem. I have tackled the brunt of my Documentation needed for the tools, which adds a feeling that this is an actual product, rather than just some messy work that’ll never see the light of day. I have some demos to create to convey the functionality through examples, and with those final bits wrapped up I am able to try for a second gem, and toolset. Getting to the point of being able to do a second round of this work feels so surreal. There was that feeling that I’d never get to the end, and thus not ever be able to re-apply what I’ve learned in this first pass, but here I am, and it’s a pretty cool feeling.
From here on out I will be building out tools, relating them to the functionality I had in Unity, testing them against the Core package, and continually updating that one to best support the suite of tools. With some time I’ll be able to actually show off some visually tangible functionality, and even open up the possibility of making games, far easier, within the engine. Should be pretty cool!
Here’s hoping for a growing body of work, growing comfort and ease in developing these tools, and more months to review! Thanks for reading!