Wednesday, September 28, 2022

Back to the Bytes - With a NEW Game Engine!

It is September, 2022, and I am happy to report that I have picked this project back up.  To offer an explanation for a years' absence, and so I do not forget myself why I stepped away, I want to memorialize the reasons here.

Back in July of last year, I had managed to fix the issues I had with chunk edge lines.  Once I completed that, my intention was to keep working on the map and also start coding an inventory system.  That was simply not to be.  I was getting updates to various third-party packs from the Unity store, when I started experiencing breaking changes.  Those are typically rare and I knew that.  However, they required some real under-the-hood digging to fix and I was frustrated about the need to.  Around the same time, I started picking up chatter on Twitter and other places about this open-source game engine called Godot (pronounced "guh-dough", not "go-dot").  Anyway, I started reading up on the engine, not with serious intentions, but just casually to see what all the hype was about.

Along about the same time, yet another distraction had me.  I was heads-down into Valheim, a Unity-based sandbox that needs no real introduction.  That game really pulled me from my game development time.  I loved it.  I hated it.  I loved it again.  It was something that made me step back and re-evaluate the game I was making and the reasons for making it.  

Let me interject a thought right here for anyone reading who aspires to be a game developer.  I don't have any published games under my belt, so take my advice in that context.  But what I do have is 18 years of real-world software engineering experience developing world-class business software.  I am a software engineer and I plan to retire doing what I do.  Having said that, let me also say that game development is NOT easy.  In some respects it is much harder than what I do every day.  But what I wanted to say about being a game developer is just this.  Don't set your sights on money.  Let your day job take care of that for you.  Don't make a game with the thought that making money is the goal.  If you are one of those (like me) that salivate at the thought of making the, "game I always wanted to make," do not let money be the motivation. Forget about hoping your game will be the next Valheim, or the next Minecraft, or the next anything.  Maybe it will.  But likely it won't be.  Instead of that as your motivation, make your game for the love of gaming and the joy of creating something special.  Make it because YOU love it.  My wife tells me all the time that she has absolutely zero expectation that my game will be anything but a hobby I enjoy working on.  If it makes me happy and helps me unwind, she is happy for that.  You know what, there is a ton of wisdom in that.  Let me tell you, not only does that help me not to feel like a failure when I need to step away, it also takes a load off my mind trying to justify the time-sink that is game development.  But it also helped me to understand what my priorities ought to be.  I don't need the game to take care of my family.  I don't need the money it may or may not generate.  I don't need this game to succeed.  It is a hobby, something I enjoy thinking about, writing about, contriving about, and working on.  I just wanted to share that.  Back to my excuses...  

Problems with Unity coupled with this buzz about some game engine that people can't figure out how to pronounce, and a sweet success called Valheim literally caused me to push away from this project.  And so, dormant it sat on my development drive waiting for my ultimate decision going forward.

That decision came to fruition over a month ago as I started thinking about all the pixel art I wanted to do for the game.  That is always my fallback and I typically regain interest as I create art and document game mechanics. I have literally 20 years of documentation on a game that doesn't exist. It's true.  I went back to the art first, adding new images for new things and growing my library of pixels under the single theme of survival.  Doing artwork is also extremely relaxing to me.  That led to me thinking about the broader themes and setting for my game.  I needed to settle on something.  I have really wanted to zero-in on a theme or historical period so I could have a more focused picture of the end-goal for my survival game.  After some thought, I believe I have found the setting and time period that holds my interest for this game.  More on that later.

I knew I needed to confront my Unity project issues.  So, I opened my work in Unity and downloaded the latest updates.  It was all the typical housekeeping.  But once again, I was met with more broken code and  less desire to fix it.  Third-party assets are great and all that, but ultimately, you are stuck with them.  Meanwhile, I had been hearing that Godot 4.0 was just around the corner.  I knew if I switched engines, it would mostly erase over a year of work.  I knew I would need to learn yet another development environment and yet another language.  But then I thought it might just be the reset I need to get me focused again.  I made up my mind I would wait until Godot 4.0 came out and then I would experiment with the engine and see how it felt.  That was about 5 weeks ago.  

Somehow, I talked myself into downloading Godot 3.x so I could learn GD Script, I think was my reason.  I installed it and began to poke around.  This Node tree thing... It was ridiculously simple, yet wholly profound.  Of course, my attention was immediately focused on the Tilemap node.  It took me every bit of 5 minutes to have a scene with my tile art in it.  My interest grew daily. DAILY!  I couldn't stop thinking about the possibilities of having an open-source game engine that actually made sense to me. I read that c# support was available, but I determined not to use C# (my daily staple) and instead focused on GD Script because I knew integration with the game API would mean I could pick up the nuances of the engine faster.  The speed at which the language was entering my mind and exiting my fingertips made me giddy.  Seriously, Godot has impressed me to no end, and I only just started working with it in the last few weeks.

My mind was made up rather quickly and solidly too.  Unity, for all its popularity and power, would not be the engine I would use to develop A Struggle to Survive.  Godot is my pick.  I don't even care that I have to start over.  I know I will catch up to where I was in much less time than it took me with Unity.  All the best Unity, but I bid thee adeau!  Welcome, Godot, to A Struggle to Survive!

Title Screen Concept - Godot Engine
Thanks for reading.  Until next time....

No comments:

Post a Comment

Feel free to leave a comment. All comments are moderated.