Alright, well, except one…
I had built this options menu that was tied exclusively to my main menu. The main menu and the options menus were all tied up in one another, they shared the same scene, they were totally linked.
But I wanted to be able to open my options panel in the middle of the game too. The options don’t do me much good if I have to fully leave the whole ass game to use them.
So I extracted the entirety of the options stuff and put it into its own scene so that I could modify it in isolation – then I put that scene into my global autoloads so that any scene can make use of it – main menu, any levels, anything.
It took quite a bit of time, but I also wired up the escape key to open a little mini-menu in-game which has an options and a quit button. Then I made that options button utilize the same options scene I extracted earlier.
Practices like this are super important, because this means that any changes I make to the options scene – any new options I add, or improvements I make – automatically become available to EVERY scene that uses it.

But You Said No Rabbit Holes
That’s right, I did, didn’t I?
That’s because I also finally got back around to something I said I was going to do ages ago… which is the basics of interaction!
In order for people to interact with something, I first had to teach the game how to tell something can be interacted with. And not all things that can be interacted with are created equal. You can attack enemies, but you can’t attack NPCs. It’s impolite.
You can invite other players to your party, but I’d like to see what happens when you invite a treasure chest to kill Titan Extreme with you.
So I set up the skeleton for things in the world being selectable, and then taught them that they all have different behaviours…
And then it took me a really really long time to get mouse clicks on 3d objects working properly. I’ve done this a million times in Unity, so I thought it would be easy here, but it was more difficult than I expected, mostly down to a lack of documentation.
In the end, I found something that worked through exploration on my own, and funnily enough it actually ended up being really similar to Unity’s approach in the end.
And then I added a little hover menu that pops up over a character you select so you can pick out which thing you want to do.
The options don’t do anything yet, mainly because I ran out of time.
I’ve also got a lot of code in here that I was writing sort of on the fly, so there’s some cleanup to be done which will slow me down before I call this feature “finished.”
But in the meantime, it feels good to finally be getting back to my end goal.
The first button I’ll end up implementing will be the “Inspect” button, which will open another UI that will show a readout of the stats of the character you’ve selected.
