Changing controls from hat people are used to, is often a mistake. Things like usability and the fact that people are used to the way things worked and expect them to work that way in the future drive a lot of that. In recent years many so called tactical games are moving away from the keyboard layout that many were used to, and into a much more controlled system that I have been incorporating into HL2 over the last week, and I have had an idea that I want to bounce off of you all.
The idea is pretty straight forward, but It’s a bit different from previous experience, so I will show you an example to make it clear. When you play a modern tactical shooter there are usually three stances, standing, crouched and prone, and there are two schools of thought in regards to how to move between them. One of the schools brings us to an issue that I will cover later, keyboard assignment cluttering, and the other is not as direct, but is still very intuitive.
The first school of controls is to have a key for each stance other than standing and to push that button to move to it, or hold it and return when you release it. It is pretty dope in that you have elaborate control over your player, but It’s a bit more complicated when you want to control more than the two alternative stances. One of the mods I worked on had more than 6 stances and being able to have a key for each would have been crazy / insane.
In order to avoid this issue the idea of having a key serve a purpose of changing stance one level became the norm, it is evidenced in Ghost Recon and most any tactical shooter of any merit. You go from standing to crouched by pressing the down stance key and up to standing again by pressing the up stance key. The more important thing about this is that you can have this toggling happen with two keys where n used to be necessary, avoiding keyboard clutter.
My system is going to combine the functionality of both, into something that adds ability to the user, by opening up their options. The gist of it is that you have the toggling system from the previous paragraph, and add a timer in to see if the user is still holding the button down. If the user holds the button down for longer than a specified time they are using the button as a toggle and will return to the previous stance when they release it. There is much more to it, but this is how the buttons will act. Of course I plan for it to be toggled on and off and personalized when it is released, but it sounds like a good idea, let me know what your thoughts are.