This thread bothers me because I feel like it is extremely one-sided. That's fine, but I just thought I'd mention it in case people weren't aware of it, and explain the various counterpoints that are not being raised.
From the perspective of these posts, you can only make your game better with rebindable keys, and any developer who doesn't include an options menu is just stupid. But that is very myopic. As a player who never rebinds their keys and hates menus, I am
almost never catered to, because most games do cater to the small percentage of users who want a screen full of options and rebindable keys. As a result, my game experience is always worse because the game, which could have been just a seamless experience, now has a lot of the trappings of an application. It feels bad and I dislike it.
The goal of a creative work is not to cast the widest possible net. That is the goal of a
strictly commercial work, and that's fine, but that's not at all what I primarily think about when I get up in the morning, and it's certainly not how I would classify Handmade Hero. Handmade Hero is a personal project, and I don't want it to have a lot of things in it which I personally dislike.
If not having an options menu means that there's 10% of the player base who won't play the game because it does not have adjustable thing X (rebindable keys, windowed mode, whatever), that is totally fine, and I am not only OK with not having those people play the game, but I'm also
not mad at them because if rebindable keys are important to those players, then they
should avoid purchasing and playing games that do not have that. But apparently, assuming this thread is representative, those players
are mad at me because unlike the courtesy I extend to them to make decisions about what they do and don't want in a game, they are unwilling to extend me the same.
As I said on the stream, for people who really want options, I would generally not be averse to having an options file, or command line switches, or something else "outside the game" that allows you to configure it. In my opinion, this is how it should always have been done, and these should have been standarized at (at least) the OS level, so people had a standard utility that could edit the settings of all games. This would have also allowed for standardized "layouts", so that a game could just say "I'm a Robotron game" or whatever, and then the user's Robotron layout would automatically be applied. Sadly, with people like Microsoft at the helm, you kind of know this is never going to happen, or if it did, you'll wish it hadn't :) But I still think it's the right solution in the large. It's also worth noting that Steam is sort-of doing this now, with their Steam controller, where users can post their configurations for games and share them with each other. That's a good thing, and I hope it catches on - I don't see why they couldn't implement this for keyboards as well!
On the code side of things, given that there is currently no such standard, I feel like there is some magical thinking in this thread about how the cost to the game of implementing rebindable keys is somehow zero. This is odd, because obviously people do know there is a cost - the phrase "otherwise, take a couple of weeks to add rebindable keys" was even used in this thread. Do you know how much stuff can be added to a game in a couple of weeks? Especially on a project where there are one or two programmers, which is most indie projects, adding rebindable keys, while easy to do, obviously takes a bunch of time and testing on all platforms. Did you properly capture PrintScreen on Windows? How about the Windows key? Wait, what if some players
want those keys to work? What if others want to bind them? There might be a
large amount of work, depending on the platform, in actually getting all bindings to work properly, because it may involve intricate OS passthrough code that depends on the key. It'd be nice if it didn't, but the reality of most OSes is that they don't make it easy to be fully compliant with all operating system key behavior while still allowing the user the full choice of keys on the keyboard as rebind targets.
For the development cost of adding rebindable keys, no matter how bad your implementation, you lose
something in the game. The devs could have implemented another boss monster, for example, or improved the frame rate in that part that was laggy, or whatever else.
No matter how many hours were spent on rebindable keys, on a small-team game, all the other players of the game lost something because you got rebindable keys. Programming time never comes out of thin air. You were always trading
something else that could have been done instead of rebindable keys. So it is pure fallacy to think that adding rebindable keys only helps your game. It definitely hurts symmetrically, and you have to prioritize whether you think that the win from having rebindable keys is more important than whatever else you would have spent that time doing.
Furthermore, I also disagree with the statement that rebindable keys somehow drastically change the accessibility of a game. The posters citing this as a motivation for rebindable keys seemed to think I wasn't aware of accessibility concerns, but I actually know quite a bit about designing for accessibility.
While rebindable keys may help slightly with accessibility for very simplistic games, it is not the case for most games because they have large amounts of buttons that must be accessed (nearly) simultaneously, as is the case with Handmade Hero. It is simply not possible to play them with only one hand, for example, and thinking that rebindable keys will help with this problem is misguided. People using special-purpose controllers (ie., foot controllers, head controllers, etc.) already have those mapped per application using the drivers for the devices themselves, so there's no need for your game to
additionally support another level of rebinding.
If you really care about accessibility, you have to
actually provide another game mode that requires only a subset of the inputs normally in the game. This is a difficult thing to do, because it involves rethinking the experience of the game so that you can still deliver a quality, challenging experience to players using a less expressive control scheme. If you actually talk to players who have to play games with single-switch or dual-switch controls, they will tell you that they really do want games that are full difficulty, but which can be played with only two inputs,
not some kind of complex remapping scheme where they can't really play the game right so that they have to set it to "super easy can't die" mode to compensate.
I would definitely not be averse to doing accessibility modes in Handmade Hero after the first version ships. I already thought about this a little bit because of the nature of the game (the fact that the hero is limbless). Turning Handmade Hero into a four-button game, and then perhaps into a one-button game (the most accessible), would actually be pretty interesting and could be a lot of fun. So I'm very open to that as something to do, especially since I knew some folks who did great one-button and two-button games for gamers who were unable to use their hands at all. Some of the games they made were pretty darn awesome (
Strange Attractors 2 was one I particularly enjoyed).
OK, I think that's everything. I'm going to stop looking at this thread now :) Carry on!
- Casey