GUI plan and tasks

GUI plan and tasks

A dynamic game undergoing constant development and refinement, that attempts to balance playability with fresh and innovative features.

Moderator: Content Developer

User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

GUI plan and tasks

Post by Licho »

GUI plan:

General:

1) use icons. For example metal should have 1 icon and this used consistently across gui, to display metal income, unit cost etc.

2) use tooltips. Put helpfull information into tooltips, including keyboard shortcuts.

3) gui must look consistent -> all widgets created using chili and using same visual style and control methods.

4) don't reinvent wheel. If something works in 99/100 games, it will work in CA too (like escape to bring up main menu)

5) gui consists of 3 general types of "windows".

"Static" - permanent parts of gui, like resource bar. Moveable but must avoid accidentaly moving it - so grips for move and resize and docking/sticking to other windows and borders.

"Dialogs" - are transient windows, typically main menu. If they are moveable they can be dragged by whole window. Escape cancels them.

"Other" - typically tooltips or special parts of other gui elements.

Elements:

1) minimap - should allow resizing. Should have option to maintain aspect ratio. Possibly side buttons for team colored units, show orders.

2) console - almost done. Needs special box for entering text instead of current one. Its options should be all moved into settings imo ("a","p","s" checkboxes not needed)

3) resbars - mostly done now. Basic version should show just storage level + numbers for income and spending and warning icons. It should have button to expand it to advanced mode displaying income and expenses in detail.
Tooltips should show numeric details and explanation - legend with images.
Resbars should warn about typical problems (visual + audio).

4) buildbar - buildbar is existing widget that shows factories and allows you to control production in those. This widget should be adapted for chili, modified to allow displaying list in 2 lines for easier readability, modified to select factory when you click its icon and changed to order by factory type.
Each factory type could be bound to some default key - like alt+k select kbot lab.

5) buildmenu - this is replacement for building options for workers. It shoudl work similar like buildbar. When you select worker, category icons appear on left.
If you click category, it opens and you see list of options in that category.
You can open several categories at once and keep them opened.
Each category also has some key - like alt+e - economic structures.
Buildmenu should be placed under or above buildbar because its conceptually similar.

Special hotkey (preferably space) expands all categories in buildmenu as well as all buildbar factories for quick access. Pressing space again or left clicking anywhere outside those menus closes them.

6) commandmenu - this is replacement for default spring command menu.
Commands should be sorted, orders visually (new line) separated from switches etc. Switches (roaming, hold pos, ..) replaced with smaller icons. Special actions (jump,sprint,..) bound to some default key.

7) selection icons - improved selection icons. Should hint about auto grouping/allow easy management of auto groups from there. Should come with overal information about selection - displaying either unit tooltip (if only 1 unit is selected), or overal selection stats (if multiple units selected) - like total HP, buildpower etc.

8) tooltip
This is the key part of new interface. Tooltips should be available anywhere on demand. They should be visually rich and at least for gui elements appear where your moouse is, instead in predefined spot on the screen.
So for example for buildbar, tooltip for unit appears instantly, displaying basic unit information and keyboard shortcus related to queuing in factory buildbar.
Key (preferably F1, atm space), displays tooltip instantly even for stuff you see in game - like units. F1 + click displays even more detailed information (unit help).

9) main menu - appears when you press escape or f10.
Allows general game settings (video, sound) and game actions (resign). All CA widgets are controlable form here. So instead of doing F11 -> transportAI to disable it, you will see small checkbox in correct settings category saying: "auto transport units from factories to their destination".

10) player list- should work like advanced playr list. Player specific action integrated with it (ally in FFA, camera lock)

11) buildpower/idle workers (optional) - this element should display simple overview of your buildpower capacities and allow you to pick next idle worker, closest worker etc. Those actions should be bound to keys used in normal games - like "."

12) build projects list (optional) - this is visual list of current construction projects (non factory, because factory units are already covered by buildbar). Each should display % completion and eta. Clicking on it should select construction project.
This thing already exists in IceUI.

Current status

0) support:
- chili framework: developed by jK.
- overal visual style: someone must prepare overal visual concepts
assigned to: Vintage, consult with jK

1) minimap: not started
unassigned

2) console: needs polishing
assigned to: Licho, CarRepairer

3) resbar: needs better tooltips, warnings and switch between advanced and easy mode.
assigned to: Licho, need contributions in the form of icons and sounds

4) buildbar: optionally convert to chili. Needs category backgrounds. Developed by jK originally.


5) buildmenu: needs to be created or adapted from nestedbuildmenu (evil4zerg) to chili framework
unassigned

6) commandmenu: not started
unassigned

7) selection icons: must be converted for chili. Needs selection info display.
unassigned

8 ) tooltip: partially done. Needs icons, tweaking, some standardization. Other chili widgets must then generate proper tooltips.
assigned to CarRepairer

9) main menu: content mostly done. Needs treeview display, needs better categorization
assigned to CarRepairer

10) player list: we have advanced player list. This should be modified for integration and possibly changed to work like other chili windows.
assigned to SomeRandomGuy

11) build power dispaly: nothing yet
unassigned

12) build projects: could be created by adapting IceUI
unassigned

Current wishlist

- window docking/sticking system for chili

- treeview control for chili

- icons for the gui (probably needs overal style design first)

- warning sounds for resbar

- help with any of the gui elements
Regret
Posts: 2086
Joined: 18 Aug 2007, 19:04

Re: GUI plan and tasks

Post by Regret »

You forgot to mention performance.
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

Regarding tooltips:

The current behavior I implemented works as follows (more specific than Licho's description):

Tooltip always shows when mousing over selection button, or build button, Licho made it so it shows on mouseover of resbar.

Holding the spacebar when mousing over these will show an extended tooltip. This extended tooltip shows you all the hotkeys for this cursor position. Once you eventually know the hotkeys you won't need to see them anymore so it's not necessary to show them permanently. But for new players holding spacebar is easy so it's okay.

Holding the spacebar when mousing over anything else will show a tooltip for that context. For example, mousing over any unit on the map, including yours, allies' and enemies'. This lets you see quick and dirty "need it this split second" info - unit's name and description, and who owns it. I use this throughout the entire game, all the time.

Licho is suggesting that the hold-spacebar be replaced with hold-f1. However I have two reasons I don't agree. First, I use it so often it's way too important and F1 is hard to access in the quick situations I use it (mouseover and hold spacebar on moving enemy units). Second, the spacebar is a meta key and is already used for the function of space-click which is used for context popup menus. Having hold-space meshes with space-click in this case.

Obviously this is from my perspective but if you see that using spacebar regularly in a game would really help for many reasons (what tank is that? who does it belong to, there are two teams with a similar shade of red) it really helps the gameplay move faster. I use it far more than I would need to expand my buildmenu, which is also often. I sometimes hold it down and move the cursor over a bunch of units to assess the whole screen and situation.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

If you have to use it that much, then there should be permanent tooltip for units like the one in spring now..

I dont think its best to waste such big key for "help"..
also help is traditionaly F1

And space would be much more usefull for expanding build menus quickly.

We could eventually even implement markupt menus for space + mouse gesture.


Also i think that 2 tooltips are needless complication..
Its imo better to disable expanded tooltips globally in the menu..

With current way you dont know if user holds space because he wants to see tooltip instantly or because he wants extended info.
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

Image.
Attachments
tooltips.png
(1.08 MiB) Downloaded 49 times
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

ok then. You convinced me..
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

Why is the space + click called options btw? What options do you need there that cannot be put to commandmenu?

All units in normal games only have "help" button there..
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

I have ideas for stuff.. they just haven't been implemented yet.

But currently, when ceasefire is enabled, it shows make ceasefire button and break ceasefire button. So in FFA games that's three buttons (including unit help which I should rename to unit stats).
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

But why there? Ceasefire is clearly player related action not unit..

So it should go to player list.. and once its there we dont need to duplicate it..
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

It was suggested to me by Basic and I agreed that it would be a very good convenience in FFA games. Yes it's duplicated functionality but it comes in handy. The options is like a context click for units.

In the end if devs feel your way, it would be easy to replace with "directly space-click to get unit stats" and I could add a settings checkbox to bring back context menu for my own use. I won't mind.
imbaczek
Posts: 3629
Joined: 22 Aug 2006, 16:19

Re: GUI plan and tasks

Post by imbaczek »

btw last time i did space+click, i didn't know how to get rid of the window that popped up.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

Yeah imo "dialog" windows like menu and this unit help should have close button top right, like normal windows and also respond to escape..
V1ntage
Posts: 101
Joined: 05 Aug 2009, 22:32

Re: GUI plan and tasks

Post by V1ntage »

Excellent listing Licho! This kind of analysis is what we need for the redesign :-)
imbaczek
Posts: 3629
Joined: 22 Aug 2006, 16:19

Re: GUI plan and tasks

Post by imbaczek »

pressing esc brings the little menu thingie, which is good. usually. except when i have a command active, then it's pretty bad, because by pressing esc i want to cancel it and not enter the menu.
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

imbaczek wrote:btw last time i did space+click, i didn't know how to get rid of the window that popped up.
Yeah it confuses people. I meant for it to behave exactly like a context menu in windows. I find it to work perfectly, but no one expects this behavior inside the game even though it's something they use all the time in every application.
imbaczek wrote:pressing esc brings the little menu thingie, which is good. usually. except when i have a command active, then it's pretty bad, because by pressing esc i want to cancel it and not enter the menu.
Just a matter of setting it all up, the esc thing was just added very recently.
User avatar
Pxtl
Posts: 6112
Joined: 23 Oct 2004, 01:43

Re: GUI plan and tasks

Post by Pxtl »

That looks really, really good. Can't wait to try it out.

And thinking it over, on the subject of unit-options... why not include the whole player-row glommed from the Players List into the unit options?

I mean, if a guy is going to want to mouse-over a player's units to ally with him, there's just as much likelyhood that he will want to share units or resources with him through the same mechanism.
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

I think i will also try to implement those radial marking menus.
I checked research and they seem to have huge benefits..

Just no idea how to best implement them yet..
User avatar
CarRepairer
Cursed Zero-K Developer
Posts: 3359
Joined: 07 Nov 2007, 21:48

Re: GUI plan and tasks

Post by CarRepairer »

Pxtl wrote:That looks really, really good. Can't wait to try it out.

And thinking it over, on the subject of unit-options... why not include the whole player-row glommed from the Players List into the unit options?

I mean, if a guy is going to want to mouse-over a player's units to ally with him, there's just as much likelyhood that he will want to share units or resources with him through the same mechanism.
Interesting idea. If playerlist were made in chili this would just be a matter of some copypaste. Too bad it isn't (still a damn fine widget considering).

But I still don't know if context menu is what others want (Licho isn't seeing its merit at this time) so I won't work on it too much just yet (other stuff to do).

It comes down to colorblindness and convenience. It's often the case that you can't tell whose unit is whose by the teamcolor on it. And when you do, you don't have to find the owner's name in the player list to perform an action. If you're concentrated on a battle and that mega sumo in your base is what you're focused on, it's nice to click on it and perform an action right then and there, either on the sumo or its owner.

Some context menu ideas:
  • Message the player (insert private message text ready for typing).
  • Track the unit with some new tracking widget.
  • I plan to eventually make a widget that lets you configure default factory states for your units and will save across games (for example: this bomber is set to land, this fighter is set to fly, hammer set to hold position, etc.). So that's yet another button I could add to bring up a window for this unit type instead of fiddling through a list or tree when you just want to do it now. (edit: ok this would actually be better in buildpic so disregard. But I still want to make this widget so I'll leave it here for others to read.)
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Re: GUI plan and tasks

Post by Licho »

Car, settings for YOUR units should be in or near commandmenu..

there is no point in splitting it into commandmenu and space+click..

Space click is only for enemy units which dont have command menu options.
User avatar
Pxtl
Posts: 6112
Joined: 23 Oct 2004, 01:43

Re: GUI plan and tasks

Post by Pxtl »

Maybe the controlling player's name should just be in the vanilla tooltip?

I mean, I've always thought it's silly that there are no player-names on ~points. Not everybody can perfectly remember which shade is which player.
Post Reply

Return to “Zero-K”