Results -9 to 0 of 148

Threaded View

  1. #11
    Player
    TheDustyOne's Avatar
    Join Date
    Nov 2021
    Posts
    668
    Character
    Dusty Two
    World
    Behemoth
    Main Class
    Red Mage Lv 100
    Again, that requires a lot of trust in player clients that whatever information they're sending to the servers is legitimate, and if the server has to authenticate it anyway, then no load was saved.

    I don't have access to their servers, so I can't speak on how they programmed the game server-side, but it's better to refactor and make sure it can authenticate more efficiently, rather than putting trust in the client to give legitimate info. The plugins the game has are all client-side and don't typically interact with the servers. Put the entire game "client-side" and suddenly those plugins have access to everything and can just send any illegitimate data they want, which means the server would not only have to authenticate it anyway, but now has to spend more time undoing loads of bunk data (and also has to receive more data at once, increasing bandwidth).

    Imagine if the game client did all the damage calculations itself, including the high rolls and crit rates. A cheater then goes in and modifies that client with a plugin to let him override that damage value with one of their own, like say, 9999999 damage with every hit. Well we can't have that, so the server now authenticates it and says no you have to use this calculation, which it needs to do the calculation itself to discover that anyway. Okay, but the calculation also involves a random multiplier at the end (which simulates high/low rolls), so as long as the number we send is within the random threshold, we can always high roll and the server can't tell unless it ignores the client (i.e. doesn't trust it) and does the random multiplier itself. If it's ultimately going to do it anyway, don't bother getting that data from the client, it only increases the bandwidth needed between the server and client.

    The better solution is to just not let the client handle too much and let the server handle the damage calculations. Some things we already have to be trusting of the client, like player position, physics collisions, and that's usually where we have the biggest cheating problems; zoomhacks, speedhacks, camera hacks (the server never has our camera data), wallhacks. Making the entire game like that is a recipe for disaster.
    (0)
    Last edited by TheDustyOne; 11-11-2023 at 09:34 AM.