Playing with the reticule

Ideas and suggestions for how to improve the Warzone 2100 base game only. Ideas for mods go in Mapping/Modding instead. Read sticky posts first!
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Playing with the reticule

Post by Per »

Q: What the heck is a reticule?
A: I have no idea. The word is used throughout the codebase to describe this thing:
wz2100-20150802_193420-Sk-Rush.jpg
wz2100-20150802_193420-Sk-Rush.jpg (13.12 KiB) Viewed 10291 times
However, google searches find nothing appropriate. It might be weird spelling of a https://en.wikipedia.org/wiki/Reticle, but who knows.

Q: Why am I playing around with this?
A: I've long tried to find some way to visualize common unit actions for the player, to avoid depending on memorization of hotkeys from not easily accessible documentation and/or options. I think this is a very big problem for new and regular players both. I've tried various variations of the existing GUI widgets, but none looked even remotely acceptable to me. So I wondered if maybe the reticule could be used for this purpose.

Q: How would it work?
A: When you select a droid, the reticule switches from the normal view you can above, to a droid menu instead. Unselect the droid, and the regular menu re-appears. Since we now can control the reticule buttons from scripts, toying around with this was actually quite easy (with some improvements to the code that I'll push later). I had to make some new icons, but don't judge this idea based on my non-existent artistic abilities - pretend that these placeholders actually contain something a competent pixel artist would draw instead.

My first fear was that there would not be enough buttons to go around. But once I merge various orders into meaningful buttons, I was surprised the problem was actually a lack of things to use buttons for, rather than the opposite.

Some mock up examples (mouse cursor disappeared...):
wz2100-20171121_013009-Sk-Rush.jpg
wz2100-20171121_013009-Sk-Rush.jpg (33.65 KiB) Viewed 10291 times
wz2100-20171121_013030-Sk-Rush.jpg
wz2100-20171121_013030-Sk-Rush.jpg (42.35 KiB) Viewed 10291 times
wz2100-20171121_013053-Sk-Rush.jpg
wz2100-20171121_013053-Sk-Rush.jpg (42.72 KiB) Viewed 10291 times
Q: Can we use this on bulidings, too?
A: Well... Maybe. Buildings do actually have some actions. The lassat has its strike ability. The factories have production, delivery point, show obsolete and loop buttons that are now somewhat hidden. Repair facility also has a delivery point, and research stations have research. But that's about it. Of course, this allows to easily add more building actions, since we would have a decent framework to add them into.

Q: How did it work in-game?
A: I got a semi-working mockup working, that made the new buttons appear/disappear whenever I selected and de-selected droids. It seemed quite elegant to me, and each of the menus were easily accessible, and very unobtrusive (unlike all my other attempts to add something like this). The reticule behaviours would be controlled from the rules.js script using script callbacks whenever a reticule button is pressed.

Q: So what do you think about this idea?
User avatar
Berg
Regular
Regular
Posts: 2204
Joined: 02 Sep 2007, 23:25
Location: Australia

Re: Playing with the reticule

Post by Berg »

What do I think?
Make a concept version so we all can play with it.????
I think it has potential.
do note I still cant compile master to test this.
Version: QT5 default 5.2.1+dfsg-1ubuntu14.3 is the version available the game looks like it requires 5.7.#
User avatar
Hironaru
Trained
Trained
Posts: 38
Joined: 11 Jun 2017, 10:10

Re: Playing with the reticule

Post by Hironaru »

Per wrote:Q: So what do you think about this idea?
Well, I think that UI in general could be resolved with some simple changes, actually. In respect to unit actions alone, Vexed some time ago recommended a fantastic idea of creating a radial menu on right click of a unit, that would pop up at the mouse cursor.

There are a lot of things that I personally think would go a long way towards polishing for high resolution, multi-monitor players like myself actually. I have three monitors, and the thing I come across is that when I access the creation menu, or even the general ui interface, it snaps things to corners; which for me is basically from one side of my peripheral vision to the other (literally 4 feet apart and directly in front of me), which makes using the menus really gross. I cant even imagine what its like to have centered objects with two moni . . . . . . . . . tors... Probably something like that.

Just having the ability to enter a "UI Mode" where you could click and drag the menus to where you want them to be would be amazing. I'm sure that there are a plethora of materials out there to reference in JS that do just that, actually. Then there's the fact that hotkeys aren't even mentioned in the scroll-over tool-tips in the menu, which isn't very intuitive either with respect to new or returning players. O.o

-----

I will draw up a few suggestions I think would be appropriate for the radial dial system which I will post in a little while while I wait for word back from you and other devs on my project. But I think that there are even more basic things like adding hotkey mentions in tool-tips, and being able to scale and move the UI around that I think would go a long way towards streamlining the experience.

If we get the UI under control, the overall game balance as well (Heyoooo) and can get someone to design a cannon radial menu (same transparent blue style and highlights), I was kind of thinking about showing this project to the Vive and Oculus dev communities to reignite our potential for steam later down the road. Imagine it... The first VRTS. 8) I think that would be pretty gd amazing.

-----

By the way, I really really really want to talk to you and the development team in a powwow about allowing me to manage the primary balancing wiki page to update my future team in project BOMB, which is aiming to be the sister forum of the 3.2.x JSCAM testing forum. I proposed splitting the thread to cyborg in order to grant more effective direction to his objective of finding bugs, while also taking some of the burden off of him to balance the campaigns for all player types and demographics. Things appear to have been kind of willy-nilly, with no real project management or backward-flowing effects.

I will need a centralized location where everyone can see the overall timeline and my clear/direct project goals and a wiki makes sense. Currently there are two wiki pages, and both are being used for discussion. I'd like to manage one of those pages, moving discussions to the chat wiki -or- If I can redirect the discussion to project BOMB, and kind of unite the rest of the balancing community under BOMB too, I think I can harness and direct that energy into a structured project that will produce solid results.

P.S. Sorry for Hijacking your thread to get ahold of you :3 Pictures to follow.
Last edited by Hironaru on 21 Nov 2017, 15:01, edited 1 time in total.
Do, or do not. There is no try.
-yoda
User avatar
Hironaru
Trained
Trained
Posts: 38
Joined: 11 Jun 2017, 10:10

Re: Playing with the reticule

Post by Hironaru »

The idea with modern radial menus is just to make it so you hold down the right mouse button over a unit, and mouse-over primary categories which expand into their own sub-menus. so all you need to do is click and drag in the direction you know the command you want is in to make split second changes. Anything that requires button pressing doesn't really feel good. (Just a heads up if you or someone else wanted to make radial unit menus a thing)

Image

As far as the other functions, I kind of like the vanilla reticule. We could also just add the actual reticule to the radial menu concept above by adding a button in the center of it to shift to the original reticule, and get rid of the transparent backdrop.... That would be kind of cool. Or maybe the right click on open ground makes the original reticule functions appear conformed to the radial style, and right clicking a unit brings up a radial menu for unit options.

Theres frankly a lot of room for improvement in the ui. :3
Do, or do not. There is no try.
-yoda
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: Playing with the reticule

Post by Per »

The fundamental problem is that our current GUI code leaves very little room for doing fundamentally new stuff, like a radial menu. (It is also very slow, and hard to debug, and etc..) We have long wanted to a radical overhaul of the GUI code, but that is a huge effort, no matter how you slice or dice it.

I've answered your off-topic stuff in your own thread.
User avatar
Hironaru
Trained
Trained
Posts: 38
Joined: 11 Jun 2017, 10:10

Re: Playing with the reticule

Post by Hironaru »

Mmmmm... I kind of want to.... do it.

Have to balance between both projects, but there's no reason I cant learn a little code while improving my management skills. I want to know what the other dev's think about different styles and the discussions surrounding the ui. From what i can tell there's a lot of c++ oriented stuff related to the UI, so its going to take me a little while to figure it all out.

Is there an easy way to find everything that interfaces with the ui, in addition to the ui itself?
Do, or do not. There is no try.
-yoda
Bethrezen
Regular
Regular
Posts: 661
Joined: 25 Sep 2009, 02:05

Re: Playing with the reticule

Post by Bethrezen »

Q: So what do you think about this idea?
It's an interesting idea in theory, and in principal I don't see any glaringly obvious issues but to really know how this will play out I'd actually have to have a working copy to play with.

I do have a question though what is wrong with the right click menu, because from a usability perspective the right click menu works just fine, and to be honest this seems like a lot of unnecessary work, because as far as I can tell all you are really doing is replicating what the right click menu already does, unless I have miss understood the intention of this the only real difference between this and the current menu system is how you access it where currently you can select a unit or group of units and right click, your proposal will simply make the menu appear when you select a unit or group of units, so how is that really any different.

One other possible issue you already alluded to is that your setup is very restrictive because you only have 6 slots where the current menu can hold as menu buttons for different functions as you like, and as it is right now when I right click to bring up the menu there are already twice that number of buttons, so I have to question what is being changed sacrificed to make that work with only 6 buttons.

To be perfectly honest given how poorly the changes to the hold worked out, and I say that because for me the current set up for the hold command sucks and is inferior to how it worked before, its better than nothing I guess but the way it was before gave you much better control over your units and it stayed on till the player decided otherwise, more over it worked properly with units attached to scanners and commanders which the current hold does not, so given that I'm rather weary of changing things that work fine.

I can't count the number of time developers have messed about with the UI and totally screwed it up for people, a recent example I can think of is mozilla and there australis interface, personally I'm of the opinion that was one of the worse UI redesigns I've ever seen, and really Mozilla need to learn to leave well enough alone unless there is an exceptionally good reason to be meddling with UI, because for me a good UI I can use is of critical importance and I have dumped countless applications after dev's decided to take a perfectly good UI and "improve it" totally screwing up in the process and making it completely unusable and then even when all the evidences says there new and improved UI is garbage they wont accept when there wrong and put it back the way it was.

So after countless bad experiences with this sort of a thing I'm mindful of the old adage if it isn't broken don’t fix it.

Having said that I have an open mind and I'm certainly not against trying out new ideas because you can't really know how an idea is going to play out and whither its actually going to be better or not till you give it a go.
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: Playing with the reticule

Post by Per »

Bethrezen wrote:I do have a question though what is wrong with the right click menu, because from a usability perspective the right click menu works just fine
It does not. It is not there when you need it, new players may not even know it exists, it takes too long to move the mouse there (right click unit, move cursor over, left click menu item), and it is dauntingly complex.

I tried putting primary order ("attack", "hold", "guard"...) buttons there, but they were too inaccessible to be useful. I tried having the right-click menu automatically open whenever a droid was selected, and it was jarring and ugly. I tried putting new square buttons at the right-hand side of the reticule, with the same jarring and ugly result. The Warzone UI is very minimalist, and it is not easy adding anything anywhere without making it look all wrong. IMHO.
Bethrezen
Regular
Regular
Posts: 661
Joined: 25 Sep 2009, 02:05

Re: Playing with the reticule

Post by Bethrezen »

Well if you are going to do a UI overhaul why not try doing something like this

https://4.bp.blogspot.com/-4jxtDPWAQl0/ ... game+2.jpg

or this

https://3.bp.blogspot.com/-oBZbPbOvgDQ/ ... een005.jpg

The first is Dawn of War Dark Crusade the second is Command & Conquer Generals as you can see both interfaces are already similar to warzone, and personally I don’t think a setup like that would look out of place at all in warzone, obviously you couldn't do an exact 1 to 1 copy but a setup based off of this would be possible and more importantly a UI like this is tried and tested and I figure if it works why reinvent the wheel.

Just a though.

[edit]

Ok so here is a really quick and dirty mock up of the sort of thing I'm thinking of in this image all I'm doing is reusing the centre box that normally appears when you click the build or research buttons and then having the unit menu appear there when you select a unit or group of units, and what you could do is simply arrange the buttons into 3 groups.

the first being units state command like hold guard pursue, hold fire return fire fire at will, retreat at heavy damage, medium damage or do and die etc

the second could be other commands like board the air ship, go for repair, return to base etc.

the third could be for other command like stop, patrol, circle etc.

obviously the buttons that would appear would change depending on what you had selected because obviously if you have say a commander selected then there would be a couple of extra buttons that wouldn't normally be viable, same thing again if you have VTOLs selected, you might get 1 or 2 extra buttons that wouldn't normally be visible and then you could just have this appear when you select a unit or units, this is very similar to what you are preposing but the benefit is that you have a larger area to work with so you are not as restricted, and as long as the buttons have a descriptive tool tool tip to explain what they are for i think this would be an acceptable if minimalistic approach to this, that largely addresses most of your complaints.

Image
User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 938
Joined: 26 Sep 2016, 19:56

Re: Playing with the reticule

Post by Berserk Cyborg »

Crash when a reticule menu is open when winning or losing in skirmish (I had research menu open).

Code: Select all

Call stack:
00000000
0045A0D7  ...\warzone2100_portable.exe:0045A0D7  setReticuleStats  /home/buildbot/slaves/warzone2100/master-nightly/build/src/hci.cpp:405
004D55B9  ...\warzone2100_portable.exe:004D55B9  js_setReticuleButton  /home/warzone2100/mxe_jan2016/usr/i686-w64-mingw32.static/qt5/include/QtCore/qstring.h:1053
00CB2974  ...\warzone2100_portable.exe:00CB2974  g_get_num_processors
00C1F51B  ...\warzone2100_portable.exe:00C1F51B  g_get_num_processors
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: Playing with the reticule

Post by Per »

Bethrezen wrote:Well if you are going to do a UI overhaul why not try doing something like this
Because the current UI code in no way supports doing that. Also, these tend to be in fixed pixel size, while we adjust to the whatever resolution you scale the window to. That means our UI has to scale with it. An early draft of a new UI based on SVG images handled this quite well, but again, we need new UI code for that.
Bethrezen wrote:Ok so here is a really quick and dirty mock up of the sort of thing I'm thinking of in this image all I'm doing is reusing the centre box that normally appears when you click the build or research buttons and then having the unit menu appear there when you select a unit or group of units, and what you could do is simply arrange the buttons into 3 groups.
It is possible to do it this way, but I think we'll struggle to make that look good. The good thing about using the reticule is that it forces to keep things simple, while using the above approach encourages us to add buttons just to fill up the ugly empty space...
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: Playing with the reticule

Post by Per »

Berserk Cyborg wrote:Crash when a reticule menu is open when winning or losing in skirmish (I had research menu open).
I cannot reproduce this.
User avatar
Lord_Kane
Trained
Trained
Posts: 104
Joined: 24 Nov 2016, 21:51

Re: Playing with the reticule

Post by Lord_Kane »

Per wrote:
Berserk Cyborg wrote:Crash when a reticule menu is open when winning or losing in skirmish (I had research menu open).
I cannot reproduce this.
Neither can I
User avatar
Berserk Cyborg
Code contributor
Code contributor
Posts: 938
Joined: 26 Sep 2016, 19:56

Re: Playing with the reticule

Post by Berserk Cyborg »

Hmm... it might have to do with attaching an AI script to the player (both autogame and the debug menu method I have tested). I did not attach an AI script and let the AI bots win and it would not happen. Anyway, here is a dump file if it helps.
warzone2100.gdmp.zip
Bethrezen
Regular
Regular
Posts: 661
Joined: 25 Sep 2009, 02:05

Re: Playing with the reticule

Post by Bethrezen »

It is possible to do it this way, but I think we'll struggle to make that look good. The good thing about using the reticule is that it forces to keep things simple, while using the above approach encourages us to add buttons just to fill up the ugly empty space...
Perhaps so the issue there however is that there isn’t enough room for all of the various commands, even if you turn the buttons for the retreat state, fire state, movement state, and recycle into a single button that you simply have to tap multiple times, you are still looking at 8 buttons for regular units as you can see here.

Button 1 = retreat state
Button 2 = fire state
Button 3 = movement state
Button 4 = go for repair
Button 5 = return to base
Button 6 = go to the transport
Button 7 = recycle
Button 8 = patrol

For commanders you are looking at 9 buttons and that’s not including the 5 for setting your factories delivery points as you can see here.

Button 1 = retreat state
Button 2 = fire state
Button 3 = movement state
Button 4 = assign fire support
Button 5 = patrol
Button 6 = return to base
Button 7 = go to the transport
Button 8 = recycle
Button 9 = patrol

So once again I have to ask the obvious question, when you have only 6 slots how are you going to include all the commands, the simple answer is you can't, not without removing things.

Which is a problem as it cause unintended consequences more over doing so removes control and tactical options from the player, as has already been seen with some of the other changes and this is never a good thing, while I get where your coming from when you say that players particularly those new to the game might not know about the unit menu, and while I understand that you want to make it more accessible, I'm not convinced that this can replace the unit menu, what you are proposing is fine if used in conjunction with the unit menu as a sort of RPG style fast access shortcut to most frequently used commands, but you are still going to need the unit menu.
Post Reply