And who tells the server that the client hasn’t been modified
The server itself checks against what is allowed and what isn’t. It knows what the clients should be doing, and if they do something else it’s flagged. External hacks still, afaik, hook into the client and change the code as it is executed but still before it’s sent to the server, so you could still be checking against what the client is actually doing.
The external solution I mentioned in Blue Sentinel only exists because such a thing was not built into the game itself by FromSoftware, but there is no reason why it couldn’t be.
You’re not a developer, I take it.
Ironically, this is the kind of thing that sebinspace was complaining about, even if you’re saying more than just “it’s not hard!”
But the server only knows what the clients tell it. It’s not psychic or magic. And if the client is compromised, there’s all kinds of things you can do. One of the main goals is often just making exploits/cheats as difficult as possible.
On the client-side, some of the anticheat solutions are designed to help prevent the client being modified, or be able to detect if memory of running client has been modified, etc.
Some are to do some kind of regular cryptographic hash of what’s in memory and send that home in a way that is difficult to hack. But that’s difficult too because all the info needed to generate and send this home are running client-side. Its one reason that having TPM chips and things are potential security benefit.
But the point is that this is NOT simple.