GUI Property Maps
Hey Folks! Another largely business-admin day today, but I did manage to get back to gamedev later on in the afternoon.
The morning was mostly spent working on record-keeping for my new company. I had a pile of official documents (certificates of formation, business licenses, etc.) and a binder that needed assembling, and my receipts were starting to pile-up. So I took a few hours to finally get that in order so I could start using it. I also setup new profit and loss spreadsheets, since the new company reports in a different currency (USD) than the old one (CAD), and has some updated licensees.
Fun, right? I know!
Anyway, with that out of the way, I took some time to chat with Josh a bit more about composing this new game's OST. We're both getting pretty excited, and just hammering out some contractual choices before we move forward.
In terms of actual game dev, I'm working on "GUI Property Maps" (GPM). A GPM is basically a set of data that tells a GUI what to display. Things like label names, value ranges, and which items and conditions on those items to use as a source for data.
Originally, I just had this all defined per-interaction. Logical enough for the time. However, if I want the user to be able to choose which control panels correspond to which items on the ship, I need an in-game way to edit this. And that means the ShipEdit mode needs some more UI.
I decided to make a new stand-alone data type called GUIPropMap for this purpose. That way, different objects in the game can all refer to the same set of properties for a UI. Placed ship items can have a list GPMs that make sense for that particular item instance. When a player selects that item in ShipEdit mode, they see a list of buttons: one for each possible GUI.
Clicking one of those buttons will load that GUI, and they can proceed to specify the editable parts of that GUI as they see fit.
I'm most of the way through this process now. I think the pieces are pretty much in place, and I'm just smoothing out some compiler errors. Then, we'll test it, likely debug it, and hopefully be able to edit some GUIs in-game on Monday! Have a good weekend, all!