Good. If the skill is humanly possible, let the human learn it. Otherwise don’t allow it. Easy stance to take.
An eternity ago, I got really good at manually strafe-hopping in Team Fortress Classic. I got banned from a few pubs for “scripting” anyway.
I don’t like banning users because of the devices they use or the technical knowledge they have. I feel like the onus should be on the development team to make hardware or software macros impossible or unnecessary. Like, maybe the switch from left to right has a random interval that would instantly nerf a script. Or maybe the apex of a player’s jump is also a little variable or random - or deeply tied to their momentum in a weird way.
Barely noticeable changes for natural players, kryptonite to script kiddies and Mad Katz Turbo Mode, but still accessible to people with disabilities who legitimately need macros or weird hardware because they only have 2 fingers or whatever.
I feel like the onus should be on the development team to make hardware or software macros impossible or unnecessary.
This is what they are doing.
They like the mechanic of jump tossing, which was previously often done with macros, so they’re altering the game to make it easier to do, making macros unnecessary.
They do not like … augmented strafing, as they feel it gives an unfair advantage to those with more expensive kit, so they are implementing server side detection methods to make it impossible.
Yeah, I know. I was speaking in general terms.
Some skills are obnoxious to learn but grant immense advantage. It’s bad design. If a simple keyboard macro is such a big deal, the game should do it for all players, as a quality-of-life feature. It should be how the game works.
It’s not automation though. It’s just changing the way A and D interact. Like, it’s not sending any extra commands, if anything it’s sending fewer commands.
Edit: the main thing I’m concerned about is the “snap tap”/super wiggle thing. Macros are kinda w/e, but A and D zeroing each other out is an artificial limitation which was likely the result of wanting to support controllers/analog input, and not a design choice to increase player skill. If the rules of the game allow someone to get a significant advantage simply by changing the way A or D are registered then maybe it’s a problem with the games rules and not the hardware. Consider adding momentum, bullet spread when moving, or some other mechanic that negates or diminishes the power of the wiggle (or alternatively just git gud skrub).
The title is more general, and not incorrect.
In CS2, Valve is going to be banning Snap Tap / Simultaneous Opposing Cardinal Directions in addition to any kind of bind that allows one key to execute multiple game inputs, like jump throws, which is automation, or a macro.
While the exact definition of ‘automation’ can be argued to death, its clear (to many players and also Valve) that having a specific fancy keyboard that compensates for a players low dexterity to allow them to perform as if they have much higher dexterity constitutes cheating in a game where a whole lot of the trained skill … is dexterity.
It doesn’t require a fancy keyboard though. If anything, that’s how keyboards usually work, it takes conscious effort to stop them from working that way. Personally I had to learn how to program character controllers so they wouldn’t function like snap tap.
Even so though, I’m 90% sure you could use a macro to do the same exact thing so long as you have a keyboard with n-key rollover (afaik most keyboards have it nowadays)
Ive outlined something at least 90% accurate to how this works in another post I just made.
We are talking about the keyboard itself intelligently adjusting its sensitivity thresholds for keys conditionally, and also intelligently cancelling keyboard input signals, all according to software/hardware on the keyboard itself.
Its happening at a lower level than the program receiving the inputs from the keyboard.
The differences are in 10s of ms, but this becomes a huge advantage of artificially granted, reduced reaction time in extremely fast paced twitchy games.
Also, a macro usually refers to a situation where a key is bound to give the input of multiple inputs simultaneously (jump+grenade), or, a set, timed recording of specific key presses, all initiated by pushing one specific key.
Sure, you could make a macro for strafe left then right then left then right for 3 seconds… but this keyboard tech makes it so you can have a faster reaction time and have the ability to do the equivalent of making up such a ‘dodge dance’ on the fly, customized to your exact situation at the time.
Chained command macros really only make sense in MMOs or fighting games, they don’t usually make much sense in FPSs.
I understand how it works (or at least I think I do) and why people consider it cheating; what I’m saying is that that’s just how keyboards usually work and the reason why they don’t always work that way in games is an intentional decision.
Don’t believe me? Open up a word processor. Hold the A key. Notice how it starts entering a line of As? Now, while holding the A key, press and hold the D key. It should start entering a line of Ds. Then, when you release the D key but keep holding the A key, it should start entering a line of As again (at least that’s what used to happen). This is the most likely to work if your keyboard has true n-key rollover, but it may still work regardless.
If that doesn’t work, try a different key combo, your keyboard may be losing inputs due to conflicting inputs (or word processors may have changed how they deal with simultaneous keypresses). Cheap keyboards will combine sets of keys to cut down on complexity and cost, however it can result in some key combos becoming impossible to input. That’s why n-key rollover is awesome.
So why does holding strafe left/right (and forward/back) result in null combinations?
I suspect that it’s due to controller support. Instead of having a series of if-then statements which directly translate a keypress into movement (something a lot of new game developers do), they’re likely translating keypresses into a 2d vector which gets applied to your character’s movement speed. An “A” press would correspond to “1”, a “D” press would result in “-1”. These get combined and become “0”.
Why do it that way?
Because controllers use analog input, so you aren’t going to get a “1” or “-1” without fully tilting the stick. However, a half-tilt shouldn’t result in a “1”, it should result in a “(-)0.5”. That “0.5” is then multiplied by the player’s move speed and (optionally) the player’s current vector gets interpolated to the new vector.
So what is the keyboard doing that stops the null state (horizontal movement = 0) from occurring?
It’s basically overriding the A key when the D key is pressed (not sure if it’s actually “lifting” the A key or just throwing away the input, either works) or vice versa; and then pressing the A key again when the D key is released (assuming the A key is still being held). You can make a macro to simulate this behavior.
As far as sensitivity thresholds go, so what? People have been able to do that with analog sticks (and sometimes analog triggers, depending on the game) for like, forever. Hell, you used to be able to mix controller, keyboard and mouse controls to get analog movement and mouse control (like those standalone “macro/num pads” with the thumb stick). I dunno if it’s still possible or if driver changes have nullified it, but regardless, imo analog keyboards are overdue. Getting mad about it is like someone getting mad about mouse-look in the 90s.
In the Source engine and for many other shooters, A+D and W+S do not result in a null input, they are two registered inputs that by engine and game design cancel each other out and result in a null output.
It is as you say in that 1 and -1 result in 0, but this is done in the game’s movement code, intentionally, to force players to learn to only press one of the two opposing keys at once, as a skill.
Theres a reason many pc FPS players consider the source engine to be the gold standard for control responsiveness and player movement design/feel, and this is one of them.
Its not from an inability of the game or engine to handle too many inputs.
Also I am fairly sure the macro set up you are describing to allow for the strafe cancelling is a null bind, which Valve has also banned.
Either way, you are not understanding the entire concept of intelligent, dynamically sensitive key switches in the keyboard itself, resulting in dramatically (for a twitch shooter) decreased reaction times from the same actions done on a different keyboard…
This is different than just setting your mouse dpi to be more sensitive, or your analog sticks to be more sensitive, or your whole keyboard to have less travel time.
Having a hyper sensitive keyboard basically always results in a lower skill/dexterity player accidentally doing even more w/s or a/d nullification or unintended movements. This new tech is different.
It reduces the skill and dexterity required to play like a seasoned pro by intelligently changing the travel threshold dynamically depending on how far pressed the keys are and whether they are being released or being pressed down.
You say its like getting mad about mouse look in the 90s, and Valve, the people who revolutionized online multiplayer shooters in the 90s, is saying, no, its not, in fact, its so bullshit we are banning it.
FFS, the companies that are marketing these keyboards are themselves saying it either is cheating or is basically cheating in their marketing material and public statements.
And yes, while it has been technically possible for a long time to do weird things with inputs, most games and communities that take themselves seriously view certain forms of this as cheating.
Its getting banned now because now we have keyboard manufacturers just straight up releasing keyboards with features that exceed in speed what used to only be done by a handful of people with too much time on their hands.
First, to make something clear, I’m not necessarily arguing for or against banning macros, I’m mainly addressing the snap tap/rapid movement change and saying that you could effectively reproduce it with a macro.
It is as you say in that 1 and -1 result in 0, but this is done in the game’s movement code, intentionally, to force players to learn to only press one of the two opposing keys at once, as a skill.
What I’m saying is that I don’t think that was originally a skill choice, but done out of necessity. It may have eventually become associated with skill, but that the choice likely wasn’t originally intended to increase skill.
Theres a reason many pc FPS players consider the source engine to be the gold standard for control responsiveness and player movement design/feel, and this is one of them.
They should play more gzdoom then. Source feels laggy and unresponsive in comparison. :p
Also I am fairly sure the macro set up you are describing to allow for the strafe cancelling is a null bind, which Valve has also banned.
Only because valve banned it in response to hardware manufacturers.
This is different than just setting your mouse dpi to be more sensitive, or your analog sticks to be more sensitive, or your whole keyboard to have less travel time.
What about deadzones? Those are used for analog buttons and sticks so players can customize how far the player has to press the buttons or tilt the sticks to register a press.
Valve’s own software allows you to set different deadzones for analog sticks and triggers. I mean, their software on steam deck lets you trigger different actions based on whether the trigger is a full press or partial press. You can have the sticks trigger things based on whether they’re being touched, pressed, or tilted.
When the steam controller was released, they made a big deal about how you could chord button presses, create macros, create action sets (which change what the buttons do) and so on. Valve’s own system allows for it.
Its getting banned now because now we have keyboard manufacturers just straight up releasing keyboards with features that exceed in speed what used to only be done by a handful of people with too much time on their hands.
And what I’m saying is that it doesn’t require a special keyboard, it just lowered the barrier of entry. As such, I see it as a skill issue, not a cheating issue. What? The player in front of you is wiggling too fast for you to track? Get good. That’s the entire point of the game. It’s not like they’re seeing through walls or automatically locking onto your head.
Then, what if everyone had these keyboards, or if windows had macro support built-in? Would you still see it as cheating?
Finally what if someone had a seemingly unnatural ability to press A/D alternating in a way that resulted in <10ms of delay/overlap between inputs, who owned a hyper-sensitive keyboard that triggers keypresses the moment a key moves? They’re able to “wiggle” almost as well as someone using one of these keyboards; except they’re just inherently that good, and their keyboard has no other special abilities except that it’s super sensitive.
Are they cheating because their natural, unskilled ability rivals that of a so-called cheat device? Would it be more fair to handicap the player with freakish ability, or to allow other players to use devices that negate the inherent difference them?
Again, I don’t care much about macros being banned; I brought that up simply to state that the fast-tapping, wiggle thing could be at least mostly reproduced via macros. It’s the outrage about new keyboards making it easier to wiggle effectively that annoys me. It comes off as a bunch of people crying because the game suddenly got harder and they don’t want to learn how to aim better.
Imagine if people complained that racing wheels and peddles made racing games unfair against people using gamepads or keyboards; or that using a hotas setup was cheating in flying games.
Like, I don’t own one of these keyboards and I don’t play highly competitive fpses anymore, yet it’s still annoying. Like, analog keyboards have a lot of potential to be really cool devices, but I’m concerned they won’t get past the “fad” stage because the analog switches will be associated with cheating.
The article doesn’t explain it, but it sounds like the keyboards are detecting a transition from A to D and making it happen faster, instead of having a momentary dead zone while both are pressed. That’s definitely getting an advantage from something out-of-game, which is cheating.
So, keys on a board normally have a specific travel distance (depending on switch type) that they must be pressed to flip between ‘pressed’ and ‘not pressed’.
This tech uses fancy keyboards with fancy switches and fancy software (on the keyboard) to change the required travel distance of one key to register, dependant on the travel distance of another key, and then also alter the output state of the other key.
So, if normally you needed 80% travel to register a key… lets say it takes a player 100 ms to push D to 100% then another 100 ms to fully release D and fully push A to 100%, simultaneously.
Timeline:
0 to 80ms of nothing.
At 80ms, D is registered, strafing right
80 to 120ms, or 40ms of strafing right.
At 120ms, D is unregistered.
120ms to 180ms of no movement.
At 180ms, A is registered, strafing left.
180ms onward of left strafing.
An initial delay of 80ms, 60ms of nothing, then leftward movement after 180ms.
Thrown on fancy bullshit, and the software say, changes A to need only a 20% travel to register while D is past 80%, and this also cancels D once A gets past 20%.
Also, this software says that if no strafing inputs are being received, and then one is, that input only needs 20% to register.
New timeline:
0 to 20 ms of nothing.
At 20ms, D is registered, right strafing.
20 to 120 ms of right strafing.
At 120 ms, D is unregistered and A is registered, left strafing.
120ms onward of left strafing.
Now you have an initial 20ms delay, absolutely no non strafing time, and you get to left strafing after only 120ms.
So, you’ve now initially started moving 4x faster, totally eliminated your non strafing time, and gotten to your end desired strafe direction in 33% (60ms) faster than before.
This is a huge crutch in a fast paced twitchy competitive game.
I have seen videos of these keyboard being used with floating/flying characters in OW2 and it basically allows you to jitter your character 2 meters to the right and left almost instantly, such that it looks like you are fighting against someone with movement hacks. Nearly impossible to hit someone doing this… without an aimbot, lol.
While being able to do this from outside the game is definitely cheating, I’d personally say that being able to decide what happens with conflicting inputs should be an option in any game where that matters.
Whenever I start pressing A while I’m still holding D it should be obvious that I now intend to go left, so the game should interpret it that way.
Yes, but the game doesn’t necessarily even see those inputs. What a keyboard transmits, and how the OS handles it, is a complicated process with a bunch of legacy handling code. Often, if you’re pressing more than one key, the keyboard might send only one of them.
I remember in one game I used to play, I would hold W to go forward, and shift to boost, but if I wanted to turn left or right, only adding D would be recognized. Pressing A would do nothing at all, no turning left.
Isn’t the issue you’re describing less about the OS and more about cheap keyboards with awful or nonexistent NKRO? On my keyboard with full NKRO I can press as many keys as I want and the OS will recognize all of them being pressed without fail.
Also, if I’m in a text editorand hold down one key, then start holding down another one, the new one is immediately picked up, which is pretty much identical to this situation.
Yes, that was just an example. Good keyboards and proper handling don’t have that issue any more.
Afaik it should see both inputs simultaneously if you have n-key rollover, which is a pretty common feature now. I think the last time I was looking for a keyboard, they all advertised n-key rollover. As such, it’d be on the game, not the OS.
You can actually test this in the Unity editor if you have some programming experience (or I assume any other engine for that matter). It’s very easy to write a character controller in which A+D results in the game using the last input instead of adding the inputs together. I actually had to learn how to make a game not do that. It wouldn’t function exactly like the keyboards currently under fire, but it would function very similarly.
I’m pretty sure you can also do this very easily with a macro (assuming you have a keyboard with n-key rollover), no special keyboard required as well.
Edit: your specific example is an example of a cheap keyboard losing inputs, which n-key rollover fixes. Ironically, find the right cheap keyboard and you might be able to partially reproduce the effect they’re talking about (having one key override another other).
This reminds me, in Just Cause 2 there was this funny motorboat, MTA Powerrun 77, and a mod for more speed and durability. But the speed was too fast, can’t steer if you fly most of the time. So i mapped scroll wheel to mouse button 5 via Autohotkey, was quite comfortable.
Oh, and a similiar mod for a car, had the same issues; can’t drive if you fly after every little bump.