Teeny-Tiny GUI Suggestions: Hotkeys

Discussion in 'Planetary Annihilation General Discussion' started by Culverin, April 17, 2013.

  1. Culverin

    Culverin Post Master General

    Messages:
    1,069
    Likes Received:
    582
    So small I don't think it's worth adding to the features list...
    But that'll be for you guys to decided.


    1. All buildings/units to have construction hotkeys on left side of keyboard. It's small, but helps with the whole e-sports enabling.
    • All hotkeys rebindable (including move/attack/stop/patrol/reclaim)
    • All hotkeys binding to show on the GUI panel mouse-over.
    • All hotkeys that show on the GUI mouse-over be dynamic. So a re-bound key is displayed accurately rather than out-of-box.


    Thanks again Uber!
    Really psyched for this game!!!
    :geek:
  2. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    How do people think the hotkeys should work for buildings or construction in general?

    Remember that the system has to be expandable and take into account the fact that not everything can build the same stuff so things may end up in different slots on occasion.
  3. BulletMagnet

    BulletMagnet Post Master General

    Messages:
    3,263
    Likes Received:
    591
    For construction, maybe consider using numbers and matching them up with their position in the list of things that can be built.

    Natural downside is that shortcut keys change between factories - something which will probably cause confusion at first.
  4. shandlar

    shandlar Member

    Messages:
    115
    Likes Received:
    0
    That's the only real way I can think of that would be universal enough to not be confusing bullet. Have each contruction unit have 9 builds per page linked to 1-9.

    Maybe + and - for forward and backward page. There would definitely be a learning curve, but the mouse is obviously the basic functionality that noobies to the sub-genre would use. Would only cost them a few moments compared to someone who spent the time to memorize the hotkey orders.

    As to OP though thats not really 'on the left side' of the keyboard however... Hardcore esports can always just rebind them to qwe-asd-zxc (I guess, seems kinda silly to me)
  5. ToastAndEggs

    ToastAndEggs Member

    Messages:
    250
    Likes Received:
    1
    Im not sure how Supcom or TA worked so my only reference point is SC, nut i thought they did it ok.
  6. lilbthebasedlord

    lilbthebasedlord Active Member

    Messages:
    249
    Likes Received:
    80
    I don't see anything wrong with the Starcraft 2 system. Almost every hotkey had something to do with the unit's name. Lots of times they overlapped. They weren't really compact.

    I'd like to see useful camera controls and being able to select my commander with a side mouse button.
  7. veta

    veta Active Member

    Messages:
    1,256
    Likes Received:
    11
  8. nanolathe

    nanolathe Post Master General

    Messages:
    3,839
    Likes Received:
    1,887
    After looking at Hotbuild... I... like it. For building anyway.

    Unit construction orders aren't as pretty... but Buildings are spot on.
  9. vebyast

    vebyast New Member

    Messages:
    11
    Likes Received:
    0
    The biggest thing, I think, is the ability to quickly give orders to your factories without going back to your base. Another important thing is to be able to do everything without moving your hands. Finally, we need to realize that selecting factories is just as important as giving them orders, and that a full thought isn't just "build a unit", it's "select a factory and build a unit".

    Taking all that into account, the "one key, one action" system almost certainly won't work. The left hand only has about about fifteen keys available, and even with horrible multi-modifier chords you don't have enough flexibility. Instead, you want a system that uses sequences of simpler commands to do things. UNIX text editors switched to that model in the eighties, and even desktop environments, browsers, and basic office tools - Word, Excel - are starting to move in this direction. The Hotbuild system linked above is a step in this direction, as it binds entire classes of building to single keys by having the user hit the key repeatedly to cycle through the class.

    ===========================================================

    Because I'm horribly bored, I'm going to stream-of-thought brainstorm a system based on vi. It's probably bad, if only because it was produced at four in the morning by a computer scientist for a computer scientist, but I'm hoping there'll be some useful ideas in it. Here lies madness.

    To start with, each type of factory and constructor has a key. These keys are completely unique. When you press that key, you get an instance of that factory, which you can now issue unit commands to. If you hit "e", you will always get a water factory; if you hit "q", you will always get a vehicle factory. And so on.

    Each unit type has a key. These keys are unique within unit groups, so, while there may be a vehicle and a bot on the same key, there will never be two things on the same key that can be built out of the same factory. Furthermore, the same key will generally get you the same "type" of unit across various factories and builders. Hitting "a" will always get you some kind of artillery, hitting "r" will always get you anti-air.

    To use this system, you build sentences out of your factories and units, mad-libs style. "qa" means "use a vehicle factory to build an artillery unit". "wr" might be "use a water factory to build an anti-air unit". Of course, you can also use only part of the system at once; selecting a factory pops it up in the GUI, at which point you can just use the mouse to hit buttons, or you can select factories using the mouse and then just build units from there.

    There's a lot of complexity you can layer on top of this. For example, you could insert numbers into your command to repeat things: "3qa" means "select three bot factories and have them each build one artillery", "e3a" means "select an idle bot factory and build three artillery". Another thing to do might be to use another set of prefix keys to select factories by different criteria; for example, hitting the "d" key before specifying a factory type gives you an idle factory, "a" gives you nearby factories, "t" gives you t2 builders and factories. "at3qa" means "use the three nearest t2 bot factories to build artillery". You'd probably want an entire set of these criterion prefixes to allow users to select only on-planet factories, only idle factories, and so on. If you're building a mod that has unit tiers that aren't tied directly to the factory, you could use numbers after the unit type to specify which tier you want. "qa3" means "use a bot factory to build artillery, tier three". You could also work cons into the same framework, maybe even reusing some of your noun keys as appropriate - "ca" means "select a construction bot and build an artillery building", "ca2" means "select construction bot and build t2 artillery building".

    If you really want to go nuts, you can formalize this into a fully recursive grammar. For example, let's say that "b", when used as a selection prefix, takes a unit type and selects factories that are building that unit; now "baqr" selects a bot factory (q) that's currently building artillery (ba) and tells it to instead make anti-aircraft (r).

    If you've somehow ended up with a "megafactory" that builds way too many types of units, or a "megacons" that can build way too many kinds of buildings, you might give production targets their own set of adjectives. For example, you might break a construction bot's production targets down into "d" for defense buildings, "a" for attack buildings, "e" for economic buildings, "s" for superweapons, and "q" for miscellaneous.

    Advantages:
    * Unless you've got a hugely overloaded factory, no collisions.
    * Same keys do the same things
    * Access your factories as flexibly as necessary without leaving the front lines
    * Many more possible actions than a naive one-per-action system
    * Easily extended - adding words to a grammar is much better than wedging your hotkey into a dense grid of randomly-placed junk
    * Each key contains less information, so you can get started on a command when you're only halfway through figuring out what to press to get it
    * We get the entire "select factory, build unit" thought, but there's a nice divide where to switch back and forth from GUI

    Disadvantages:
    * Conceptually complex
    * Longer thoughts might not be as fast as just moving the mouse to hit buttons

    Up in the air:
    * Huge depth gives dedicated players an advantage. This could turn out to be a "learning the system" reward, or it could be a "n00bs need not apply" problem.


    Ok, now that that's pushed its way out of my brain, I think I can stop thinking now.
  10. dallonf

    dallonf Active Member

    Messages:
    124
    Likes Received:
    34
    I like the "Grid" system from Starcraft 2. Basically, the left side (or right side, if you're a lefty) of the keyboard lines up 1:1 with the command icons onscreen, so the grid looks like:

    Q W E R
    A S D F
    Z X C V

    That makes it really easy and intuitive to learn. It's the perfect balance between speed and onscreen reference.
  11. syox

    syox Member

    Messages:
    859
    Likes Received:
    3
    The Nerd in me loves it.
    The gamer in me is suspicious.
    Conclusions: try it in alpha or beta!
    I like who u use a 4x3 grid and not a 5x3!

    My suggestion:
    More units with less commands per unit. But different between each other.
  12. sylvesterink

    sylvesterink Active Member

    Messages:
    907
    Likes Received:
    41
    Again, I'll point out that the classic TA hotkey system was quite effective. It's essentially a selection grid, but paged for expandability. It could stand to use some improvement, most notably the ease of page navigation and readability, but in the end, I think that with large construction sets it scales up very well.
    Zero-K's system is similar, though I feel that the paging isn't as quick to navigate. (But then, I'm not as experienced with it.)
    The Hotbuild GUI that veta mentions is very interesting, but when compared to the TA system, I think that it may end up being less efficient. What I interpret it as is similar to a grid-type system (though using FA's hotkeys, which I found less efficient), but subsequent keypresses navigate pages. This means that to get to a page 3 selection, you would have to press one button 3 times. The TA system means pressing one button for page 3, and pressing another for the item to be built. Also, with the Hotbuild method, accidentally tapping one too many means you would have to retap the sequence to cycle back through.
    Take my concern with a grain of salt though. I haven't ever used the Hotbuild system, so I can't exactly judge it properly.

    In any of these cases, the important thing is that if some sort of paging system is used, items would be grouped per page based on what stage of the game they would be most useful, to avoid switching pages as much as possible. Hotbuild seems to do this right by selecting the highest available tier first, which is generally ideal in a Supcom environment. TA didn't have so much an order as much as a category system, meaning one page was for resource related structures, another for factories, etc. The units weren't particularly ordered, however. Zero-K ordered a bit better by making the pages specific, but each build-capable unit/structure had a smaller subset to choose from.
  13. pantsburgh

    pantsburgh Active Member

    Messages:
    151
    Likes Received:
    39
    The above works. I'd also be happy with a number system as that leaves WASD free for me to bind camera panning + some unit orders on QERF. Assuming 2 rows of units like SupCom, 1-0 would be top row and shift+1-0 would be bottom row or something like that.

    So long as you don't do anything Dawn of War 2 did I'll be happy. That game had the worst non-customizable hotkey system possible.
  14. syox

    syox Member

    Messages:
    859
    Likes Received:
    3
    I realy dislike stuff where you have to press one key several times for an action. Even worse if more actions use different ammount of key presses(?).
  15. xnavigator

    xnavigator Member

    Messages:
    122
    Likes Received:
    4
    I use this.
  16. RCIX

    RCIX Member

    Messages:
    664
    Likes Received:
    16
    This. also, keypress sequences get annoying fast to me.
  17. Cheeseless

    Cheeseless Member

    Messages:
    189
    Likes Received:
    6
    I like the starcraft grid, but i'd prefer fully rebindable keys for everything from general navigation, specific construction, and camera controls as well. I've always liked using wasd to move my camera small amounts in starcraft and AoM and it would be no different here. Also it might be worth it to have certain 'snap' camera hotkeys for navigating a planet (poles and 90º increments) and the system (switch to one planet closer/farther away from the star). But just having them comppletely rebindable with familiar defaults fopr noobs would be good enough. Keypress sequences are also very annoying past the second button. That's why i never play zerg.
  18. crseth

    crseth Member

    Messages:
    66
    Likes Received:
    1
    I love Starcraft and I love the system it uses. It would greatly help me and my friends get into PA more easily if the general idea of the hotkey systems were similar.

    I do not know if it is posible from a practical standpoint to use the same general system, as I recognise that sc is a very differente game. However if it is posible, I would love to see the sc way of doing hotkeys be implemented!
  19. sylvesterink

    sylvesterink Active Member

    Messages:
    907
    Likes Received:
    41
    Stop calling it the "Starcraft" grid system. :x That was only recently implemented in Starcraft 2, where it's been in Spring games for years. TA technically had it too, except TA's was a sensible hybrid that allowed for important keys to be reserved.

    In TA, it was qwerfv, with asd reserved for attack, stop, and d-gun. qw were the top two build slots, followed by er and fv respectively. Maybe not as ordered as a true grid, but easier to navigate and build muscle memory.

    A pure-grid system, like that in Starcraft 2 assumes a certain UI interface, where the commands are shared with build menus. As such it REQUIRES a 2-button build command. One to enter the build menu, one to select the desired item. (For constructor units.)
    However, it's much more sensible, from a design perspective, to separate out the command and build menus, much like it was done in TA, and more notably FA. In this case, the Starcraft-style grid would make little sense, especially for advanced players who may choose to turn off most of the command buttons to save UI space.

    By going the FA route, the player isn't required to waste a command to enter their build menu, as it's already available. It is a bit more challenging to keep the commands organized with this method, but a more intuitive hotkey system can be put into place. (And again, TA's hybrid system of mutable keys for build commands plus fixed keys for other commands is quite ideal.)
  20. Cheeseless

    Cheeseless Member

    Messages:
    189
    Likes Received:
    6
    Well, in that case it might just be better to have a minimally sensible default layout, a few other presets, and absolute customizability of the hotkeys.

Share This Page