Aspects in different entities not in Sync with each other - How is it possible to maintain an accurate simulation?

#1
Network serialization happens on an entity level.
Marking the same aspect dirty on two different entities and then expecting the data to arrive in the same frame == wrong
Either aspect can arrive before the other, and this removes any chances for a stable server snapshot being sent to the client.

Each entity will be off relative to other entities, which is especially disastrous when 2 entities have dependencies.

If snapshots are on a per-entity basis, how is networking even possible?
Lets say someone throws a grenade and damages 3 entities.
Each one serializes the health at different times, even though they should all have the same post-nade.

Re: Aspects in different entities not in Sync with each other - How is it possible to maintain an accurate simulation?

#2
After tweaking some logic around, this might not be necessary (mostly) if you use remote-lag on actors.
Remote actors would be interpolated between server snapshots, so some form of buffer is necessary.
And with buffer/interp all entities would be at the same 'time', no chance of 1 entity being ahead of the others
(Since aspects would've sync'd before you read/used data)

But for local entities it's a must to have synchronization in sync.
Currently implemented a setup of linked UpdateSendable's.
Any entity that client has authority over gets its data sent in same packet
(And if one fails to send they all fail, lifecycle is linked etc.)

Who is online

Users browsing this forum: No registered users and 1 guest