this post was submitted on 07 Apr 2024
313 points (96.4% liked)

Linux Gaming

15373 readers
225 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
 

I was a long time Windows user, starting with XP. I only tried Linux a few years ago, and while I loved it, at the time I had to dual boot for a couple specific Windows only things (VR and flight/racing sim hardware).

A couple months ago though, I got sick of it. I figured if I really wanted to do those things, I could boot up a VM, or just force myself to be patient and wait for a proper Linux solution. So, I wiped all my drives and installed Arch. Around this time, I also got an AMD RX 7600XT, so that was a nice performance boost, plus it waranted a switch to Wayland.

Let me tell you, I have been so pleasantly surprised by basically everything I've tried. Cyberpunk 2077 through Heroic Launcher, for example, with 15 odd mods. Runs at a solid 80fps at 1440p on high settings, the only graphical issue I noticed was flickering volumetric clouds. This game ate my old card (the venerable GTX 1080) alive even on Windows.

Just last night, I found my joystick, an old VKB Gladiator + Kosmosima grip, plugged it in and it worked perfectly.

What has really, really impressed me though is VR. I have a Quest 2 that I used to use via Steam link to play my PC wirelessly. Obviously that isn't an option on Linux (yet) but that's where ALVR comes in. Sideload the client on the quest, run the streamer on the desktop, start SteamVR, and bam, it works. The first game I tried was Elite Dangerous, one of my all time favourite games and easily my favourite VR epxerience. Now, I won't go ahead and claim it's perfect, hence the 99% in the title. After fiddling with the settings and making sure I had hardware encoding/decoding set up right, I had very good clarity, up to 120hz refresh rate, but occasional blockiness and artifacting, especially in heavier graphical scenes, like during docking. However, out in open space, it felt just like the ED I know and love.

At this point, I'm just going to look at fiddling with some settings and hopefully smoothing out the stream, but the fact that I can play my favourite games, with my favourite hardware, with great performance and in VR, and the amount of setup is really comparable to what it is on Windows is just kind of wrinkling my brain. Plus, only a couple months ago, this wasn't the case. Support for things that were once doomed to be dual boot material for the foreseeable future is coming along rapidly. This is a great time to be a Linux gamer.

you are viewing a single comment's thread
view the rest of the comments
[–] sugar_in_your_tea@sh.itjust.works 2 points 7 months ago* (last edited 7 months ago) (4 children)

A few options in my personal order of priority:

  • allow private servers - you can still have competitive play, just with people you trust to not cheat
  • anti-cheat on the server only - would require human moderation as well (users could submit reports, which could be compared to server logs)
  • increase cost for cheating - maybe have players ante up, and lose their ante if they're caught cheating (e.g. pay for game licenses and have the license revoked); to be fair, this would require independent review
[–] kilpatds@mastodon.social -1 points 7 months ago (3 children)

@sugar_in_your_tea Private servers exclude MMOs as a class of game. That works well for death-match style (or BG3 style) 4-player games, but doesn't work for 30-300-3000 people games.

Anti-cheat server-only allows too many cheats. There's already enough trouble distinguishing someone using wall-hacks from someone with good headphones in a game that does 3d-spacial-sound... trying to do that on the server side ... just won't work. Same applies for other ways of increasing the costs if detected

[–] sugar_in_your_tea@sh.itjust.works 2 points 7 months ago* (last edited 7 months ago) (2 children)

Private servers exclude MMOs as a class of game

Why? There are some massive Minecraft servers (thousands of players), and Palworld is self-hostable (closer to other MMOs), so I honestly don't see the issue. You'd have a different set of characters on each server, but that just increases the risk for cheaters who get booted.

wall-hacks

Part of anti-cheat is not sending the data cheaters use to cheat in the first place. A wall hack is possible because the client is aware of what's beyond the wall, and that doesn't need to be sent for anything that's not visible. That increases computation on the server, so games tend to send more game state than is necessary for smoother gameplay.

Same applies for other ways of increasing the costs if detected

There should be a mix of elite players among the "tribunal" for determining whether someone is hacking. Players report other players, and the server should log enough to recreate the play session so moderators can review the gameplay to make a determination. A lot of cheating is pretty obvious to detect algorithmically, so this would be in a "review" scenario where it's not so cut-and-dry.

But this takes a lot of resources, which cuts into profits, so I think studios tend to just throw on anti-cheat so they can shift blame (hey, anti-cheat didn't catch it, we'll forward your report). But I do sincerely believe it's feasible for serious competitive games where real money is on the line (e.g. tournaments for prize money and whatnot) without clientside anti-cheat. For more casual games, a higher error rate is probably fine.

[–] kilpatds@mastodon.social 0 points 7 months ago (1 children)

@sugar_in_your_tea Your response about wall-hacks is my "don't tell the game anything" comment. It's really really damn slow. You typically don't want to do frame-by-frame determination of if an opponent is just in view or not (because that's a full render), so you send the info to the client once it's possible... at which point the client knows.

Even if the game isn't hacked, the video pipeline "knows", and hacks have moved to be outside of the game space (thus the move to kernel-based)

Yup, "don't tell the game anything" is slow, I'll give you that. But anything that exists on the client can be hacked, even on a completely locked down console. People still cheat all the time with anti-cheat enabled, and I don't expect that to change just because they put it in the kernel.

frame-by-frame determination

A couple thoughts:

  • can be predictive - clients already do a ton of prediction, this just moves that to the server
  • can run in parallel to normal game update logic
  • the server should have the (simplified) geometry data and can do a (relatively) cheap visibility check

The data would need to be sent a few frames ahead of time for performance reasons, so there's risk there, but if someone can wall-hack within a few frames, that's a good indicator that they're cheating anyway. I'm no game dev, so I'm probably missing some significant considerations here, but it seems like this is feasible, just expensive when the alternative is a much less expensive anti-cheat service.

And I agree with your reply, this is a hard problem to solve. I just think game companies are pushing the problem onto anti-cheat devs instead of really trying to solve it themselves in a privacy and security respecting way because it's cheaper and easier to offload a large share of that liability.