• 0 Posts
  • 405 Comments
Joined 2 years ago
cake
Cake day: June 10th, 2023

help-circle
  • You’re almost correct, but a sound bouncing off a wall sounds the same as something beyond it, or coming from a slightly different angle, just like how visually a reflection is “beyond” the mirror. Sure, you can try to calculate that back to the original location, but that’s not very accurate, nor does it tell you the origin of the sound, could be an enemy, could be a friend, could be random low sound spawns sent by the server to bait cheaters.

    For the threshold I think it’s a lot smaller than you think, while a wall hacks that shows an enemy that will become visible the next frame is useful, it’s a lot less useful than current wall hacks.

    As for the audio, you can absolutely randomize stuff enough that it’s useless to hacks but useful for players, because no person will hear a sound and know the exact source of it, only a general direction. Hell, most games don’t even do proper wall bouncing or other sound mechanics that would allow humans to pinpoint location in real life.



  • I have mixed feelings about this. On the one hand I like the idea of AA because if the controller dies mid-session you can just swap them and keep playing, on the other this is easily solvable by having a dock like the 8BitDo Ultimate, which makes it so that the controller is always fully charged when you pick it up, so the only advantage that the AA had disappears, and it’s even more comfortable to have the controller always charged than having to get up in the middle of the play session to find new batteries. And the Steam controller has a charging puck, so it should never have the issue where AA are better. So my feeling that it would be better is not justified.

    The other supposed advantage is longevity, since all batteries eventually die off, if it’s an external battery you just buy new ones and are done. Being internal makes it more of a hassle. But Valve has been very open with the repaiedness of their devices, so I expect this to not be a big issue, as long as the batteries are still being manufactured by the time the one in the controller dies off (which should take a lot more time to happen than regular AA).


  • The short answer is because I’m lazy. I might lose 30 min during the system setup instead of 20, and now I have a system that I don’t have to worry about until the hardware gives up.

    Arch is a rolling release distro, which means it’s unstable, which doesn’t mean what you think, instead it means that you can update your system indefinitely without worrying about “versions”. For example, if you had Ubuntu 20.04 installed on your server, in may you had to update it to 24.04, and that’s something that can cause issues. And in 2029 you’ll need to go through that again. Arch is just constant updates without having that worry. Which means no library is safe from updates, ergo unstable.

    Also the AUR is huge, and I’m a lazy ass who likes to just be able to install stuff without having to add PPAs or installing stuff by hand.

    Also there’s the whole customize the system, I use a very particular set of programs that just won’t come pre installed anywhere, so any system that comes with their own stuff will leave me in a system with double the amount of programs for most stuff which is just wasteful.

    Finally there’s the wiki, while the vast majority of what’s there serves you in other systems, if you’re running Arch it’s wonderful, it even lists the packages you need to install to solve specific errors.



  • If an enemy is outside your vision, but makes a noise, you cannot give that information to the client without revealing the enemies position.

    Sure you can, for starters audio is a lot less reliable to pinpoint location than video, so the server can randomize the position somewhat and still be accurate enough. Not to mention that sound bounces off walls, so it’s not exactly wrong to give the point of origin of a sound as a wall nearby the origin or destination, and an even more advanced system could use ray tracing to calculate sound path and give you a fully accurate sound point that doesn’t reveal the source exactly.

    If a player kicks a bucket across the map, the bucket flying through your screen makes it trivially easy to calculate the point of origin - and you know something happened there / player was there.

    But again if you’re not sending the bucket position until it’s in FoV that doesn’t matter at all.

    We’d be really really lucky if server side fog of war would be the kill-it-all solution to cheating.

    It’s not the end all, but it does take are of whole categories of hacks.



  • Well, yes, but, let me counter with this:

    You can completely remove wall hacks from the equation by doing some FoV calculations in the server, this completely solves that issue, there’s no client side hack that would be able to show you enemies behind the wall because the server isn’t sending them to you.

    And to the other point, if the 20ms kill is bad but the 14ms kill is good, there’s space to argue that the cheater is worse than the players so you don’t really need anti-cheat so solve that, Skill based matchmaking takes care of that for you, he would eventually be placed with people who are better than him even with hacks.

    Sure, server side anti-cheat can’t capture everything, but neither can client side, but server side anti-cheat can make it so that your client side cheats are pointless, because they can’t make you better than everyone, you have to remain averageish, and if you’re consistently above average skill based matchmaking will bump you up and up until you’re going to lose even with cheats or you will be playing against other people with the same cheats as you.



  • Your head is in the right place, but your example is very wrong. First, unless it’s a very slow projectile that’s not how bullets work in games, second movement takes place in the server, to do so in the client is nuts. Client sends inputs, sever moves, gives back player location, client adapts. While waiting for a reply the client simulates the movement expected, but sometimes the server doesn’t receive the package and so tells you you haven’t actually moved and you teleport back.

    What’s usually not done is calculate vision cone, instead the server gives you everyone’s position and you calculate whether you can see them on your GPU. Which is why if you can get access to the GPU pipeline you can tweak it so it shows you objects through walls. If you move the LoS calculation to the server you completely eliminate wallhacks, however that is very expensive to do (although ray tracing GPUs might provide a good approach in the future)










  • Unfortunately for larger games individual devs don’t have that much control nor can have a mensurable impact. For example, I wrote a few lines of code for a large game, those lines will be executed every single time the game runs, but if they weren’t there no user would notice. I was told to write those lines, and it’s not something I personally wanted to add to the game, there was an issue, I was sent to fix it, I did. This is true for the vast majority of the game code, most devs are pointed to issues to fix or features to implement, they have some wiggle room in the how to do stuff, but the what to do has been approved by the boss of the manager of your manager’s manager, and unless there’s a good reason it won’t change.

    Think about it this way, have you ever watched the credits from a AAA game? The vast majority (as in there are likely only a couple of persons who didn’t) of the people in that list contributed something to the game, either directly or indirectly, it’s hard to measure how much each contributed, a small but critical fix might be more important than a large but unused feature, how do you measure between the two?. Not to mention past employees who did stuff for a previous game that got re-used.

    Don’t get me wrong, it’s a nice idea, one that I would personally benefit from, but I think it’s just not feasible for large games. In short it’s impossible to be fair doing that, and people would get hurt because John from accounting got the same share that he did. And if you do it in any other way that’s not everyone gets the same share, you’re essentially playing favorites with the people whose job is to do the stuff you’ve ranked higher, even though the other person’s job is just as important.