Page 1 of 1

Need ideas for GUI

Posted: Mon Apr 04, 2022 12:27 pm
by Pi-C
My character selector mod has a GUI showing previews of the different characters:
Image

That worked OK because there were only a couple of new character prototypes to choose from. I knew that there would be some trouble ahead once more character mods would become available, but I didn't expect this to happen so soon. I've no idea what the Chinese text in the mod description says, but I've already recognized the names of 7 new characters and expect that the other lines are names of even more characters planned for the future. But even now, my GUI becomes a mess when that mod is active!

Here's a screenshot with just my GUI open:
gui.png
gui.png (2.56 MiB) Viewed 1253 times
But when other mods come into play, it becomes really ugly:
gui-2.png
gui-2.png (2.71 MiB) Viewed 1253 times
I obviously need to restructure the complete thing, to make it fit for being used even if an insane number of characters is available. (I realize that I could scale down the previews a bit, but I've made them that big on purpose, so players can have a better look at new characters.) But I don't want to waste any time on this just to come up with something that's not really usable.

So, if anybody has an idea how I could structure my interface in such a way that it will look nice (yes, I know, that's highly subjective!) and can be used easily with just 1 or 2 character, but also with, say, 20 or 50, I'll gladly accept suggestions! :-)

Re: Need ideas for GUI

Posted: Mon Apr 04, 2022 1:23 pm
by steinio
How about showing just 5 and make more pages to skip through?

[previous] 1 2 3 [next]

Re: Need ideas for GUI

Posted: Mon Apr 04, 2022 1:24 pm
by Stringweasel
I don't really play with other characters. But it might be cool if you make it look like the Train Overview GUI. A bunch of thumbnails that you can scroll. And make it a standalone GUI in the center. :)

Re: Need ideas for GUI

Posted: Mon Apr 04, 2022 2:24 pm
by Pi-C
steinio wrote:
Mon Apr 04, 2022 1:23 pm
How about showing just 5 and make more pages to skip through?

[previous] 1 2 3 [next]
Good idea! It would save screen real estate, and it would be good for UPS because I could set character.active = false for all preview entities that are on a hidden page.
Stringweasel wrote:
Mon Apr 04, 2022 1:24 pm
But it might be cool if you make it look like the Train Overview GUI. A bunch of thumbnails that you can scroll. And make it a standalone GUI in the center. :)
A GUI in the center? I just checked, the train overview overlaps the mini map, so the problem of the mini map hiding my previews would be solved. Regarding the scrolling: Is there a way to find out if any previews are off the screen? I've looked at the characters from "Genshin Impact Skin", and they all have 256 images in the idle animation, so activating all preview entities at once isn't optimal.

Combining your suggestions (a centered stand-alone GUI with buttons to switch between groups of previews) should work, and wouldn't be too hard to implement.

Meanwhile, I've been out for a walk in the rain and had another idea: A second window showing a list of all available characters (just names + icons) where each player could choose a group of characters that should always be displayed. Honestly, who'd want to have 20 characters to choose from in single player mode? For multiplayer games, it would make sense if all character mods were active on the server, but individual players would probably use just a subset at any given time. Alas, that would mean much more refactoring of the code than just changing the GUI functions. :-)

Anyway, thanks for these suggestions! They've put me on another track to follow.

Re: Need ideas for GUI

Posted: Sun Apr 17, 2022 6:50 am
by Pi-C
I've just released a new version of my mod. This is the new GUI:
minime_gui_1.1.9.png
minime_gui_1.1.9.png (96.95 KiB) Viewed 1079 times
It probably could use some more polishing, but at least it's usable now even when lots of character prototypes are in the game. Thanks for your help, and happy Easter, everybody! :-D