In this context I’m talking about parts that are local to the server and not being replicated to any clients. I suspect this is due to the server failing to properly distribute the physics to the clients.
Here’s are two videos that shows this behavior. In this case I’m doing the following whenever the player clicks:
Client tells server that the tool is activated
Server creates a local paintball to simulate the shot
Server tells client the spawn point, direction, and color of the paintball
Client creates its own local paintball and simulates it (the client should create debris when it impacts, and the server should not)
This is all working as expected except for the fact that the server-side paintballs are not being simulated properly after the first couple physics steps, and thus they have no effect on the environment or enemy players. The client-side paintballs are being simulated exactly as intended, so for the players it looks like their shot fired just fine… until it hits something and has no effect.
The purpose of this system is to minimize the amount of data that needs to be sent to the clients in order to run the game. I intend to make a brickbattle game that can handle 100 players, but that won’t go so well with several hundred paintballs+debris flying around everywhere. If this could be fixed ASAP that would be awesome.
This is expected behavior. You’re basically saying that a client should be calculating the physics for an object that only exists on the server. That makes no sense.
I know that it’s not what ArceusInator intends, but this is exactly how a user should expect local parts to behave, given the fact that the server does no physics calculations.
I know that it’s not what ArceusInator intends, but this is exactly how a user should expect local parts to behave, given the fact that the server does no physics calculations.[/quote]
The server doing those calculations is the expected behavior, though. I see no reason why the server shouldn’t be doing physics calculations when parts aren’t being distributed to the clients - it does those calculations just fine when no clients are connected.
In the end, even if this is intended behavior, it isn’t good behavior. There’s absolutely no way any secure game would ever intend to allow a client to calculate the physics involved in hit detection. The server is the only machine here that can be trusted, and since it doesn’t feel like doing the calculations I’m going to be forced to allow my clients to do those calculations. It’s a 100 player server, and it only takes 1 to ruin the game. I was really hoping for a slightly more secure solution than just trusting the client to do my hit detection.