232
you are viewing a single comment's thread
view the rest of the comments
[-] KLISHDFSDF@lemmy.ml 36 points 9 hours ago* (last edited 9 hours ago)

Genuinely curious, because this isn't my area of expertise, but how do you design a server to be "better" if it has to trust data from a remote client?

Example, if the client is compromised - because as they've said, they have no way to "attest" that the kernel is not compromised - how would the server know any better?

If my Apex client tells the server I got a perfect headshot, how would the server know I didn't fake the data? Is there a real answer to this problem or are we just wishing they come up with an impossible solution?

My general understanding is that EA is 100% correct. Now, on the other hand, maybe the should just limit plays between Linux <-> Linux so people can at least still enjoy the game (I'm moving to Linux soon so I'll basically no longer be able to play the game, which is, as my primary gaming addiction, a huge loss I'm willing to take).

There's compromises EA could take, but I think the Linux market share is just too small for them to care to spend any resources - even though they're raking in billions (~$3.4 Billion) and could spare a few resources to find a good middle ground. Capitalism at it's finest.

Genuinely curious, because this isn't my area of expertise, but how do you design a server to be "better" if it has to trust data from a remote client?

Check the data on the server ("oh no, incredibly expensive"). Don't give any data to the client it doesn't need, like enemies around the corner ("oh no, now my game is so very laggy because caching and future position assumption just became impossible")

Example, if the client is compromised - because as they've said, they have no way to "attest" that the kernel is not compromised - how would the server know any better?

Now the server doesn't need to care. There's input? Validate and use it.

If my Apex client tells the server I got a perfect headshot, how would the server know I didn't fake the data? Is there a real answer to this problem or are we just wishing they come up with an impossible solution?

Now the client can go pound sand. Server decides if it's a headshot. Client only sends coordinates of origin and target. Lag? Sucks to be you, with or without cheat.

My general understanding is that EA is 100% correct. Now, on the other hand, maybe the should just limit plays between Linux <-> Linux so people can at least still enjoy the game

That would only create more work for the developers, all for the defacto expulsion of Linux users (Way less players at all times). The best course of action here would be the actual expulsion of Linux users. Also, EA is at most 25% correct. (Not a rational argument, I just very much dislike them)

(I'm moving to Linux soon so I'll basically no longer be able to play the game, which is, as my primary gaming addiction, a huge loss I'm willing to take).

Damn, sorry to hear that. It's always bad to leave something one knows because something's become unbearable. I wish you best of luck on your journey! (I'm assuming a lot, but why else would you switch despite your choice of use of free time?)

There's compromises EA could take, but I think the Linux market share is just too small for them to care to spend any resources - even though they're raking in billions (~$3.4 Billion) and could spare a few resources to find a good middle ground. Capitalism at it's finest.

On the other hand: I quite like it. It forces them to keep their grubby little hands from my kernel.

I do not like anything anti cheat. But I also don't really like cheaters, especially in online games, so anti cheat could be tolerated. The only thing is: nothing trumps my systems integrity. Definitely not online player satisfaction.

[-] KLISHDFSDF@lemmy.ml 1 points 1 hour ago

Check the data on the server

I believe this already happens to some degree.

Don’t give any data to the client it doesn’t need, like enemies around the corner

Enemies around the corner still make noise/peek/shoot/etc. You can't just hide data of nearby enemies from the client because their actions still have in-game consequences that need to be reproduced across all active/nearby players.

Now the server doesn’t need to care. There’s input? Validate and use it.

How do you validate data that is within the realm of possibilities? if my head shot would have been 1 pixel too far to the left to hit and my hacked client sends it 1 pixel to the right so it makes a hit, how does the server know this isn't fake?

Server decides if it’s a headshot.

If my fake data doesn't look out of the ordinary i'm still hacking the system and tricking the server-side validation.

Client only sends coordinates of origin and target. Lag? Sucks to be you, with or without cheat.

The math to send the perfect headshot isn't difficult if you know where you are, where the enemy is and you can only send origin & target coords, I'm not sure this solves anything.

That would only create more work for the developers, all for the defacto expulsion of Linux users (Way less players at all times). The best course of action here would be the actual expulsion of Linux users. Also, EA is at most 25% correct. (Not a rational argument, I just very much dislike them)

Agree with you 100%.

Damn, sorry to hear that. It’s always bad to leave something one knows because something’s become unbearable. I wish you best of luck on your journey! (I’m assuming a lot, but why else would you switch despite your choice of use of free time?)

Thanks! I'm a huge open source supporter and only ever installed Windows on my desktop to play games, still using Linux on my laptops. Thanks to Valve, Proton, and Wine, I'll be able to go back to Linux and maybe discover some new games.

On the other hand: I quite like it. It forces them to keep their grubby little hands from my kernel.

I do not like anything anti cheat. But I also don’t really like cheaters, especially in online games, so anti cheat could be tolerated. The only thing is: nothing trumps my systems integrity. Definitely not online player satisfaction.

Kinda agree with you on this. Although I have my desktop as a strict "gaming" machine, I wouldn't mine an EA rootkit on my Desktop Linux system if all I did on it was game. But yes, they can keep their hands off my kernel on my "work" devices.

[-] Object@sh.itjust.works 4 points 2 hours ago

The server already determines if a shot's valid or not though. Once a client receives information on where the enemy is at, then the client can send message to the server that they are shooting exactly at that location.

[-] yeahiknow3@lemmings.world 10 points 6 hours ago* (last edited 5 hours ago)

The fact that this thoughtful comment was downvoted, while the computer illiterate reply was upvoted, speaks to the hive mind on this ~~subreddit~~. We all detest EA, but this guy has a legitimate point.

[-] SadSadSatellite@lemmy.dbzer0.com 2 points 5 hours ago

"In this subreddit"

Yeah I have a hell of a time remembering what Lemmy things are called as well.

[-] yeahiknow3@lemmings.world 3 points 5 hours ago
[-] nickwitha_k@lemmy.sdf.org 3 points 4 hours ago

Communities or "comms". Reddit would be quick to legal action if someone started using their trademarks.

[-] SadSadSatellite@lemmy.dbzer0.com 1 points 5 hours ago

I think they're supposed to be magazines, but I've been saying subs for.like 12 years. Mags, I guess.

Maybe çubs?

[-] Crozekiel@lemmy.zip 2 points 4 hours ago

Communities. Magazines is what kbin calls them though.

[-] SadSadSatellite@lemmy.dbzer0.com 1 points 3 hours ago

That makes a lot more sense. I was wondering why c/ stood for magazine.

[-] Evotech@lemmy.world 1 points 5 hours ago
[-] cm0002@lemmy.world 22 points 7 hours ago

If my Apex client tells the server I got a perfect headshot, how would the server know I didn't fake the data?

Any game that works like that is fundamentally flawed and AC is nothing but an attempt at a cheap bandaid at best.

The client should be doing nothing but rendering and sending player actions to the server and the server should be managing the game state as well as running its checks on those actions. And when one client sends actuons that are weird and doesn't line up with it's internal game state it should kick the client immediately always deferring to what ITS game state is telling it, not the client.

[-] KLISHDFSDF@lemmy.ml 1 points 58 minutes ago

And when one client sends actuons that are weird and doesn’t line up with it’s internal game state

What if my hacked client sends actions that are not weird, completely plausible, but didn't happen and instead were faked? E.g. I take a headshot and would have missed, but my client sends data that I actually shot them dead center, because I wasn't completely off? How would the server know it wasn't me?

[-] ampersandrew@lemmy.world 8 points 6 hours ago

The cheat in this case would send legitimate actions. Like maybe you, the human, would have missed the headshot, but your cheat corrected to the inputs that would have landed one.

[-] conciselyverbose@sh.itjust.works 28 points 9 hours ago* (last edited 9 hours ago)

Your core premise is broken. Relying on trusting anything from a remote client cannot possibly result in a fair game.

[-] Evotech@lemmy.world 6 points 5 hours ago

It's not that simple. Especially not for real time shooters, latency is a killer.

[-] conciselyverbose@sh.itjust.works 4 points 5 hours ago* (last edited 34 minutes ago)

It is exactly that simple. You already have to account for latency because everyone but one player (who you also can't trust no matter how many rootkits you install) is not the server. Having a proper server doesn't change that in any way.

Client side validation cannot possibly provide any actual security, but even if that wasn't the case and it was actually flawless, it would still be unconditionally unacceptable for a game to ever have kernel level access.

[-] Prunebutt@slrpnk.net 3 points 8 hours ago

Too bad the server at least needs the player input data.

[-] conciselyverbose@sh.itjust.works 7 points 8 hours ago

Yes, people can still cheat with a camera and manipulating inputs. There will never be a way around that.

But that's entirely unchanged by adding malware, that, even if it could theoretically work, should be a literal crime with serious jail time attached. Client side validation is never security and cannot resemble security.

[-] andyburke@fedia.io 3 points 7 hours ago

There are ways to detect and stop that, but they can and should happen on the server, not on the client.

[-] conciselyverbose@sh.itjust.works 2 points 6 hours ago

Only if you're OK banning real people.

[-] andyburke@fedia.io 2 points 6 hours ago

There are lots of options such that you can tune your false positive/negative rate. 🤷‍♂️ Tons of ways you can structure this depending on your game's tech.

[-] conciselyverbose@sh.itjust.works 1 points 6 hours ago

No options that resemble legitimate or evidence based in any way.

If a computer has the exact same input and output tools as a human, you cannot possibly do better than guessing. It is a literal certainty that you will ban legitimate players doing nothing wrong for being too good if you try, and it's unconditionally not acceptable to do so.

[-] andyburke@fedia.io 2 points 5 hours ago

Client side anti-cheat faces similar issues, and there unlike your server you don't control the hardware.

[-] conciselyverbose@sh.itjust.works 1 points 5 hours ago

I'm not sure why you think I'm saying client side is better when I called it malware.

There is no approach that is theoretically capable of doing anything at all to impact a camera and automated inputs, and there is no way of trying to do so that is acceptable. It's simply a reality of online gaming.

[-] unlawfulbooger 8 points 8 hours ago

how do you design a server to be “better” if it has to trust data from a remote client?

Because it doesn’t have to.

[-] KLISHDFSDF@lemmy.ml 1 points 43 minutes ago

Because it doesn’t have to.

But according to that article it's still trusting the client. It's just validating that the action was within the realm of possibilities, not that it wasn't faked.

From the article (highlighting from me):

Here’s how it works:

  • When you shoot, client sends this event to the server with full information: the exact timestamp of your shot, and the exact aim of the weapon.

The article continues to state:

The enemy may be the only one not entirely happy. If they were standing still when he got shot, it’s their fault, right? If they were moving… wow, you’re a really awesome sniper.

But what if they were in an open position, got behind a wall, and then got shot, a fraction of a second later, when they thought they were safe?

Well, that can happen. That’s the tradeoff you make. Because you shoot at him in the past, they may still be shot up to a few milliseconds after they took cover.

What's stated above already happens in Apex, telling us that they already do everything this article is talking about. This article mentions nothing new and doesn't solve the problem of clients sending fake data that is within the realm of possibilities - e.g. a headshot when you were actually off by a bit.

[-] turbowafflz@lemmy.world 4 points 8 hours ago* (last edited 8 hours ago)

They should just use the same approach big minecraft servers use, the game itself has no anticheat, but the server makes sure the data it's getting from the client makes sense and kicks clients sending weird data. Doing any checks client side will always be insecure and a nuisance to players

[-] Evotech@lemmy.world 3 points 5 hours ago

Yeah there's no Minecraft cheats /s

[-] 5714@lemmy.dbzer0.com 2 points 7 hours ago

how do you design a server to be "better" if it has to trust data from a remote client?

By minimising the trusted data exchanged and checking it against server side data.

[-] KLISHDFSDF@lemmy.ml 1 points 43 minutes ago

They already do this, so this doesn't solve the problem.

this post was submitted on 31 Oct 2024
232 points (100.0% liked)

Linux Gaming

15177 readers
573 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 1 year ago
MODERATORS