Hello, I've an additional question related to this topic.
I'm doing prediction on the player and interpolation on the server-controlled entities. This puts me in a situation where entities are a few milliseconds behind in time. When I receive a bunch of events from the server, I immediately apply to the ones that target the player, and I queue the ones that target the server-controlled entities; these will be executed in the future, as soon as the interpolation window reaches the right time.
By doing that though, I hit weird situations where, for example, I execute an "hit" event on the player, while the "attack" event from one of the entities is still pending execution (attacks happens instantaneously for now).
Should I simply queue also the events on the player, and execute them with some delay? Or is there another common way to deal with issues like the one I explained above?