Completely new all-game usable build menu (Chili)

Completely new all-game usable build menu (Chili)

A place for offers of Bounties and discussion of funded proposals.
Post Reply
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Completely new all-game usable build menu (Chili)

Post by Forboding Angel »

Not sure if bounties can be placed on lua items, but I think that this is something that would benefit us all. I would like to replace the engine gui piece by piece as chili widgets, completely free of anything zk related.

For this particular bounty, I would like to address the build menu.


Layout

The build menu should be responsive, first and foremost. This means that depending upon the bounding box's size and shape, the contents rearrange and re-size themselves to fit properly. If need be I can create a css example of how this should work if the person doing this needs a visual design.


Collapse-able

This menu should be able to be collapsed when not needed and hotkeys still accessible. The reason for this is, if you know the hotkeys, as a seasoned player, you have little use for the build menu taking up screen space, but there may be times when you need to access it.


Tabs

This menu would support an unlimited number of tabs across the top or the side (depending on vertical orientation or horizontal). Default tabs would be Commands (for the commands menu) and is no other tabs are defined, a tab that lists every unit available to be built by the selected unit.


Hotkeys

Hotkeys are a must. They should be done very similar to the way that Integral menu does it, meaning units are in rows, so the hotkeys would be

qwerty
asdfgh
zxcvbn

Hotkeys should be overlaid on the unit picture. This goes for building units AND COMMANDS!

Unit icons should be allowed text labels (optional), displaying the unit name on the label below the build picture.


Code Quality

The code quality of the current gui systems using chili, by and large are fairly meh. Many things hard coded that should be in configs, etc. Everything about this menu should be split into configs, and kept nicely in it's own config folder (I.E. luaui/configs/menuname or something similar).

This menu needs to be able to be dropped into any project running chili and just work with the default configs (this is why I specify a tab that simply lists all units that can be currently built by the selected unit). This is so that projects who may not be that mature yet can simply drop this in and have access to all the features without spending 5 hours making it work for their game (like if BA wanted to drop it in).

I cannot stress enough the requirement that this work with ALL spring games with little effort. Anyone who has gone to the trouble of implementing ZK chili widgets into a new game will understand what I'm talking about here. This needs to be good enough to the point that including it with the engine would actually be a valid request (not necessarily a realistic one, simply a valid one -- I'm being a little exaggerated here, but I trust that you understand what I'm trying to say).

***************************************

Thoughts? What would be a realistic bid? I'm tempted to go all fry shut up and take my money, but I would prefer if someone would be more or less up front about explaining the difficulty and what a realistic bid would be.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Completely new all-game usable build menu (Chili)

Post by smoth »

would be a good idea to do a rough draw up of what it would look like.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: Completely new all-game usable build menu (Chili)

Post by Forboding Angel »

I can do that, but honestly, it would basically be a box with tabs. I'll shop up something though.
luckywaldo7
Posts: 1398
Joined: 17 Sep 2008, 04:36

Re: Completely new all-game usable build menu (Chili)

Post by luckywaldo7 »

How do you handle having multiple types of units/factories selected?

Do you lump all the command options together spring-style, or tab through commands for your different types of units starcraft-style?
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6240
Joined: 29 Apr 2005, 01:14

Re: Completely new all-game usable build menu (Chili)

Post by FLOZi »

There is no one-size fits all solution.
luckywaldo7
Posts: 1398
Joined: 17 Sep 2008, 04:36

Re: Completely new all-game usable build menu (Chili)

Post by luckywaldo7 »

FLOZi wrote:There is no one-size fits all solution.
No perfect solution, but allowing some limitations, you could probably get reasonably close.

CarRepairer's chili keyboard menu is already close*. It has zk's gesture-style hotkeys baked in, but other that that, it's basically just an automatically-generated gui for your keybinds**.

*Does not handle factory build orders - those are left for another widget (like buildbar or factorybar)

**Only for those keybinds that are some combination of (no-modifier)/alt/ctrl/meta + qwerty/asdfgh/zxcvbn -- which is actually pretty good
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Completely new all-game usable build menu (Chili)

Post by Silentwings »

I think it would be possible to make a minimalistic chili UI that would satisfy the basic needs of a BA/ZK/etc style RTS game - not much more than a chilified version of the engines default menus. Ofc Spring is more versatile and the further one gets from *A derivates I guess the less useable it becomes.

This is the hardest part of writing a chili UI, without using existing code I would estimate 2-4 full days work if it was me (which it won't be). I think it makes a nice self countained bounty project, but idk if you would find someone wanting to do it.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: Completely new all-game usable build menu (Chili)

Post by Forboding Angel »

luckywaldo7 wrote:How do you handle having multiple types of units/factories selected?
IMO spring style. The way that sc2 does it is freaking irritating. If sc2 did abilities the way spring lumps commands, microing a death ball properly would be simple as pie and it would lower the skill ceiling of the game tremendously.
luckywaldo7
Posts: 1398
Joined: 17 Sep 2008, 04:36

Re: Completely new all-game usable build menu (Chili)

Post by luckywaldo7 »

Here is a copy-pasta of a design/brainstorm document I made like 5 years ago:

= Click & Hotkey Friendly Menu Mockup =

== Basic Command Menu ==

The command menu is set up so that buttons correspond exactly to keys on the keyboard. Naturally there will be icons also but that isn't the point of this mockup. Besides hotkeys, the advantage for click users is that they never have to click in different places for the same command.

Image

There are still some major problems. Notably, only the most basic commands are here; no 'special' commands like manual fire or bomber rearm are shown. The major problem is that there is not enough space to fit them all, which is a problem with the current menu anyway.

== Build Nested Menu ==

The 'Build' command opens up a gesture/radial-like menu. All of the buttons correspond to hotkeys still. (Might need some indication that this button is different, opening up a nested menu instead of a normal action)

Image

Click on economy, and naturally the economy page is shown:

Image

The green arrow takes the user back to the previous page, while the red cancel cancels the entire build selection and takes the user back to the standard command page. (Build will also take the user back as it resets the menu; redundant but fine I think. Either way is intuitive enough)

_Moved cancel button as per suggestions. Just threw it on 'B' (like SC2 but there might be a better place to put it)_

== Building Modification Menu ==

This menu appears when you place a building down. Just the current modifications so far: q is for 'plop nanoframe' and z and x increase or decrease build spacing.

Image

The 'rotate building' maybe should also be added (it would be contextually remapped to corresponding keys). Although there is so much space, instead of two buttons for rotating two different directions, it maybe should be 4 buttons for facing it directly in the desired direction.

The cancel is on 'B' like the build menu, again there might be a better place for it.

Notable problem: 'q' isn't a command button, it needs to be held (also might work as a toggle, but not a command), so it needs something special for its difference to be intuitive. Maybe if possible, it is dull except when it is 'active', by being held down.

== The Selections Menu ==

This menu is accessed either by clicking the tab or by holding down ctrl (letting go of ctrl reverts to command menu). Actually, ctrl+c etc is already used for selections, and I didn't add or change anything from the default uikeys.txt. So the behavior doesn't change at all from current, with the exception of allowing clicks.

Image

If no units are selected, the 'same unit' options disappear.

Image

(Only difference is that I am not showing ctrl+d, although I don't really like that in a selection menu. Maybe it should be shift+ctrl+d anyway, except for kamikazi units which can get a special command in the menu)

== The Toggles Menu ==

I took more liberties with this, because I don't know yet how to best to handle toggles. Instead of holding ctrl, maybe it would instead require holding alt. (I have been experimenting with toggle hotkeys myself and alt seems like a pretty good modifier key to put them on. Possibly also windows key could be used, if spring allows)

There are icons for this also but I am using just text for now.

Image

Here are a few as an example for a unit, maybe a commander. This will be tricky for the same reasons as the command menu: there are too many to fit in the 15 buttons, and they won't all work out mnemonically.

== Major Problems ==
* Too many commands not enough buttons. The current menu has this problem to a lesser extent, but usually it is not too noticable when buttons overflow. It does have more space but isn't constrained to matching keyboard keys.
* Menu doesn't allow for unit construction yet (this kills the menu idea).
* *Terraform* hasn't been added to the menu yet. Presumably it will be single-nested in the command menu but I don't know where would be a good place to put it.
* 'High level' commands (ferry, retreat, embark/disembark) are not provided for.
luckywaldo7
Posts: 1398
Joined: 17 Sep 2008, 04:36

Re: Completely new all-game usable build menu (Chili)

Post by luckywaldo7 »

Forboding Angel wrote:
luckywaldo7 wrote:How do you handle having multiple types of units/factories selected?
IMO spring style. The way that sc2 does it is freaking irritating. If sc2 did abilities the way spring lumps commands, microing a death ball properly would be simple as pie and it would lower the skill ceiling of the game tremendously.
I generally agree, but the starcraft design reasoning was that there were too many special abilities to fit within their 3x5 15-button menu. So they dedicated z,x,&c to "special abilities" and only showed those for one unit type at a time. In my design document I mention several times that there just isn't enough space, and even an expansion to 18 buttons doesn't help enough.

My personal solution, though, was to hotkey multiple commands to a single button, I.E. both "attack" and "area-attack" were hotkey'd to "a", and then I would tap "a" to cycle through them. I found this to be a very elegant hotkey solution, especially if you have custom cursors for each different command. Then the cursor gives you feedback on exactly which command you are prepped to give. It's a little clunky in the menu gui though (I think chili keyboard menu just stacks the icons).
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Completely new all-game usable build menu (Chili)

Post by gajop »

If you want something that's going to work for all games, I think you should reconsider the approach of building the entire build menu initially.
I don't think you will be able to design it so that it will work for all games, as that's a high abstraction-level component that will likely be different from game to game. You could probably pull something off if you made a build menu for TA-clones: BA/ZK/EVO, but anything else will have trouble adapting.

What you could do however is start by having making build icon components, which are reusable elements that can:
- Display build icons or generate them from the model on runtime (and cache it if possible) if no such icon is available (I want to do the latter part for Scened)
- Display the text and tooltip of the build option
- Display the hotkey and bind it
- Allow a build command (or some custom action) to occur when clicked or invoked
- Allow build options to be disabled (greyed out), not displayed (e.g. if the user hasn't reached that point in the game yet where he/she would unlock it), or be on cooldown (not available, but the time when it would is clearly indicative)
- Allow it to display additional custom values/icons (probably most likely used to represent resource cost or the amount of currently available units)

It goes without saying that the above mentioned should be customizable and that it probably isn't a complete list of features it needs, but it's something to start with. I should add that I think it would be better to provide an API for this instead of a Lua config file, as this is a Chili component rather than a concrete widget.

The second part would be to create something that would generate these build icons from the existing units and arrange them into tabs/layouts/w/e. This is something for which you may want to create config files though, but I doubt you'll ever be able to make this in a one-fits-all solution (although the above mentioned build icons should solve 90% of the coding requirement).
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Completely new all-game usable build menu (Chili)

Post by smoth »

"All games" is what we already have. I think projects need to move to thier own GUI now
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: Completely new all-game usable build menu (Chili)

Post by Forboding Angel »

gajop wrote:If you want something that's going to work for all games, I think you should reconsider the approach of building the entire build menu initially.
I don't think you will be able to design it so that it will work for all games, as that's a high abstraction-level component that will likely be different from game to game. You could probably pull something off if you made a build menu for TA-clones: BA/ZK/EVO, but anything else will have trouble adapting.
This is for build menu only, don't lose sight of that. And you knew very well that normal ta-ish rts games is what I meant.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: Completely new all-game usable build menu (Chili)

Post by Forboding Angel »

smoth wrote:"All games" is what we already have. I think projects need to move to thier own GUI now
Many of them don't really have the capability. This is what that addresses... Providing a better option than what we currently have while maintaining the same functionality and adding more advanced functionality without making it so game specific that it cannot be used by many different projects.
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

Re: Completely new all-game usable build menu (Chili)

Post by gajop »

Forboding Angel wrote:This is for build menu only, don't lose sight of that.
My post was talking only about the build menu, although my suggestion was to focus on only its components, rather than the whole thing.
Forboding Angel wrote:And you knew very well that normal ta-ish rts games is what I meant.
Sorry, this wasn't clear to me, perhaps because of this (emphasis yours):
Forboding Angel wrote:I cannot stress enough the requirement that this work with ALL spring games with little effort.
With that in mind, I think your proposal is very much doable in the full, and isn't very hard at all.
The only issue is that you will probably end up being its sole usert, and even if ZK were to use it, they would likely add up custom changes that would lead to codebase divergence soon.
You still have my full support though (although I don't volunteer :P).
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Completely new all-game usable build menu (Chili)

Post by smoth »

Forboding Angel wrote:
smoth wrote:"All games" is what we already have. I think projects need to move to thier own GUI now
Many of them don't really have the capability. This is what that addresses... Providing a better option than what we currently have while maintaining the same functionality and adding more advanced functionality without making it so game specific that it cannot be used by many different projects.
The games do, the content devs just don't want to put the time into doing them or learning enough and then doing them.

Given time you can do it, there is nothing beyond time and effort for this. We have everything we need. Some things like animated 3d previews in the gui are far away and no one ever wants to do the(inbefore that hack crap that uses a living unit) work to make it happen. Just the time needed has not been seen worth it by anyone. One of those "YOU CAN TOTALLY DO THAT" but no one really ever does.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10452
Joined: 24 Jan 2006, 21:12

Re: Completely new all-game usable build menu (Chili)

Post by PicassoCT »

So you cant.
Cause its not economical. Reasonable and honest.
Same goes for gui. It takes a huge amount of time to learn and get stuff done.
Also is not half as much fun.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Completely new all-game usable build menu (Chili)

Post by smoth »

we'll see..
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Completely new all-game usable build menu (Chili)

Post by Silentwings »

I wonder how many potential users would want to have this - ofc presumably Evo does. Would be interesting to hear what the devs of games that are still very much wip, and maybe haven't built a UI, think about this.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: Completely new all-game usable build menu (Chili)

Post by smoth »

Silentwings:
smoth wrote:I think projects need to move to their own GUI now
Post Reply

Return to “Bounty Offers”