Yeah honestly, I bought Tarkov second-hand for $8 and even then I felt like I was getting ripped off.
It’s probably not news to anyone but the game has extremely lax anti-cheat controls.
As for why people would cheat in an online game, it always seems obvious from a psychological standpoint, but the cheats for Tarkov are so egregious they’re like full blown developer offline DEBUG TOOLS.
I don’t mean “oh no, aim assistance, and they can see you through walls” – the cheat tools are hooking into features of the GAME ENGINE ITSELF, allowing players to see:
PlayerName, Current HP, Current Level, Full inventory contents, currently equipped weapon, position, heading, estimated valueof inventory, estimated valueof your account, age of account creation, and so on.
They can also: Teleport, FLY, increase or decrease their run speed, jump height, and so on.
The cheaters are basically running around with admin privileges in the game, and the developers don’t give a flying fuck. It’s like GTA5 levels of cheating.
Why would anyone play such a game, much less pay $150 to be abused by people? You can slam your dick in a car door for a lot less.
Whats sad is that people keep wanting more client-side anticheat to fix this, when the real answer is server-side anticheat and changing the engine to stop being so leaky with that much information.
You’re acting like other games have never successfully ran server-side before. Hell the whole net engine doesn’t need to be server-side at all. But you can run server side checks on shit at the very least. A player being 100 ft in the air is likely a cheater… A player making a shot through impenetrable terrain is likely a cheater. Tarkov is missing these basics. Forget ESPs and other bullshit.
By rendering people, as in sending data about an object that should be rendered, in a few pixels before they would be visible. And not at all on distances, without a scope (as they would not be visible). Footsteps etc. could be represented by two noise levels precalculated by the servers very roughly, so you can tell someone is there behind you, but a cheat could not determine where exactly.
You want a server to determine if a player should be visible (ie render each player’s perspective) and then get that back to them right before someone walks around the corner? With latency you’d need to render people in at least 200ms before they appear… Which is still plenty of time for a hacker to flick to them and kill them.
True that, but I imagine such sudden flicking to seemingly random positions to be much more obvious than if the hacker had 10 seconds to see the player, tactically preaiming a corner pretending to hold an angle to then be lucky and hit a shot. Would be harder on games with smaller maps, CS like, as holding angles would be much more common than in open worlds - eg. Tarkov.
If the trajectory and speed says either the client or another player will cross a wall soon where the player sees them THEN it could send the data to the client. You need some tolerance for ping up to maybe 200ms but that’s it. Wallhacks could give you at most a flash of a couple specific people.
You need to account for every gap in the wall, nook and cranny and peephole for these sightlines. You’d have to bake so much detail into every calculation server side that it would effectively be rendering the entire map to host a single game.
There are many ways of doing this. I know the source engine uses visboxes, which are calculated once at map compile time. It takes a while to compile, but it means that clients can use the pre-compiled data to calculate parts of the map that are visible and the server can use them to determine what the player can see at a given time. I’m not sure whether it does that or not, but it would make sense to use that data.
It could be a client-side check with verification on the server. Basically transmitting which places are in view. Ray casting like the other person said. Not raytracing which is much more computationally intensive. A server side check basically so that the client can’t just say they’re looking around every corner at once.
Why not? More computationally intensive things are done to calculate lighting in a lot of modern games as I alluded to. Yes it would increase the load on your CPU but that’s less of a problem nowadays with higher core counts and clock speeds and it’s not like modern anticheats don’t steal some CPU cycles already. I think you underestimate the power of modern computers. I’m not trying to be condescending here but it is worth remembering that gigahertz means BILLIONS of calculations per second.
We’re only talking in theoreticals right now anyways, it is entirely possible that a game studio has tried this and it hasn’t worked, I just don’t put a lot of faith in modern game companies.
You cannot break the speed of light with computational effort.
You’re saying that you want to have a round trip from client to server and back happen in-between frames.
You cannot do that. Period. You will not ever have latencies that low.
Even if you frame lock it at 60fps that means you’re calculating views, sending the data up the tube, checking it on the server, responding back with all the data about the new character that should appear and then rendering the new guy within 17ms.
You constantly have to render people in when they can’t be seen but will soon be seen. Which also means instead of keeping track of just locations the server needs to render the scene in sufficient detail as to determine sightlines.
Usually games just do this by sending info to clients of where everyone is and letting the clients render people in when the client determines that the sightline isn’t interrupted.
Some games will just not send the positions until they’re within a certain range of each other, but I’m a realistic game like tark you’d need several kilometers of info in case someone scoped in.
If you don’t do this correctly it leads to characters popping into existence from thin air
You could use things like ray tracing to determine if one player can be seen by another on the serverside and only send packages when they can see.
But to resource heavy to do that.
Edit: Thinking about it, you simply have to render the whole map with all players server side and based on that determine which players can see each other and based on that send the information to the clients.
You do see why that’s a serious issue right? Before the Server did nothing more than maintain a list of x,y,z coordinates of player positions. Now it’s rendering the entire game space and doing 3d calculations.
That’s several orders of magnitude more complex and costly.
Cheaters are a big problem in this game. To experience the cool parts of the game without all the bulshit, there is still SPT-AKI for playing solo and also the SIT mod for PvE multiplayer coop.
Yeah honestly, I bought Tarkov second-hand for $8 and even then I felt like I was getting ripped off.
It’s probably not news to anyone but the game has extremely lax anti-cheat controls.
As for why people would cheat in an online game, it always seems obvious from a psychological standpoint, but the cheats for Tarkov are so egregious they’re like full blown developer offline DEBUG TOOLS.
I don’t mean “oh no, aim assistance, and they can see you through walls” – the cheat tools are hooking into features of the GAME ENGINE ITSELF, allowing players to see:
PlayerName, Current HP, Current Level, Full inventory contents, currently equipped weapon, position, heading, estimated value of inventory, estimated value of your account, age of account creation, and so on.
They can also: Teleport, FLY, increase or decrease their run speed, jump height, and so on.
The cheaters are basically running around with admin privileges in the game, and the developers don’t give a flying fuck. It’s like GTA5 levels of cheating.
Why would anyone play such a game, much less pay $150 to be abused by people? You can slam your dick in a car door for a lot less.
Whats sad is that people keep wanting more client-side anticheat to fix this, when the real answer is server-side anticheat and changing the engine to stop being so leaky with that much information.
It’s easy to just handwaive and say “Server side will fix it” but here’s a major issue:
You have to render people in before they appear. How do you do that without the client knowing where people are?
You’re acting like other games have never successfully ran server-side before. Hell the whole net engine doesn’t need to be server-side at all. But you can run server side checks on shit at the very least. A player being 100 ft in the air is likely a cheater… A player making a shot through impenetrable terrain is likely a cheater. Tarkov is missing these basics. Forget ESPs and other bullshit.
If you should absolutely be checking for repeat issues and basics. Not trying to excuse that shit, just saying server side isn’t a silver bullet.
By rendering people, as in sending data about an object that should be rendered, in a few pixels before they would be visible. And not at all on distances, without a scope (as they would not be visible). Footsteps etc. could be represented by two noise levels precalculated by the servers very roughly, so you can tell someone is there behind you, but a cheat could not determine where exactly.
You want a server to determine if a player should be visible (ie render each player’s perspective) and then get that back to them right before someone walks around the corner? With latency you’d need to render people in at least 200ms before they appear… Which is still plenty of time for a hacker to flick to them and kill them.
True that, but I imagine such sudden flicking to seemingly random positions to be much more obvious than if the hacker had 10 seconds to see the player, tactically preaiming a corner pretending to hold an angle to then be lucky and hit a shot. Would be harder on games with smaller maps, CS like, as holding angles would be much more common than in open worlds - eg. Tarkov.
My point was that you’re multiplying server costs several times to do that complex rendering and still not solving the problem.
If the trajectory and speed says either the client or another player will cross a wall soon where the player sees them THEN it could send the data to the client. You need some tolerance for ping up to maybe 200ms but that’s it. Wallhacks could give you at most a flash of a couple specific people.
You need to account for every gap in the wall, nook and cranny and peephole for these sightlines. You’d have to bake so much detail into every calculation server side that it would effectively be rendering the entire map to host a single game.
There are many ways of doing this. I know the source engine uses visboxes, which are calculated once at map compile time. It takes a while to compile, but it means that clients can use the pre-compiled data to calculate parts of the map that are visible and the server can use them to determine what the player can see at a given time. I’m not sure whether it does that or not, but it would make sense to use that data.
It could be a client-side check with verification on the server. Basically transmitting which places are in view. Ray casting like the other person said. Not raytracing which is much more computationally intensive. A server side check basically so that the client can’t just say they’re looking around every corner at once.
But then you’re adding extra latency to all visual calculations.
Your client needs to know if something is visible within the framerate of their PC.
You cannot do that fast enough.
Why not? More computationally intensive things are done to calculate lighting in a lot of modern games as I alluded to. Yes it would increase the load on your CPU but that’s less of a problem nowadays with higher core counts and clock speeds and it’s not like modern anticheats don’t steal some CPU cycles already. I think you underestimate the power of modern computers. I’m not trying to be condescending here but it is worth remembering that gigahertz means BILLIONS of calculations per second.
We’re only talking in theoreticals right now anyways, it is entirely possible that a game studio has tried this and it hasn’t worked, I just don’t put a lot of faith in modern game companies.
You cannot break the speed of light with computational effort.
You’re saying that you want to have a round trip from client to server and back happen in-between frames.
You cannot do that. Period. You will not ever have latencies that low.
Even if you frame lock it at 60fps that means you’re calculating views, sending the data up the tube, checking it on the server, responding back with all the data about the new character that should appear and then rendering the new guy within 17ms.
That is physically impossible.
I don’t know game development but uh do you? What are you rendering when the player can’t see them? I might legitimately just not get what you mean
You constantly have to render people in when they can’t be seen but will soon be seen. Which also means instead of keeping track of just locations the server needs to render the scene in sufficient detail as to determine sightlines.
Usually games just do this by sending info to clients of where everyone is and letting the clients render people in when the client determines that the sightline isn’t interrupted.
Some games will just not send the positions until they’re within a certain range of each other, but I’m a realistic game like tark you’d need several kilometers of info in case someone scoped in.
If you don’t do this correctly it leads to characters popping into existence from thin air
You could use things like ray tracing to determine if one player can be seen by another on the serverside and only send packages when they can see.
But to resource heavy to do that.
Edit: Thinking about it, you simply have to render the whole map with all players server side and based on that determine which players can see each other and based on that send the information to the clients.
You do see why that’s a serious issue right? Before the Server did nothing more than maintain a list of x,y,z coordinates of player positions. Now it’s rendering the entire game space and doing 3d calculations.
That’s several orders of magnitude more complex and costly.
That’s exactly what i said.
Still no reason to put a root kit on the customers PC.
There’s no way in hell you’ll ever get a game company to agree to that. You’re talking 100x the expense of running a server at a minimum.
Cheaters are a big problem in this game. To experience the cool parts of the game without all the bulshit, there is still SPT-AKI for playing solo and also the SIT mod for PvE multiplayer coop.