I mean I'm not the devs but I coded my own thing kinda like SK and it makes a lot of the sense the way it's done which is sorta half and half.
Basically, server contains entities and client mirrors them. Then the client misses like half the packets for no reason and fills in the blanks i.e. if you hit a wall it does detect that for you on your client, so that it looks correct and because that's efficient. It also assumes things just sorta keep going so if your buddy is traveling north and you remove the server, the client projects them running forever away.
Hit detection for bullets, enemies, attacks, etc. is done on the server though because of security (Hello Mr. Server I hit the devilite 1000 times :D) and because of synchronization issues like lets say I hit the devilite with a blitz and you hit it with a supernova does it bounce back or.... like the server would have to figure that out and send a result and it would be really jarring.
I mean I'm not the devs but I coded my own thing kinda like SK and it makes a lot of the sense the way it's done which is sorta half and half.
Basically, server contains entities and client mirrors them. Then the client misses like half the packets for no reason and fills in the blanks i.e. if you hit a wall it does detect that for you on your client, so that it looks correct and because that's efficient. It also assumes things just sorta keep going so if your buddy is traveling north and you remove the server, the client projects them running forever away.
Hit detection for bullets, enemies, attacks, etc. is done on the server though because of security (Hello Mr. Server I hit the devilite 1000 times :D) and because of synchronization issues like lets say I hit the devilite with a blitz and you hit it with a supernova does it bounce back or.... like the server would have to figure that out and send a result and it would be really jarring.