Khao
Member
Warning. This issue is kind of... weird, so this is gonna be a massive wall of text. Putting some things on spoilers to make it more digestible.
So. I'm currently working on a Local, 4-Player multiplayer game that supports both keyboards and gamepads. And from the start, I've wanted both input methods to be fully featured and equally polished.
Welp, easier said than done.
The thing is, every player can setup their controls separately. While in the character selection screen, you can click your profile and freely change all your controls. All players can do this at once because they all have their own profile on-screen while they're selecting characters.
This works great for Gamepads. For multiple reasons. Every player has their own separate device. Inputs are generally standardized; Up on the D-Pad or stick is always up. Pressing A or Start (or menu, whatever they call it these days) always confirms your action. It's all completely seamless, and you can change all gameplay actions around, but your menu controls are always consistent and predictable because there's really only one way to do them.
Everything works. Everything's great.
Right?
Enter the keyboard.
Unlike gamepads, nothing is truly standard. Some players prefer the arrows. Some players prefer WASD. Some players need ZQSD instead. And multiple players on one keyboard (even though it's clearly not the ideal option) will absolutely need separate keys, but they still share a single device. They need to have their own confirmation keys. They need their own "cancel" key. They need to be able to set said key anywhere on the keyboard for convenience's sake.
Soooooooooo a player configures their controls. They change the movement keys but holy wait, now that they changed the "up" key, they have to navigate to the rest of the keys using the new up key but the old down key which is awkward as . They change their confirmation key. They change their cancel key. Do you see where this is going? Basically they have to adjust to their new controls as they go which is more than little annoying. Control settings really should be simple and easy. But how do I approach the settings when the keyboard is so complex, with such subjective preferences, and the potential to be shared by multiple players? Another complication that is equally awkward, is that controls have a "default" setting AND a player specific setting that can be saved to a named profile, Smash Bros-style. If a player saves their keyboard preferences to a name, the next time they play, they have to select their name using the "default" keyboard settings, and THEN use their own settings after selecting the name, which might be completely different.
I got a few options in mind, but I really want to see what others think before settling on any of them. Especially if any of you guys have another, better idea.
Solutions 1 and 2 feel like the most appropriate at the moment, but neither of them are perfect. I really want to provide good keyboard support, but it just seems like it's impossible to have keyboard support be as solid as gamepad support when it comes to multiplayer. Either way, I'd love to see what you guys think. If you have another idea, if you think I'm worrying too much, or if another one of this solutions is like clearly the best... please let me know!
So. I'm currently working on a Local, 4-Player multiplayer game that supports both keyboards and gamepads. And from the start, I've wanted both input methods to be fully featured and equally polished.
Welp, easier said than done.
The thing is, every player can setup their controls separately. While in the character selection screen, you can click your profile and freely change all your controls. All players can do this at once because they all have their own profile on-screen while they're selecting characters.
This works great for Gamepads. For multiple reasons. Every player has their own separate device. Inputs are generally standardized; Up on the D-Pad or stick is always up. Pressing A or Start (or menu, whatever they call it these days) always confirms your action. It's all completely seamless, and you can change all gameplay actions around, but your menu controls are always consistent and predictable because there's really only one way to do them.
Everything works. Everything's great.
Right?
Enter the keyboard.
Unlike gamepads, nothing is truly standard. Some players prefer the arrows. Some players prefer WASD. Some players need ZQSD instead. And multiple players on one keyboard (even though it's clearly not the ideal option) will absolutely need separate keys, but they still share a single device. They need to have their own confirmation keys. They need their own "cancel" key. They need to be able to set said key anywhere on the keyboard for convenience's sake.
Soooooooooo a player configures their controls. They change the movement keys but holy wait, now that they changed the "up" key, they have to navigate to the rest of the keys using the new up key but the old down key which is awkward as . They change their confirmation key. They change their cancel key. Do you see where this is going? Basically they have to adjust to their new controls as they go which is more than little annoying. Control settings really should be simple and easy. But how do I approach the settings when the keyboard is so complex, with such subjective preferences, and the potential to be shared by multiple players? Another complication that is equally awkward, is that controls have a "default" setting AND a player specific setting that can be saved to a named profile, Smash Bros-style. If a player saves their keyboard preferences to a name, the next time they play, they have to select their name using the "default" keyboard settings, and THEN use their own settings after selecting the name, which might be completely different.
I got a few options in mind, but I really want to see what others think before settling on any of them. Especially if any of you guys have another, better idea.
Basically, instead of changing keyboard controls while preparing for a match, like gampad users can, you can only set keyboard controls on the options menu, and they can't be adjusted on a profile level. Additionally, it might be a good idea to have normal menus (as-in, not player-dependant), ALWAYS work exclusively using the arrow keys + ENTER + ESC rather than the player-specific settings. That way, your input won't randomly change as you go. The Player-specific controls would then only apply when selecting characters and in-game.
Pros: All awkwardness regarding inputs changing as you go are solved. Since controls are always the same after entering the menu, even selecting your profile won't change the buttons you have to press. Controls are always consistent no matter what you do. Basically, every problem I described is solved.
Cons: Keyboards in general end up feeling like they're lesser than keyboards, as they can't access the same input options with the same level of freedom. Because controls can't be saved to profiles, keyboard players can't really customize their own playstyle. And because controls can't be changed while selecting characters, you have to back out to the main menu every time a keyboard player wants to make the smallest adjustment to their controls.
Pros: All awkwardness regarding inputs changing as you go are solved. Since controls are always the same after entering the menu, even selecting your profile won't change the buttons you have to press. Controls are always consistent no matter what you do. Basically, every problem I described is solved.
Cons: Keyboards in general end up feeling like they're lesser than keyboards, as they can't access the same input options with the same level of freedom. Because controls can't be saved to profiles, keyboard players can't really customize their own playstyle. And because controls can't be changed while selecting characters, you have to back out to the main menu every time a keyboard player wants to make the smallest adjustment to their controls.
Exactly as the name says. You only have one keyboard player at a time, which allows the entire keyboard to cater to the one player at all times.
Pros: You can have both standard inputs (such as arrow keys on every menu, including player-specific settings) AND you get to set your controls during character selection. Profiles and all. You're the sole keyboard player, so the entire keyboard is your property and the generic inputs apply literally everywhere. There's never any confusion involved, and you get to use all features. The best thing, is that when doing this, I can now allow the keyboard player to use the freely use the mouse both in menus and in-game, which makes navigation feel extremely clean when you're the only keyboard player (or the only player period).
Cons: A little bit obvious. There's way less freedom when it comes to multiplayer. Multiplayer with only a keyboard is impossible, at least one gamepad is always required. Again, makes the keyboard feel a bit less supported than the gamepads.
Pros: You can have both standard inputs (such as arrow keys on every menu, including player-specific settings) AND you get to set your controls during character selection. Profiles and all. You're the sole keyboard player, so the entire keyboard is your property and the generic inputs apply literally everywhere. There's never any confusion involved, and you get to use all features. The best thing, is that when doing this, I can now allow the keyboard player to use the freely use the mouse both in menus and in-game, which makes navigation feel extremely clean when you're the only keyboard player (or the only player period).
Cons: A little bit obvious. There's way less freedom when it comes to multiplayer. Multiplayer with only a keyboard is impossible, at least one gamepad is always required. Again, makes the keyboard feel a bit less supported than the gamepads.
Everything in solution 1 applies, with generic menu inputs and everything, except you CAN change your controls in the selection screen and save them, as long as the specific keys match the same keys as the default controls. Basically, you're not mapping specific keys on the menu, but specific actions. Like, you set up the default keyboard controls so that actions 1, 2 and 3 are A, S and D, respectively. Then, when changing options on the selection menu, you can freely swap the inputs for actions 1, 2 and 3 between the predefined keys, and save those specific swaps to a profile.
Pros: All pros from solution 1 apply, plus you get to use some degree of customization during the selection screen AND save stuff to profiles.
Cons: Feels a little bit convoluted? Like, is it a good idea to allow for input options if you don't get to change all inputs? Also your specific preferences stop making sense the moment you change the default controls, so in a way, it can feel MORE limiting than solution 1 despite having more options.
Pros: All pros from solution 1 apply, plus you get to use some degree of customization during the selection screen AND save stuff to profiles.
Cons: Feels a little bit convoluted? Like, is it a good idea to allow for input options if you don't get to change all inputs? Also your specific preferences stop making sense the moment you change the default controls, so in a way, it can feel MORE limiting than solution 1 despite having more options.
Basically instead of providing a list of their currently set buttons, when keyboard users start customizing their controls they get prompts one after the other like "press your jump key" *press* > "press your shooting key" *press* and so.
Pros: Keyboard players have access to all the same options as the gamepad, and there's less confusion when setting controls as they don't have to adjust to their new buttons as they're still customizing them.
Cons: They still have to get used to their new buttons immediately after finishing customization. The problem is definitely reduced, but not solved entirely. Plus, 2 keyboard players setting controls at the same time could get very, VERY messy.
Pros: Keyboard players have access to all the same options as the gamepad, and there's less confusion when setting controls as they don't have to adjust to their new buttons as they're still customizing them.
Cons: They still have to get used to their new buttons immediately after finishing customization. The problem is definitely reduced, but not solved entirely. Plus, 2 keyboard players setting controls at the same time could get very, VERY messy.
Maybe it's not that bad?
Pros: Keyboards stay fully featured, if a bit awkward.
Cons: It's not a solution lol.
Pros: Keyboards stay fully featured, if a bit awkward.
Cons: It's not a solution lol.
Remove keyboard support, who cares.
Pros: All keyboard issues are gone.
Cons: Because there's no keyboard.
Pros: All keyboard issues are gone.
Cons: Because there's no keyboard.
Solutions 1 and 2 feel like the most appropriate at the moment, but neither of them are perfect. I really want to provide good keyboard support, but it just seems like it's impossible to have keyboard support be as solid as gamepad support when it comes to multiplayer. Either way, I'd love to see what you guys think. If you have another idea, if you think I'm worrying too much, or if another one of this solutions is like clearly the best... please let me know!
Last edited: