As life begins to stabilize I find myself wondering just what I want to do and not do going forwards. My ai work continues and has met with rapid (unsuspected, to be truthful) success but variety is the spice of life, right?

I took a long hard look at the dozens of different fields of interest I've dived into and eventually discarded during my life, picked the ones I enjoyed, ignored the rest. Game development was one I found challenging and engaging. It just had so much baggage that I eventually got fed up with it. Can I somehow take the parts I enjoyed while rejecting the ones I didn't? Yes I can.

First major issue, I despised modern game engines. Despised them. Unity, Unreal Engine, etc. Outstanding pieces of software, unparalleled when it comes to enabling indies to reach studio quality, amazing at scaling from a single developer to large teams. And the very opposite of my workflow, entirely based around visual interaction and bloated beyond belief. Not to mention that they're closed source (with some NDA-ridden exceptions) which also means that the foundation you come to rely upon can be yanked away at a moment's notice.

A few years ago I began poking around open source game engines for a non game related project, I just needed 3D visualization in a sensible way. Stumbled across Godot which was open sourced and has met with success as developers fund its development. It hit all the chords on the harp of my digital life, especially now with the 3.0 release.

Open-source

Can be operated from the command line

Does not require visual interaction but offers it as an option

Offers third party language support

Complete featureset yet none of the bloat

Exports to all major platforms

I'm not going to go through all the reasons why I opted to discard unity, that I had previously been a fervent advocate for, in favor of godot. The major one is that during my 31 years of computing I've lost track of the amount of times I began relying upon a piece of closed source software only to have it get discontinued, sold and restricted, abandoned, lost its developers or generally became unavailable to me. Every time an os or application rises to fame its advocates will arrogantly proclaim that it will always be around and you're crazy to think something this big would fold. Yet it always does. When you're on top there is only one way to go. I will never be put in that position again. Ever.

So, said and done I began going through the plethora of notebooks I had shelved with game ideas. Problematically none of them tickled my fancy. Shooters, adventure games, arcade types. Meh. So I took a look at what games I currently play and realized I had only played interactive fiction games for the last few months. Toying with the idea of turning some of my unpublished fiction writing into a game I eventually rejected the idea, I don't particularly care how many will play my future games but I don't want to alienate people to the point of having to learn the quirks of an IF interpreter.

But the notion of a non-graphical game really appealed to me. For the last few years there's been a bit of a revival in the text game genre, to my personal great satisfaction, not to mention the fact that the IF scene never died. Could I make a non-graphical text game that wasn't so reliant upon text for player interaction? Seemed absurd but then it hit me.. all my ai work was exactly that.

The plot of a story I wrote almost two decades ago struck me, self-awareness without sentience. Now now, I claim no ownership of the concept, I'm fully aware that we've all read the stories that predate my version by decades. But maybe, just maybe, I could twist it to fit my own vision.

Going forwards I'm going to be tight lipped to the story itself, instead I will just detail general development work and how I get along with Godot. Initial reaction? Positive. Switching to Godot from Unity was like changing one pair of gloves for another, they both fit equally well. There's quirks to both and a slightly different workflow but it's pretty much the same.

This week I've been putting in time whenever possible and managed to crank out a prototype, I will detail it further in future posts but here's an initial (functional) prototype screenshot.