Dev Journal: Right in the Face (Patreon)
Content
Far too often, I let these journals get delayed too long because I'm not happy with where I am right now. I want to have good news for you guys, and even if today was rough, maybe I'll finally crack it tomorrow. That pushed this out a lot this time around, but at this point, I could probably just use the catharsis of talking it out. And who knows, maybe it will help me get a little perspective.
In my last Dev Journal, I explained that I'd been exploring some off-shoot possibilities, but it was time to start focusing on making the eventual AI overhaul less of a bear to tackle by taking off some smaller pieces of supporting tech and getting them done first. I had so many options of varying levels of difficulty, importance to my own long-term goals, and importance to the player base, that it was getting pretty overwhelming and I had to really break it all down, write it all down, and try to put a number on things to decide where my time was best spent first.
I did explain that I was moving my focus to the GUI for now, and teased a bit about what that might open up. What I didn't mention was that the GUI itself was becoming a bit of a problem in the backend: it was becoming more and more code-intensive, and it was turning my central control file into a monster to navigate. So there were three parts to upgrading the GUI I wanted to hit:
- Migrate all GUI management to its own file.
- Implement a proper system for separating and delaying output from the inner workings so you can have a smooth, animated playback and minimize memory spikes.
- Add a visible Turn Queue to help visualize turns and the "time" your actions take.
Note that this doesn't even cover the shenanigans with controlling other characters-- but when they're all in place, at least a simple version of that would be possible. But if you wanted to have multiple controlled characters at a time, then the system would need a pretty huge upgrade to allow multiple "places where people can actively be," and that would affect pretty much everything. That's an important support tech for AI, though. So in other words... all this GUI stuff (while hopefully a decent visual [and visible] upgrade for players) is just laying the groundwork for a tech that will itself be helping support the eventual AI Overhaul. Lots to do!
Which is why it's frustrating that this precursor to a precursor has taken so long. I'd picked it for a shorter chunk of work, and that hasn't worked out. Well, there are a few parts to that.
Firstly, I was just getting really into the thick of changing everything around and building new systems when I finally got Covid. And honestly, I'd heard it was bad, but I kinda assumed it wouldn't be that much of a problem. It...was.
Besides having a few close calls with my own mortality, I wasn't expecting the effects to linger for so long afterward. My head felt foggy and my breath short long after I recovered from the worst of it. Honestly, I'm still kinda feeling less focused than I used to, even today. I've just been trying to push through and shake it off best I can.
Problem being, I hadn't left off at a very good stopping point, especially for trying to pick up the pieces in a compromised state. I tried to get back to work as soon as I could, and in my befuddled state I think only made more problems for myself in the long run, trying to build and expand things when I could barely think straight or remember what I was just working on. I've been chasing down bizarre problems all over the place having to fix things that leave me exclaiming "what was I thinking here??"
But the GUI is in its own file and working fine now, and the Turn Queue is built, and the delayed output is... working. It's been a trial. I had to learn a lot more about how Unity handles time-based operations and how objects are handled in the display-- even just rotating things is surprisingly complicated, with the code and the engine UI behaving differently, and values you put in silently changing to a different system when you try to read them back. When I finally got to the point I could actually run and test things, it became a slowly unfolding labyrinth of problems where every solution revealed two new, even more baffling issues.
At this point, things are working well about 90% of the time when you run the game. It's still just a matter of time before it starts doing strange, utterly inexplicable things that might make one suspect infernal possession or the like, but it is not constantly doing things wrong, so I'm happy with my recent progress.
Hopefully this means I'm close to being done with upgrading the GUI! But for all the headaches it's been on my end, I feel like it will not justify the time v0.04 has taken cooking, not even if you discount some time for illness. It is visible to the player as a change, but it's not really a reason to come back and play more on its own.
Thankfully, there are a fair number of changes and additions that have been waiting in the rafters for a moment like this-- stuff that (hopefully) shouldn't take too much time to actually implement, just that I don't consider it very important to the game's big goals for getting to a better state overall. But stuff that players would be excited about!
I wasn't sure which would be best, but I realized this would actually be a good time to go back to doing something else I've let slide for too long! If you're reading this, you're supporting at the Voter tier or higher, and it's past time we have another little vote. I'll be putting together a list and posting a vote in the next few days to let you guys vote on what bonus feature should be added to v0.04 to make it a little more exciting! Suggestions are welcome if you want to drop a comment here or the like, though I'll only put things on the list that I could reasonably get done in a fairly short time. I don't want this to be adding any significant delays to getting v0.04 out the door!
So keep an eye out for that vote coming up soon! Fingers crossed, v0.04 is in its final leg before it's going out there. I really hope the GUI upgrade makes the game feel more fun and professional, it's the first time I'll really have an animated element of sorts in a game. I just want it all to be worth it in the end, you know?
Cheers!