Release 0.25.0
This version now targets bevy 0.17!
Merge Predicted, Confirmed and Interpolated
This is a big change. In the past you would have 2 separate entities:
- a Confirmed entity that contains the remote state received via replication
- a Predicted entity that lives in the future compared to the remote and contains the predicted state of the entity, or an Interpolated entity that lives in the past and contains the interpolated state (interpolated between 2 consecutive Confirmed states)
This model had a lot of flexibility since the entities were separate, but it also added a lot of extra complexity:
- non predicted components had to be synced from the Confirmed to the Predicted entity
- we had to apply entity-mapping from the Confirmed to the Predicted entity
- sending a message from the client to the server about a Predicted entity was tedious, as you had to map from Predicted entity to Confirmed entity first
In this version I'm opting to greatly simplify the logic by merging all these entities into one.
If an entity is Predicted/Interpolated, then the marker component will be added, no additional entity will be spawned. For Predicted/Interpolated components, the replication updates are now inserted as instead of . Other components are inserted directly as .