Item and Interaction GUIs
Hey Folks! I actually snuck a little bit of gamedev in today. Hooray! I basically had to tell myself that before lunch, no other stuff would interrupt. Just pure dev.
As a result, I've made some progress on the in-game UIs for interacting with items. As mentioned two weeks ago, I started with a simple battery charge UI to get the system working:
The tricky part turns out to be layout. I'm trying to figure out the best way to get a self-contained UI such as this combo of colored bar and labels to position and scale appropriately in-game. Since the game resolution changes wildly across devices, I want to get as much mileage out of each UI as possible. I don't have that figured out yet, but a Unity video tutorial has helped me make progress.
The code side, on the other hand, is super simple. I made a few changes to things today, and the system is starting to make sense.
First of all, I changed the UI to appear at the beginning of an interaction. This way, I can define an opening interaction where the AI gets situated with a UI, then a follow-up interaction of longer duration for when the AI is "using" it (i.e. waiting for the player to click buttons and exit). Once the AI successfully raises the UI, the whole screen will be filled with the UI they're using. Here, the player will view readouts, click buttons, and generally affect changes to the ship. And when they're done, they click something to lower the UI and return to the game.
During this time, the game may or may not pause. Probably not, as navigation and other time-sensitive use cases will require time passage to get UI feedback about changes and let the player decide how to react. And since time is passing in the background, the AI will likely need to interrupt this if in danger or other priority comes up. I'll figure that out later.
Another thing about this UI-raised mode is that I'll probably need some sort of crew-selection UI on screen while using a UI. This way, players can coordinate actions across the crew as they use multiple UIs. (E.g. combat)
In fact, combat reminds me that time controls will probably also need to be available to players so they can pause/unpause to coordinate more complex things. Also, so they don't stress out trying to do complex UI things with a timer running :) One of my mandates as a company is to design games that respect the user's time, and don't pressure them. So making this enjoyable is key!
Anyway, I have a few layout things to sort out before continuing. And then, I want to see if I can get the UI to close when the AI walks away, and figure out how to let the AI interrupt if need be. Here's hoping more dev tomorrow!