Improve Spell Selection UI
toddsch opened this issue ยท 6 comments
Minecraft version: 1.12.2
Wizardry version: 4.1.2
Environment: Server
The current prev/next functionality for selecting spells becomes frustrating to use when on a server that starts to lag, especially when using wands with > 5 spell slots. It's common to scroll past the spell you want after waiting a few seconds for it to load.
Two ideas:
-
Show a small ordered list of spells in place of the large "active" spell with the selected spell emphasized
-
Show radial menu to select spell
Some lag on its own isn't a big reason to overhaul a UI, but improving it would make it work just that much better in ideal circumstances.
Closing the issue since I'm pretty sure the above commit did fix it. Please reopen if it persists.
A while ago on the discord server I posted a gif of a new HUD I have been working on, here it is:
That's all very well and good and it will help (your first suggestion is spot on), but it would be much better to stop it lagging in the first place. Does this server lag with other things too, or is it just the spell UI? If it's overloaded in general I doubt there is much I can do to help.
The thing is, the server needs to be told to switch spells, so whilst I could make the client-side UI update instantly that would cause it to get ahead of the server, which is arguably even more frustrating.
I should probably enable better notifications...finally seeing this.
The demo you have there looks really well done. Just to toss another idea out there as far as keeping server/client info in sync: changing spells client-side could use some sort of visible "ghost" selection that visibly updates when the server responds back in agreement. Kind of like a informationally-rich asynchronous indeterminate progress bar (I promise I don't intend that to read like I wanted to get onto r/iamverysmart)
If you haven't rolled your eyes yet, here's how I'd imagine it would look:
-
Begin: Spell already selected, synced with server
-
Change spell
-
Set UI transparency to half (or whatever visual change looks good) while waiting for a response from the server
-
Server responds with the new spell selection
-
If the response doesn't match the client-side selection, wait for a response that does
-
End: Client/Server synced, restore UI to normal state
I'm not experienced with Forge modding, so step 5 assumes that ticks will never be dropped and will always at some point be sent out, even if it's 10 seconds later.
As far as our server, yeah it's overloaded in general. We're working on it but lag spikes on average reach ~8 seconds delays. It's getting to the point where we might start fiddling with certain open source mods in the list.
Ok, so you have keys with modifiers bound to those controls. Thanks, I'll try that myself and see if I can recreate it in singleplayer.
I was experimenting recently and noticed something... do you by any chance have your next/previous spell controls bound to mouse buttons, or some other non-standard keyboard keys? I noticed my own game lagging when I tried this, and that was in singleplayer, so this may not be anything to do with your server at all.