Please switch to hardware Key Bindings

#1

I-Novae please consider switching from symbol based key bindings to Hardware based key bindings.

This has the benefit of a default layout that will work with every Keyboard or Device, no matter in what layout it is currently set to.
On many layouts, many symbols are on other buttons which can jumble up the default layout to unplayable and will always require a manual setting.
With hardware based key Bindings you could drop the AZERTY setting … you get the drift.

Prototype 0.1.2:

Elite Dangerous:

StarCraft 2 with active Int. Layout:

StarCraft 2 with my usual Keyboard Layout … no ingame settings were changed:

Also, having the whole input system. set up like this would be a big plus, please make this part of I:B as solid as possible and take a note from Elite Dangerous, they really nailed that part in my opinion.


Edit: Some more games doing it:

Wargame Red Dragon

5 Likes
Weekly Update #104
#2

I’m not sure I understand then, for the key “S” how would that look like in E:D ?

#3

It looks something like this:

But I think those are just handles to make the config human readable. So “Key_D” is probably just a handle for a Keyboard scancode or Virtual-Key Code and is later translated into Keyboard scancode,
The game does listen for scancodes, input from the Keyboard directly.
When a player opens the game and looks at the key bindings menu the game loads the config and then translates it to whatever layout the OS is set to.
I’ve seen this done in a lot of games, can’t remember though because exactly of the reason that I didn’t have to go into the bindings menu that often.

I, of course, don’t have any idea how you have it implemented currently but here are some stuff that may be useful:
Map VK->SC
Virtual-Key Codes
Map Char->VK

#4

As the XML config is a temporary workaround for key binding and doing this stuff through an UI is certainly on the TODO list, isn’t that a bit of an overkill?

#5

I suggest this for the future. I don’t care if it stays the way it is for the next couple of months. I also don’t care if the configs stay human readable or are written in Virtual-Key.

Also this isn’t about how to change the Keybindings. It’s how the game handles them.

I just think it would be a nice thing to have for everyone with different layouts and even different hardware sometimes (105 Keys for instance).

#6

The game uses Virtual Keys and if I’m understand well you’re suggesting to switch to scan codes ( “real” keys ).

The problem I have with this idea is it kind of makes sense for QWE/ASD but when it comes to other keys it might not. Ex.: let’s say we have a map system, it’d make sense to assign it to the M key on Qwerty. However on an Azerty keyboard, this key physically maps to “?”. It is usually considered bad programming to use real scan codes instead of virtual codes.

1 Like
#7

If I can use my joysticks I’m all for it. :grin: But of course I can wait until more pressing stuff gets done first.

#8

No matter how you do it under the hood, the most important thing for me would be that you can rebind stuff to EVERY key on the keyboard - including keypad keys. And also every key on multi key mice.

cough

#9

I think the notion of putting functions like Map on the “M” key is somehow outdated and the amount of keys that follow the notion have decreased over the years.

E:D for instance has following buttons left that follow the notion:

  • J - Jump
  • L - Landig Gear
  • B - … whatever that is
  • P - Pause

35-37 Functions are distributed in some other fashion on the Keyboard.

Above is quite a good example for instance. For such a frequently used button the Jump key is pretty far away from all of the rest of the navigational keys. I don’t think it would be that hard for people to learn to have “C” for Jump for instance.

Personally, those are the keys of which position I don’t like the most. I can remember how strange it was to activate them when starting to play E:D.
Mind you that I touch type, in fact I don’t even have markings on my keys.

Also. For instance in the German or Swiss layouts, the right part of the Keyboard is heavily altered to QWERTY. QWERTZ in fact.
There are dozens of games that have a lot of neatly ordered functions on the right hand side of the board, like zoom in zoom out on the brackets. Those totally break down when used with those layouts.
US/UK

GER

SWISS

You can see how Y and Z are swaped and the brackets are in completely different position. And most importantly. They are secondary functions. You need the shift key to access them.

I think after 2-3 hours of gameplay most players would prefer the most accessible binding configuration. Having that be the default consistently, no matter what layout the player uses and giving the player an already well configured default would be preferable in my opinion.

In the above layouts that are used by millions of people there are more then 10 deviations in key character/symbol positioning from QWERTY. Compare that to the 1-5 Functions that have something in common with the character they are defaulted to. (Map, Jump, Landing) As well as the removal of the need to provide several default binding configs.

I think this is the main reason why most games do this nowadays. Less hassle for international users.

Sure there will be people out there that used, for instance AZERTY, forever and are used to have the key on the home row, I can understand that.
I think using “real” keys would be the more progressive and modern approach.

For anyone that wants to give his opinion, not that I say we should decide, just as an additional input:
For (default) key bindings. How would you like them to be applied to your Keyboard?

  • Fixed to character/symbol (how it is now)
  • Fixed to physical button position

0 voters


In the context you gave? Because of the change of possible character/symbol meaning? Or because of possible implementation bugs?

1 Like
#10

One problem I’d see with this is what happens with this thing you commonly see in in game chat:

“How do I open the map?”
“Oh, you just need to press the M key.”

If you read data from virtual keys, then you get the response:
“Cool, thanks.”
With the possible addition of:
“Awkward placement though. I think I’ll remap it to Z.”
Or possibly:
“My keyboard doesn’t have an M key!”
“Oh, OK. In that case just go to settings and change it to something else. It’s in Controls->Change Bindings, in the Navigation tab.”
“Cool, thanks.”

“Wait, how the hell did you write Map if you don’t have an M key?”

If you read data directly from the keyboard, then you get the response:
“I am pressing the M key but nothing is happening! Help!”

The above can also apply to things like forums or wikis or quick start/strategy guides, etc.

With virtual keys, the position of the keys isn’t universal, but their default setting is. You’ll never find a keyboard where the map isn’t mapped on the same button that creates the letter M. That makes much more sense in my opinion.

A middle ground would be to have different presets and/or to read the system’s keyboard layout and choose a preset when the game first runs.

1 Like
#11

Sadly this isn’t true.

For instance many games have the “open console” on ~ … ~ isn’t mapped on the swiss keyboard. Nowhere. It just doesn’t exist there.

I had a lan party with my friend and they had to go into the config file for the game and change it because the function wasn’t possible to change in game.

It was really anoying. Doing that for 10 people.

1 Like
#12

Well, the example you’ve given doesn’t disprove what I said. The key was mapped on ~. It’s just that the keyboard had no way to print the ~ key.

Which IMO is more of a bad design choice on the parts of many people. The keyboard designers (keyboards in my country support our language but you can easily switch them to US layout and have them function like a standard US keyboard. I don’t see why someone wouldn’t allow their keyboard to do that, given that much of computers and much of the web is (for better or for worse) based on US-centric designs), the OS designers (for not allowing you to choose/easily change to a US keyboard layout), the game designers (for not allowing an easy way to change its binding), the mod designers (I’m asumming you had to go to the console due to modded content).

Although I find that weird. What do Swiss programmers do when they have to write the ~ symbol? Do they have to buy a special keyboard that supports easily writing the ~ character?

#13

This whole argument is pro and contra and I didn’t disprove what you said because there’s nothing wrong with it.

I’m just saying that the reason many game developers choose physical based bindings is because, over the years, they noticed a lot more people having the problems I described then the ones the opposing side list.

No, all I wanted them to do is connect to a the server that was located on the local network, because the server browser, of course, didn’t have a LAN tab.

The keyboard isn’t the problem. You can switch layouts with every keyboard with not much work in the OS, just that the printing won’t be right anymore. Switching my friends layout just for a couple of days would have created more hassle for them, that’s why I had to go into the config.


Well we can’t change that the majority of people worldwide don’t use the US/UK Keyboard layout. I don’t like that either, I use a completely different layout because of many reasons.
With an International userbase we will have a runaway effect of more and more people having problems because the default contradicts with “relative placement” (keys placed close to each other because they are used often together) or unconvinient (ALTGR+Ö for something like inventory) and they either have to change most of the keys in the whole config or be provided with a good default.

QWERTY
AZERTY
Chinese
German
swiss
chech
russian
french

etc etc etc


I just noticed it is on the SWISS keyboard. Yes I remember now. The game still didn’t like the way you had to input it trough the ALT+^ key and didn’t accept that. Game was Chivalry - Medival Warfare. They added the console key to the keybindings menu later, so I didn’t have to do it on later LANs.

Most swiss programmers probably switch to another layout and maybe also their Keyboard.

This is what I’ve done:

1 Like
#14

Yeah, I agree, a solution for people who don’t have a US layout easily available sounds like a good idea. I just think that a good set of alternate default keyboard settings (possibly created with the help of the community, possibly choosable during installation or the game’s first run) is probably better than reading the codes the keyboard/mouse sends directly.

I imagine something like starting the game and having the game ask you to choose a layout and pilot the ship for a while to choose the layout you prefer the most, maybe as part of the tutorial. Like how some FPS games ask you if you want inverse look during the tutorial.

I don’t know, I’ve never had a problem with the keyboard layout before, so you probably know better. Just my 2¢.

#15

Physical locations please.
It’s a big hassle that every time I launch a game, it’s either 10 mins of remapping (and you have to look up where the original key is on a US keyboard), or finding functions in unreachable places. Not to speak about IDEs shuch as Visual Studio (or VIM or emacs, for hell’s sake).

It’s so refreshing to stumble into programs that do it the right way. I wouldn’t ask for this if it was something that takes time to implement, but I know it’s most likely trivial, so there’s no reason to break it.

#16

Are there tools that map your keyboard and automatically change the software keybindings for the equivalents compared to a QWERTY?
For example, with an AZERTY keyboard, the W key would be remapped Z.

#17

I’m sure there are, but then if I open chat, everything I type is jumbled up.
Some games do that on their own. :confused: