Interpolation / Extrapolation and Root Motion

Hi everyone. I have a 'problem' that is in fact already part of the bolt demo and documentation but it's confusing me.

When applying any kind of motion on the owner (==server) to an entity this entity moves jerky on the controlling client.

As far as I know this should not be suprising when bolt is in a server-authoritative configuration.
Bc: Replication is disabled for the controller (the player on the client) and therefore all motion introduced by the server is simply applied in ExecuteCommand() -> resetState == true -> "set position"

So there is no interpolation going on as far as I can tell.

I'm currently trying to implement some kind of interpolation on the controlling client without messing up the client side prediction. I'm getting closer to a solution but I think it makes sense to jump in here and just ask if I might just missed the obvious..

Primarily this issue shows up when using animations with root motion. As the root motion part only runs on the server the controlling client which is not using replication for it's transform can't predict the position correctly..


cheers

Comments

  • Rootmotion isn't possible with authoritative players https://doc.photonengine.com/en-us/bolt/current/reference/boltentity

  • With "Rootmotion isn't possible" you mean "the server is't allowed to move the entity when the client can't predict this motion" right?
    So in this case it seems I'm forcing it to work o:)

    But thx! I totally missed this - bold - paragraph :(
  • It still will not work, you can't predict and rollback that motion. Test with any latency and it will just not work at all.
  • Well.. I'm kind of using the circumstance that you can't freely move and use a root-motion enabled animation at the same time in my use case.
    So I'm just interpolating the updates from the server when playing root motion. This for itself is of course not difficult. The problem lays in not breaking the state rewind thing at the same time.
    So my main problem is to smoothly interpolate with relative offsets compared to the easier way of doing it with absolute positions.. if this makes any sense..
    :)

    Anyway, this just goes off topic so thx for your answer!