Author
Topic: GUI Discussion #2 - circa 0.601 (Read 1222 times)

Okay, I'm going to lock the old thread (https://forums.arcengames.com/ai-war-ii/gui-discussion/), and this is the new one for discussion. Eventually we'll have a daisy-chain of threads like this, I think, because every so often it's helpful to wipe the slate clean of past discussion and go "this is where we are now -- what next?" And that serial thread-starting-and-locking is the only real mechanism I know for that.

NB: It doesn't erase past discussion, so if there's something that you wanted to discuss from the old thread then please be sure to bring it up again in the new one. We're not trying to stop the prior discussion, we're trying to highlight watershed moments where we have something to show you during the midst of what is an ongoing discussion.

With all that said, I have two videos for you:

Above: Let's get that GUI actually looking good and sane, now that we have the underlying functionality there. The tooltips are number one on my personal hit-list, so let's see what we can do.

Above: My thoughts on how to make a GUI that fits all the information in, and moves around properly to fit all the information on screen at all times, without math getting too crazy or things becoming overly gridlike, etc.

Note that for the most part this talks at the granularity of entire panels/windows/canvases (so not very granular at all), but in the case of the build/tech menus, and the build queue, it goes into more depth since that is warranted at this point.

It also shows a super basic mockup of the tooltip plates concept discussed in the first video.

Watched the videos. The mockups are already better than what you have by a huge margin. I see that you went back to using classic as a starting point and then iterating on that. That's good.

* Classic used icons and tooltips. You could go that route. Icons without any text anywhere will lead to confusion. * You mentioned plates. So, is my understanding of how this GUI is built correct? When I think of plates, well please see the other thread and see if that makes sense or not.* You can solve your text magnification and wrapping woes by using a monospaced font. You should be using one because you're talking about a fixed-width area on the plate.* In the second video, space got darker. Liked it.* +1 to the Wingding-like font idea.* The classic selection box on the bottom right, I like that having text.* I haven't seen your galaxy map mockup. I'm assuming that is later. I kind of want to see the Last Federation newsfeed show up somewhere. Something like, "10,000 ships die on Murdoch, AI suspected." "Threat buildup on Io."

Anyway, exhale. Both of those videos are both going in the right direction.

@Draco18s: Yes, that's probably that icon pack. No, I don't have it. Yes, I was looking at it for a reference.

@Cyborg: Awesome, glad you're happy with how things are moving, in a general sense at least.

Quote

* Classic used icons and tooltips. You could go that route. Icons without any text anywhere will lead to confusion.

Agreed. I think we felt like classic was too much on the text side and not enough icons, and the solution here was icons with tooltips on the tooltips. But we need little brief words with each icon I think, as a sort of reminder or crib sheet as we go, and then the extra tooltips for more info are fine.

Quote

I don't know if this is a little too fancy, but is it possible to define GUI elements as two-dimensional plates and the activations within those plates as being XY offset coordinate pairs that define a rectangle?

That is basically the idea, yes. Although you can also draw an image or text in there, and you have layering and higher layers blocking lower layers, etc. And it's hard to talk in absolute pixel sizes because everything is relative to something else -- for instance, the screen size, or other nearby elements, or the scale of the container plate they are in, etc.

It actually gets ridiculously complex from that one simple principle, but that is the principle at play.

Quote

* You can solve your text magnification and wrapping woes by using a monospaced font. You should be using one because you're talking about a fixed-width area on the plate.

We could, but we'd then lose even more space to actually write stuff. Fixed width fonts take up a ton more room, so we'd have to shrink the font size to fit the things in, etc. A variable-width font that is efficiently-spaced but clear should get the job done 90% of the time without any woes, and then for the remaining bits we can go in and manually say "size this down a bit." It's possible for us to automate that process as well, but doing that repeatedly is inefficient.

I suppose that the first time we draw the word-wrapped text we could make it draw the full size, and if it goes too far down then we start shrinking by 10% at a time and then stop when it fits. Then save the scale and just reuse that scale for every other frame beyond the first in that play of the game. Saves us the manual work of defining multipliers, while also keeping things efficient except for that one first frame, which might take an extra ms or so when it's rendering text for a ship for the first time (oh noes!).

Quote

* In the second video, space got darker. Liked it.

That was actually just randomization, not something I changed. Or.... maybe an old screenshot, come to think of it. At any rate, I plan on having LUTs that people can choose from for color grading to get the feel that they personally want. A number of games have done that sort of thing with success, and it seems like a smart idea to me for getting a varied feel since not everyone will be happy with things being too dark or too happy or too whatever.

Quote

* I haven't seen your galaxy map mockup. I'm assuming that is later.

I haven't made one yet, and might not need to. That's a much simpler screen in the sense that there are very few panels around.

Then again... the way that icons are being shown at the planets are something I would currently describe as "train wreck." So there is that. Moving that into the actual GUI and not being physical objects where the planets are is something I've considered a bit. The loss of framerate would be real, but that scene is light enough it probably wouldn't be killer. I dunno, I'll have to think on it more. The at-planet pieces of info are the big issue, either way, in terms of design of what the heck they should look like.

Quote

I kind of want to see the Last Federation newsfeed show up somewhere. Something like, "10,000 ships die on Murdoch, AI suspected." "Threat buildup on Io."

That could be interesting, and certainly would add flavor. I guess it's a matter of if Keith has time to add that, or if someone wants to make a mod that does that. Modders have the exact same tools that we do in terms of creating something along those lines, and as we've shown with Badger's stuff we're certainly willing to integrate things that are cool back into the game after someone creates it externally.

Quote

Anyway, exhale. Both of those videos are both going in the right direction.

Whew, exhale on my part, too, then.

Logged

Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

I think Special Factions are a rich area for taunting/in game communication since their behaviour is fully understood in the external code. I'm not sure about being able to report AI behaviour from external code. For example, Threat.cs only controls how the AI weights different planets when considering attacking, so I don't think I can draw any conclusions about where the AI threat fleet is.

But for Special Factions, at the very least, I would like the Nanocaust to send threatening messages. Since the Devourer routing is in External code, I would consider having the devourer send messages like "Human ships look so tasty" or "I would love to snack on another <most common human ship type at target planet>" when it's heading toward a human planet. We can have a stack of flavourful statements and draw them at random (but not every time, that might get excessive).

If there's the concept of a long-form popup (like the Journal Entries in AIWC) then we could have entries appear for each special faction when it becomes visible, to help a new player understand what's happening. I think that would be a really useful way to teach a new player some of the basics (Run away from the devourer. Free the Dyson Sphere).

I think Special Factions are a rich area for taunting/in game communication since their behaviour is fully understood in the external code. I'm not sure about being able to report AI behaviour from external code. For example, Threat.cs only controls how the AI weights different planets when considering attacking, so I don't think I can draw any conclusions about where the AI threat fleet is.

But for Special Factions, at the very least, I would like the Nanocaust to send threatening messages. Since the Devourer routing is in External code, I would consider having the devourer send messages like "Human ships look so tasty" or "I would love to snack on another <most common human ship type at target planet>" when it's heading toward a human planet. We can have a stack of flavourful statements and draw them at random (but not every time, that might get excessive).

If there's the concept of a long-form popup (like the Journal Entries in AIWC) then we could have entries appear for each special faction when it becomes visible, to help a new player understand what's happening. I think that would be a really useful way to teach a new player some of the basics (Run away from the devourer. Free the Dyson Sphere).

I think this is worth throwing on mantis so that it doesn't get lost, because this is a really good point and slightly tangential to the main conversation here. The journal entries were something Keith came up with in AIWC, and obviously we liked that and did something similar in TLF, so I'd expect something similar might be planned here, but that's up to him and time feasibility. Or someone externally modding it in, as the case may be -- there's always that caveat now, whenever I say "maybe." But yes, it's something I'd like to see, and I think it would inject a lot of character into the factions rather than everything being sterile and samey from a thematic large standpoint.

Logged

Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

I kind of want to see the Last Federation newsfeed show up somewhere. Something like, "10,000 ships die on Murdoch, AI suspected." "Threat buildup on Io."

I really like this idea actually. Something to show the player what is going on in the various planets while they are on the galaxy map would be very helpful. Perhaps even being able to mouse over the news to highlight the planet it is reporting on?Personally I would want the ship selection to be in text because it would get very confusing remembering all the different ship icons (even if you can mouse over them for the description, it makes it easier at a glance to know what you are giving orders to if it shows their names).Everything else though I like your current ideas on the GUI. It is good to keep it simple and easily understandable, whilst also making sure the info is placed in appropriate areas. The tooltip being opaque is a must have for me though. Keep up the good work, and sorry I've been way too busy with work to post anything here in... months xD

*edit* I understand this isn't the proper place to say this... but I personally would really enjoy having the pause key on the keyboard be usable as a secondary pause button. AIWC had this and it's pretty much the only way I pause