You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An API to make sure that when nodes change other nodes during rollback, the changes are propagated.
Use case
In the current rollback implementation, it is only possible to change the current object, not others. This requires cumbersome workarounds for mechanics like shove / push, moving platforms, or even managing HP and other similar stats.
The Mutations API would solve these by making sure that when changing an object in rollback, the change is recorded and further ticks are re-simulated based on the updated state.
This affects multiple game genres.
Implementation notes
NetworkRollback would expose methods for managing mutated objects:
NetworkRollback.mutate(object, [tick])
NetworkRollback.is_mutated(object, [tick])
These methods can be used to register mutated objects and to check for them. Mutations always happen at a given tick, and affect all future ticks as well. Specifying the tick is optional, and should default to the current ( rollback ) tick. Re-simulation should consider the earliest mutation tick.
RollbackSynchronizer should take mutations into consideration and always re-simulate mutated objects.
✨ Description
An API to make sure that when nodes change other nodes during rollback, the changes are propagated.
Use case
In the current rollback implementation, it is only possible to change the current object, not others. This requires cumbersome workarounds for mechanics like shove / push, moving platforms, or even managing HP and other similar stats.
The Mutations API would solve these by making sure that when changing an object in rollback, the change is recorded and further ticks are re-simulated based on the updated state.
This affects multiple game genres.
Implementation notes
NetworkRollback
would expose methods for managing mutated objects:NetworkRollback.mutate(object, [tick])
NetworkRollback.is_mutated(object, [tick])
These methods can be used to register mutated objects and to check for them. Mutations always happen at a given tick, and affect all future ticks as well. Specifying the tick is optional, and should default to the current ( rollback ) tick. Re-simulation should consider the earliest mutation tick.
RollbackSynchronizer
should take mutations into consideration and always re-simulate mutated objects.Distribution
netfox core
Notes
The text was updated successfully, but these errors were encountered: