people really enjoy the boot of anti-cheat on their necks.
maybe these companies could move their cheat detection to the server where they control the code. maybe don’t just send all player positions so wall-hacks become impossible. maybe use some machine learning to look at input patterns and detect when a player is sending things that don’t look human.
the list of things companies could do to actually fix cheating in pvp games is long and all they want to do is pay for ridiculous anti-cheat that impacts normal users.
maybe these companies could move their cheat detection to the server where they control the code. maybe don’t just send all player positions so wall-hacks become impossible.
That’s not how video games work. If you want interpolation of positions then you have to send the positions of the players that you can’t see but are heading towards a place you can see. You could take a bunch of difficult math to do and filter out who to send the data to or not. It would create a lot of bugs. So you could just send just the people who are within X distance of you and call it good. Most, if not all game engines do it this way.
You have to have interpolation on the client side, it’s the only way you can play the game on the internet. It’s what Doom did to get multiplayer working and we’ve never been able to find anything better.
maybe use some machine learning to look at input patterns and detect when a player is sending things that don’t look human.
They already do that. It’s called heuristics.
the list of things companies could do to actually fix cheating in pvp games is long and all they want to do is pay for ridiculous anti-cheat that impacts normal users.
Yes… honestly, imho, any game that’s competitive should either embrace “cheating” and design its gameplay to be as transparent as chess (ie… make it ok to be tool-assisted) or be designed around controlled environments that forbid using tools like that.
Anyone who doesn’t want to surrender to a controlled environment (whether it’s in the form of some kernel-level control or VPN / Stadia-like platform) should just look for coop games.
It’s sad that FPS have evolved towards the competitive landscape… to me, the best experience in the original classic Doom was coop mode. Yet Doom Eternal, at most, only supports some wacky asymmetric team deathmatch.
One thing I realized actually is that I meant Quake which first used network interpolation. I think classic doom didn’t have networking but I am not sure, to be honest. Either way, it’s before my time.
That said I think it’s a bummer that even casual non-ranked experiences have had a large problem with cheating. Even co-op games have lots of cheating but the nature of the game means the cheating affects people who don’t want to cheat less. They aren’t directly subjected to it, it’s still a problem though, the cheating still affects things like the game economy and player perception of the game.
That said everything has gone towards the competitive because even casual versus experiences are competitive now. Super Smash Bros. was just supposed to be the silly, not-serious fighting game that now has large tournament play. Every game, no matter how casual, has gotten competitive. Our culture is so ingrained with competing that we might as well have spitting tournaments… Wait let me google. https://en.wikipedia.org/wiki/Cherry_pit_spitting They totally have spitting tournaments. Honestly, human culture is that of competition. I don’t see a way we work around that at our evolutionary core we are competitive but I don’t see it as a good thing.
Doom did have networking, using IPX. You had to start the game with a parameter from the DOS commandline. Like Quake, the maps had special player spawn points & items for deathmatch too. The term “deathmatch” was coined by the Doom game mode.
However, there was no frame interpolation in the original Doom, instead, there might be a latency in the inputs. The game state only advances when all players have sent an update for that “tic” (1/35 of a second), so the game might be laggy for everyone if the connection from one of the players is slow.
But multiplayer back then was mostly for LAN parties. At least in my area. I didn’t even have an internet connection at that time, personally. In fact, even during the Quake age, I was only able to play on LAN… and I still liked coop better.
Even co-op games have lots of cheating but the nature of the game means the cheating affects people who don’t want to cheat less. They aren’t directly subjected to it, it’s still a problem though, the cheating still affects things like the game economy and player perception of the game.
Yes, what I meant is that cheating becomes irrelevant in coop, not that it doesn’t exist.
If a game has an economy that makes some players richer than others (like say… in many MMOs), and you actually care a lot about being rich in that universe, then it’d starts being more of a competitive thing and less about coop… a game can be competitive and be PvE.
Even singleplayer games can be competitive if you make it about beating your friend’s “score” or speed… almost anything is susceptible to speedrunning.
I guess the question on coop vs competitive is more about what are the goals of the players. If people play games to have a fun time, or if it’s because they want to have some way to prove themselves they are good at something :P
Absolutely, the goal of the player is mutable, and thus really anything, even co-op games, becomes competitive with the right player mindset. I feel like even with co-op that mindset can affect almost any game.
I wrote a snarky response because of the final insulting comment in yours but then thought better of it, going to try to address a couple of your points legitimately even after the unnecessary personal attack.
It’s a lot cheaper to make your server dumb. It costs you less in programmers with deep multiplayer programming experience, it costs you less in ongoing hosting because of reduced CPU usage, and it makes the problem less “yours” as a developer.
I’m saying that’s shitty that the developers will try to save money that way rather than investing in actual effective, privacy-respecting cheat prevention.
Your argument seems to be that a quake-style predictive algorithm is the only solution possible for online games. I doubt that is the case, but even if it were, using some raycasts on the server for some basic sanity checks on what data to send to players is an example of where lots of developers just can’t be bothered.
If you want to dismiss machine learning as heuristics, I’m sorta ok with that, as I think they are just glorified heuristics, but even the most basic analysis isn’t done by most developers. Instead, they rely on the sales pitches of various anti-cheat software and don’t implement anything beyond it, even when there might be some low hanging fruit.
I am not saying developers are lazy, there’s tons of stuff to work on. I am mad that this problem gets repeatedly pushed onto the users rather than the developers, though, and I think it’s reasonable for me to offer some pushback when both my CPU cycles and my privacy are being abused.
I wrote a snarky response because of the final insulting comment in yours but then thought better of it, going to try to address a couple of your points legitimately even after the unnecessary personal attack.
Sorry, It’s not meant as an attack. I am simply calling it as I see it because I get a lot of gamers who think they’ve arm-chaired thought far more about my job as a networked gameplay engineer than I have. I’ve been doing this for a very long time and I know where developers cut costs. Anti-cheat isn’t just a slap-it-on and call it a good solution. There are a lot of reasons you want to trust the client and it makes the gameplay feel far better.
It’s a lot cheaper to make your server dumb. It costs you less in programmers with deep multiplayer programming experience, it costs you less in ongoing hosting because of reduced CPU usage, and it makes the problem less “yours” as a developer.
Typically, the server, especially in counter-strike’s case, isn’t dumb. In all games, the server still handles the dealing of damage which typically includes validations of that damage. In counter-strike’s case, very little data is calculated on the client. Most of it is raw data sent from input to the server.
Your argument seems to be that a quake-style predictive algorithm is the only solution possible for online games. I doubt that is the case, but even if it were, using some raycasts on the server for some basic sanity checks on what data to send to players is an example of where lots of developers just can’t be bothered.
Lots of game engines including source include and utilize ways to ensure the player is reporting sane inputs. Also, interpolation is different than extrapolation. Lastly, you don’t need to do raycasts to double-check this data. A lot of the time the raycasts are done on the server itself. In counter-strike’s case this is also true. Raycasts are done on the client typically for cosmetics only. You can see this with 3kliksphilip’s videos on sub-tick.
If you want to dismiss machine learning as heuristics, I’m sorta ok with that, as I think they are just glorified heuristics, but even the most basic analysis isn’t done by most developers. Instead, they rely on the sales pitches of various anti-cheat software and don’t implement anything beyond it, even when there might be some low hanging fruit.
Heuristics haven’t been done by developers in a long time. A lot of that is actually done in Valve’s case by Overwatch. Also, Valve makes it’s own anti-cheat called VAC. They aren’t getting sales pitches.
I am not saying developers are lazy, there’s tons of stuff to work on. I am mad that this problem gets repeatedly pushed onto the users rather than the developers, though, and I think it’s reasonable for me to offer some pushback when both my CPU cycles and my privacy are being abused.
Frankly, I feel like it’s wrong for you to say that the problem is pushed onto users when you don’t understand the code and effort the developers are writing to solve this issue specifically with counter-strike. VAC is probably the anti-cheat with the least amount of client code. It rests almost entirely on the server. One thing VAC does do is lock down the client on Windows to prevent modifications. One thing you can easily do is replace assets for walls with transparent textures to see through walls. That’s why things like the code and assets can’t be tampered with. Most game engines only send updates to the positions of actors in a network bubble. Maybe Counter-Strike’s network bubble is too large at the time but that’s not an argument you made.
Frankly, I feel like it’s wrong for you to say that the problem is pushed onto users when you don’t understand the code and effort the developers are writing to solve this issue specifically with counter-strike
You are the one who continues to make assumptions about what I do and do not understand about the code that makes this work in various games.
I don’t really feel like getting into the nitty gritty here in comments, but if your experience is what you say, I’m very surprised at some of your unqualified statements.
Your comments are enough to see where your knowledge of what a networked gameplay engineer does at Valve lies. Especially since you make assumptions that the developers aren’t doing things when very clearly there are proof and industry standards that say they do those things. If you are Andrew Burke who works at Valve as an Animator, I would recommend talking to the engineers there.
Edit: Who I am shouldn’t matter to you. Addressing the idea that you can shift some or all anti-cheat to the server is something you should try to engage with directly rather than appealing to authority. For what it’s worth, I’ve spent time as a programmer in the game industry in a handful of different roles and your search will eventually find me if you keep going down that road. My experience isn’t what I am arguing here, though.
It’s not really an assumption if I say “if”. I can agree with you that shifting as much data as possible on the server is best. Valve already does that pretty well for counter-strike. Far more than other competitive FPSs. They still keep shot registration on the server whereas most competitive shooters now have that on the client to have the correct gameplay feel. The big balance between keeping stuff on the server and putting some authority on the client is the gameplay feel. Counter-Strike has been and still is notorious for getting shot around a corner when you don’t see who shot you. This is because of server authority rather than client authority.
people really enjoy the boot of anti-cheat on their necks.
maybe these companies could move their cheat detection to the server where they control the code. maybe don’t just send all player positions so wall-hacks become impossible. maybe use some machine learning to look at input patterns and detect when a player is sending things that don’t look human.
the list of things companies could do to actually fix cheating in pvp games is long and all they want to do is pay for ridiculous anti-cheat that impacts normal users.
ridiculous.
That’s not how video games work. If you want interpolation of positions then you have to send the positions of the players that you can’t see but are heading towards a place you can see. You could take a bunch of difficult math to do and filter out who to send the data to or not. It would create a lot of bugs. So you could just send just the people who are within X distance of you and call it good. Most, if not all game engines do it this way.
You have to have interpolation on the client side, it’s the only way you can play the game on the internet. It’s what Doom did to get multiplayer working and we’ve never been able to find anything better.
They already do that. It’s called heuristics.
dunning-kruger at its finest.
Yes… honestly, imho, any game that’s competitive should either embrace “cheating” and design its gameplay to be as transparent as chess (ie… make it ok to be tool-assisted) or be designed around controlled environments that forbid using tools like that.
Anyone who doesn’t want to surrender to a controlled environment (whether it’s in the form of some kernel-level control or VPN / Stadia-like platform) should just look for coop games.
It’s sad that FPS have evolved towards the competitive landscape… to me, the best experience in the original classic Doom was coop mode. Yet Doom Eternal, at most, only supports some wacky asymmetric team deathmatch.
One thing I realized actually is that I meant Quake which first used network interpolation. I think classic doom didn’t have networking but I am not sure, to be honest. Either way, it’s before my time.
That said I think it’s a bummer that even casual non-ranked experiences have had a large problem with cheating. Even co-op games have lots of cheating but the nature of the game means the cheating affects people who don’t want to cheat less. They aren’t directly subjected to it, it’s still a problem though, the cheating still affects things like the game economy and player perception of the game.
That said everything has gone towards the competitive because even casual versus experiences are competitive now. Super Smash Bros. was just supposed to be the silly, not-serious fighting game that now has large tournament play. Every game, no matter how casual, has gotten competitive. Our culture is so ingrained with competing that we might as well have spitting tournaments… Wait let me google. https://en.wikipedia.org/wiki/Cherry_pit_spitting They totally have spitting tournaments. Honestly, human culture is that of competition. I don’t see a way we work around that at our evolutionary core we are competitive but I don’t see it as a good thing.
Doom did have networking, using IPX. You had to start the game with a parameter from the DOS commandline. Like Quake, the maps had special player spawn points & items for deathmatch too. The term “deathmatch” was coined by the Doom game mode.
However, there was no frame interpolation in the original Doom, instead, there might be a latency in the inputs. The game state only advances when all players have sent an update for that “tic” (1/35 of a second), so the game might be laggy for everyone if the connection from one of the players is slow.
But multiplayer back then was mostly for LAN parties. At least in my area. I didn’t even have an internet connection at that time, personally. In fact, even during the Quake age, I was only able to play on LAN… and I still liked coop better.
Yes, what I meant is that cheating becomes irrelevant in coop, not that it doesn’t exist.
If a game has an economy that makes some players richer than others (like say… in many MMOs), and you actually care a lot about being rich in that universe, then it’d starts being more of a competitive thing and less about coop… a game can be competitive and be PvE.
Even singleplayer games can be competitive if you make it about beating your friend’s “score” or speed… almost anything is susceptible to speedrunning.
I guess the question on coop vs competitive is more about what are the goals of the players. If people play games to have a fun time, or if it’s because they want to have some way to prove themselves they are good at something :P
Ah, some good insight into Doom’s networking.
Absolutely, the goal of the player is mutable, and thus really anything, even co-op games, becomes competitive with the right player mindset. I feel like even with co-op that mindset can affect almost any game.
I wrote a snarky response because of the final insulting comment in yours but then thought better of it, going to try to address a couple of your points legitimately even after the unnecessary personal attack.
It’s a lot cheaper to make your server dumb. It costs you less in programmers with deep multiplayer programming experience, it costs you less in ongoing hosting because of reduced CPU usage, and it makes the problem less “yours” as a developer.
I’m saying that’s shitty that the developers will try to save money that way rather than investing in actual effective, privacy-respecting cheat prevention.
Your argument seems to be that a quake-style predictive algorithm is the only solution possible for online games. I doubt that is the case, but even if it were, using some raycasts on the server for some basic sanity checks on what data to send to players is an example of where lots of developers just can’t be bothered.
If you want to dismiss machine learning as heuristics, I’m sorta ok with that, as I think they are just glorified heuristics, but even the most basic analysis isn’t done by most developers. Instead, they rely on the sales pitches of various anti-cheat software and don’t implement anything beyond it, even when there might be some low hanging fruit.
I am not saying developers are lazy, there’s tons of stuff to work on. I am mad that this problem gets repeatedly pushed onto the users rather than the developers, though, and I think it’s reasonable for me to offer some pushback when both my CPU cycles and my privacy are being abused.
Sorry, It’s not meant as an attack. I am simply calling it as I see it because I get a lot of gamers who think they’ve arm-chaired thought far more about my job as a networked gameplay engineer than I have. I’ve been doing this for a very long time and I know where developers cut costs. Anti-cheat isn’t just a slap-it-on and call it a good solution. There are a lot of reasons you want to trust the client and it makes the gameplay feel far better.
Typically, the server, especially in counter-strike’s case, isn’t dumb. In all games, the server still handles the dealing of damage which typically includes validations of that damage. In counter-strike’s case, very little data is calculated on the client. Most of it is raw data sent from input to the server.
Lots of game engines including source include and utilize ways to ensure the player is reporting sane inputs. Also, interpolation is different than extrapolation. Lastly, you don’t need to do raycasts to double-check this data. A lot of the time the raycasts are done on the server itself. In counter-strike’s case this is also true. Raycasts are done on the client typically for cosmetics only. You can see this with 3kliksphilip’s videos on sub-tick.
Heuristics haven’t been done by developers in a long time. A lot of that is actually done in Valve’s case by Overwatch. Also, Valve makes it’s own anti-cheat called VAC. They aren’t getting sales pitches.
Frankly, I feel like it’s wrong for you to say that the problem is pushed onto users when you don’t understand the code and effort the developers are writing to solve this issue specifically with counter-strike. VAC is probably the anti-cheat with the least amount of client code. It rests almost entirely on the server. One thing VAC does do is lock down the client on Windows to prevent modifications. One thing you can easily do is replace assets for walls with transparent textures to see through walls. That’s why things like the code and assets can’t be tampered with. Most game engines only send updates to the positions of actors in a network bubble. Maybe Counter-Strike’s network bubble is too large at the time but that’s not an argument you made.
You are the one who continues to make assumptions about what I do and do not understand about the code that makes this work in various games.
I don’t really feel like getting into the nitty gritty here in comments, but if your experience is what you say, I’m very surprised at some of your unqualified statements.
I’ll bow out now.
Your comments are enough to see where your knowledge of what a networked gameplay engineer does at Valve lies. Especially since you make assumptions that the developers aren’t doing things when very clearly there are proof and industry standards that say they do those things. If you are Andrew Burke who works at Valve as an Animator, I would recommend talking to the engineers there.
And the incorrect assumptions just continue…
Edit: Who I am shouldn’t matter to you. Addressing the idea that you can shift some or all anti-cheat to the server is something you should try to engage with directly rather than appealing to authority. For what it’s worth, I’ve spent time as a programmer in the game industry in a handful of different roles and your search will eventually find me if you keep going down that road. My experience isn’t what I am arguing here, though.
It’s not really an assumption if I say “if”. I can agree with you that shifting as much data as possible on the server is best. Valve already does that pretty well for counter-strike. Far more than other competitive FPSs. They still keep shot registration on the server whereas most competitive shooters now have that on the client to have the correct gameplay feel. The big balance between keeping stuff on the server and putting some authority on the client is the gameplay feel. Counter-Strike has been and still is notorious for getting shot around a corner when you don’t see who shot you. This is because of server authority rather than client authority.