Crouching UIs, Hidden Conditions

Hey Folks! More work refining the social combat UI today. I got the foundations of a hidden condition system setup, and made a series of other tweaks to improve the UI as I worked.

The big change here was to upgrade the conditions on characters so that they are hidden/revealed a bit more like NEO Scavenger. Each condition now has params to define how it should display by default, depending on whether the observer is the self or another.

For example, if you are lonely, you should be able to see this info when viewing your own stats. But if an NPC is lonely, it shouldn't appear. Not yet, anyway. Most non-physical, non-surface attributes of a person have to be divined through talking to them. Or at least observing them. And most conditions now work this way (as you can see by the empty "Status:" on Adam Benson's UI).

The next step here is to define situations under which conditions get revealed. And in most cases, this will be when an interaction happens. If Adam accepts a Viceroys cigarette for a smoke break, we now know he's both a smoker and likes that brand. If he lashes out and tells us to give him some space, we now know he needs privacy.

Most likely, I'll edit the NPC's condition directly when this happens, so future UIs can benefit from this info. And when that condition expires (as in the privacy case), so does the UI representation of it.

Other than this, I also decided to rearrange the UIs such that the date and current player cash UI remains visible during social combat. The date is useful for indicating when the game is paused vs. playing, while the cash is useful in cases where the negotiations might involve money.

A few other changes fixed the UI getting stuck active after an interaction was done, and to ensure certain UIs don't accidentally appear during a conversation.

In other news, Chris and I chatted about his latest work, and what's next. It's maybe not easy to tell from this screenshot, but the renderer is now much more reliable and efficient now. Chris fixed the draw order so we no longer get lighting lag by one frame, as well as a lot less redundant/invisible rendering tasks. He previously had a lot of rendering lag on his dev machine, even at 1080p, and these changes allowed him to run at 4K, 30fps (the max on his laptop).

There are a few other things he thinks he can improve, but we might put a pin in the renderer and performance optimization until we get a better sense of what other changes are coming. And in the meantime, he's going to see about improving the load times for the game. The Json parser we use is struggling with some of the giant files, and making that faster would improve not only player experience, but development speed.

Yay for progress!

Tags: Ostranauts