I have a question regarding interpolated ghosts. I know the server is authorative and interpolated ghosts on the client get only updated by the snapshots from the server. So all the logic for them should be running on the server.
Now lets say I have systems running in the PredictedSimulationSystemGroup
and e.g. applying damage to entities depending on certain input from a client or based on a dmg buffer that has been filled by other predicted systems based on user inputs and collisions, using WithAll<Simulate>()
to only have that done for predicted ghosts. But what if I now introduce interpolated ghosts to the scene, which should be handled by the same system? So basically should receive damage in the same way predicted ghosts would receive it.
From my understanding the same system can handle this, even so it’s running in the PredictedSimulationSystemGroup
and using WithAll<Simulate>()
, as on the server Simulate is enabled anyway and it would exclude the interpolated ghosts only on the client side. So that way the interpolated ghosts would receive their damage only based on what the server has calculated and set in the corresponding systems, just like it’s supposed to be.
Am I right with that and that I don’t need different systems for interpolated and predicted ghosts in such cases?