How we designed the hotkey system

Discussion in 'Planetary Annihilation General Discussion' started by metabolical, May 27, 2014.

  1. SikkeSakke

    SikkeSakke Member

    Messages:
    56
    Likes Received:
    12
    I agree with this too. Even I'm getting used to it, it feels like I have to select two times bot factory when I want to build bots. I can live with it, but IMO, life is better without it.
  2. websterx01

    websterx01 Post Master General

    Messages:
    1,682
    Likes Received:
    1,063
    I would prefer it if there was more columns, but fewer rows. I don't mind losing as much horizontal space as I do vertical space, since the sides of the screen are less of a focus than the center, where the extra rows begin to intrude.

    I would prefer this actually, it makes a bit more sense.
    DuWhen likes this.
  3. vorell255

    vorell255 Active Member

    Messages:
    492
    Likes Received:
    190
    WASD is very important to me. I don't know the stats on the number of people who use it. But I do know that being able to rotate the camera fast and efficiently is a must for me. The arrow keys are to far away, and the middle mouse button is not as precise or as easy to use as WASD. I have found it nice to be able to use the scroll wheel and the left and right buttons while I am moving the planet around with WASD.

    As soon as the save button works again in the settings I will rebind what ever is on those keys.

    I DO really love how if you hover over any thing on the right command bar it gives you the hotkey, even if you rebound it. That's very helpful.
    Planktum and popededi like this.
  4. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    So I tried around a bit with the default hotkeys and there is one major flaw I see:

    Try to queue up something like this:

    mex, turret, mex, turret, mex, turret

    How should the player work around the fact that those buildings are in different groups currently? Waiting 1 second every time you switch between groups is completely unacceptable.
    ORFJackal, tatsujb, Clopse and 2 others like this.
  5. Ekanaut

    Ekanaut Uber Alumni

    Messages:
    1,807
    Likes Received:
    147
    Completely agree. We're working on iterating on the current design to be able to switch between categories at will without the timeout delay and also addressing the amount of vertical space taken up by the column height.
    websterx01, ace63, neophyr3 and 3 others like this.
  6. elodea

    elodea Post Master General

    Messages:
    1,694
    Likes Received:
    3,040
    The design that uber wants necessitates a delay. When you press z,f to build some unit based on the default grid of hotkeys, you don't want it to select all idle fabbers intead. Or whatever it is you've bound to f.

    I strongly dislike this two layered hotkey state we have because while you may be simplifying the hotkey system in and of itself, you are at the same time actually making it more complicated when you then consider how it interacts with actual gameplay. It's very sad that hotbuild is having to do work arounds like making it revert instantly back to the default state. The grid system should not be so large that it conflicts with general commands as per

    Basically, I think uber needs to stop enforcing grid based hotkeys. If players want to have unique keys sequences for every single unit and building, then they should be able to do so in the binding options. If players don't want this, they should also be able to do so in the binding options.

    The only requirement I would expect from a hotkey system is the flexibility to choose how I want it work. I don't think it should be dictating how players should play, which is exactly what the category select delay feels like it's doing. An arbitrary mechanic to hide conflicts between the grid based hotkey system uber wants, and the actual way said hotkey system works ingame with general hotkeys for reclaim, repair, alt fire, etc.etc.
    Last edited: May 27, 2014
    ORFJackal, Clopse and aapl2 like this.
  7. metabolical

    metabolical Uber Alumni

    Messages:
    312
    Likes Received:
    1,366
    A couple additional things raised in this thread:
    The 1 sec delay is in the code and can easily be changed. We were already thinking about this before we shipped but didn't get to resolving it. I didn't write it so I don't know it off the top of my head. We're looking at a slider or a on/off switch. It's really good for the factories when you might want to queue up a bunch of one unit without pressing two keys. It seems less good in the build of building case where you shift build as many of a building as you want, and then you choose another.

    This build bar is somewhat compatible with WASD. You can set WASD and it will be overridden temporarily while the build page is up. However I would expect this to be only true as long as you are selecting build plans. I guess this is where the 1 sec delay would get in the way for buildings again.

    We thought about whether two key presses were a problem, and while I hated the idea in theory, in practice it didn't bother me the way I thought it would. Maybe I'm so used to multi-key presses from SC2 (which always start with B for build or V for advanced) that meant I'd already paid the learning price.

    I understand that it may not be for everyone, but I'm hoping it will be great for a lot of people, and easy to learn for people new to the game. I think a couple more tweaks will get it to where we want. Thankfully, we also have an excellent modding community that already has an alternative.
    Remy561 and wondible like this.
  8. metabolical

    metabolical Uber Alumni

    Messages:
    312
    Likes Received:
    1,366
    We actually created a mechanism that allows you to have "layered keyboard maps," so you can have a mod that loads another layout for any reason, not just a grid. So if you guys like the ability to have key sequences but don't want it to be based on a grid, that's no problem. Our system makes it so you can have keys that load an overriding set of keys at that context, we just happen to have it based on a grid.
    wondible, elodea and lokiCML like this.
  9. elodea

    elodea Post Master General

    Messages:
    1,694
    Likes Received:
    3,040
    Ah ok thats nice to hear!

    I'm still concerned about this two state hotkey system though. The way i see PA doing it right now is

    Layer 1: general hotkeys and commander actions
    Layer 2: category hotkeys

    Wouldn't it be better to do it like

    1 layer: general hotkeys and category hotkeys. So i can press s to make my fabber stop moving without having to re-select it if i happen to have a category selected at the time.
  10. Quitch

    Quitch Post Master General

    Messages:
    5,850
    Likes Received:
    6,045
    Your current setup appears to violate item 2 because once I'm in a build tab I stay in that tab for a second or two. So while it might be VD to build the first thing, it's only F to build the second because the tab is locked in. Unless I wait too long, and now it's now VF.

    It should be two keys every time because muscle memory is the primary driver of speed of play. Frankly I prefer the hotbuild2 way of cycling through buildings so I can have my most important (and common) units only a single keypress away rather than two.

    And if you insist on staying in a tab for even a second, I need to be able to still have the keys which move into the other tabs so I can rapidly switch between them. Waiting for the tab to deselect itself is clumsy and slow.

    Finally, the mouse should never, ever, override my keyboard behaviour. Accidentally moving my mouse over the bar should not override the hotkey behaviour.

    My biggest disappointment with this system is how it seems to have broken hotbuild2 in a way that cannot be repaired. Oh, and that MASSSIVE build menu. Seriously.
    cptconundrum likes this.
  11. Schemya

    Schemya New Member

    Messages:
    25
    Likes Received:
    23
    This violates your requirement 2. You have to think about which section you're in (if you're not in the right section Z will build something else, if no sections are selected Z won't build anything but it will select a section) and that's very confusing and annoying. It happens to me all the time.

    Also let me add :
    10. Mouse movements (selection by hovering on the menu) and keyboard sequences should not conflict.

    The menu is so big that there is a high probability for the mouse to inadvertently hover on and select one of the section, while you are trying to use the hotkeys. My brain hurts every time. :)

    Other than that, I think it's quite nice for a first pass.

    PS : I'm a (very) casual gamer and I've never used the hotbuild2 mod you're talking about.
  12. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    I've played a lot of SC2 at a decent level using grid keys and I love them there. However I think in SC2 the usage patterns of players are different compared to PA. In PA you basically queue up more stuff and you generally give more complex build commands, while in SC2 you usually select a worker with the aim to make one single building or at worst a bunch of the same type. So the 2 key presses are not that bad of an issue.
    In PA more complex command sequences demand a system that does not require to switch between different groups of buildings via extra key presses. Using the hotbuild system is pretty much perfect for it imho. But obviously as the person who first wrote hotbuild for PA and who copied it from FA after using it there for years I am kind of not completely objective on this ;)
    aapl2 likes this.
  13. aapl2

    aapl2 Active Member

    Messages:
    260
    Likes Received:
    175
    Hotbuild is partially broken by this update :C
  14. wondible

    wondible Post Master General

    Messages:
    3,315
    Likes Received:
    2,089
    Yeah, the ultimate answer is making the input system moddable and composable. Some things talked about in the past: swapping/changing the left/right mouse button functions, or inverting the shift behavior so it's queue-by-default. Currently these require either shadow live-game, or try to punch-out large hairy functions, if they are even exposed.
    lokiCML likes this.
  15. ucsgolan

    ucsgolan Member

    Messages:
    158
    Likes Received:
    0
  16. brianpurkiss

    brianpurkiss Post Master General

    Messages:
    7,879
    Likes Received:
    7,438
    Thanks for the insight.

    I'm sticking to Hotbuild2.

    For several reasons. Main reason, I don't like having to wait inbetween hotkeys.
    kryovow and stuart98 like this.
  17. proeleert

    proeleert Post Master General

    Messages:
    1,681
    Likes Received:
    1,656
    Patience, didn't have a lot of time recently, I'll get it fixed.

    I think the "default" keybind implementation is neat, but the config screen is just awful. You guys use a grid why don't you recreate the grid in the settings and let people drag keys to the grid ?
    I think it's a good system just not for everyone.
    I'll be happily maintain hotbuild2 for the coming future to give people an alternative. But in the end both systems make the game so much better and it's just a question of preference. This is the beauty of this game if you don't like it well mod it :)
  18. midspark

    midspark Member

    Messages:
    66
    Likes Received:
    47
    The only problem I have is the 1 second delay. I would rather have the structure tab open until I pick something, have the structure tab close after I either let go off the shift key or I build the item. Also, have the structure tab close if I press the esc key or some other key.

    Also, WASD is not overwritten temporarily when the structure tab is open currently. At least it hasn't worked for me.

    Lastly, I really hope you implement a better UI, both in game and in changing the hotkeys.
  19. SikkeSakke

    SikkeSakke Member

    Messages:
    56
    Likes Received:
    12
    Now in grid there's letter in each box indicating what key does what. That indicator is missing at action commands at right on screen. It'd be nice to get that letter there too - I had to keep screenshot of my action hotkeys open on my second monitor when I changed my hotkey layout.
  20. SatanPetitCul

    SatanPetitCul Active Member

    Messages:
    267
    Likes Received:
    197
    In my opinon this requirement is not so good. On the contrary, Hotbuild2 broke this requierment, and even i was surprised at the begining, i quickly get use to it and i think it is actually very very smart.

    Hotbuild2 is innovative and efficient, i m surprised you don't just copy it, because it is actually imo the best hotkey system i have ever seen.
    mishtakashi and tatsujb like this.

Share This Page