These two sync bugs are similar to each other so I'm reporting them in the same topic:
1. I don't know if anyone reported this before, but this is one of the smallest things that actually annoy me when playing, as I'm using pretty much funny animations on other players sometimes: When pushing players which are staying in the same position you will see them moving a bit in a small offset from their original position, but that only on your screen (not sure if on the screen of others too), while on his screen he stays in the same position. This is mainly bad because animations look weird if trying to do some animation like kissing the other player after you touched him even a bit, he will be in another position to you and he won't see the animation doing the same thing on him like you do. If they start moving the position sync will be fine again, until they will stop and you touch them. Wish I could do some kind of video showing two players on two different monitors.
Possible fix: Probably none right now because AFAIK someone reported some old SetPlayerPos sync bug too: the player position wouldn't be synced to others if the distance from the old position was smaller than 1.0, so we couldn't use that function when the player has no velocity to just set him back to the old position, if there's any player streamed to him. (and using SetPlayerPos like that would probably make things buggy especially if the player has lag)
2. I am 100% sure this was reported before, it is mostly the same thing as the first sync bug I reported above, actors could be pushed in a small offset too (not sure), but additionally: You can push actors around A LOT (until they will actually stream out because their position isn't actually synchronized to the server), but this problem is even bigger (well, these are 2 sync bugs in one I guess): you can push them around a lot with the car or with whatever you want. Actors will be far away from their original position and will only come back to the original position when they will stream in again to you. That is even a bigger problem because even if the actual "moved" position of the actor isn't synchronized, it is behaving like that client sided if there's anyone on your screen moving the actor.
Possible fixes right now:
- Maybe placing some box object without any collision in it, but its walls to be around the actor, the collision of the walls actually being there. That would disallow players to touch the actor, but probably can't be made too precise. If there isn't any empty box with those dimensions, then we would have to use a maximum of 5 objects for this method of fixing it.
- This is the most well known "fix" out of these two I guess: using a short timer for the actors and use SetActorPos everytime on them, which is pretty bad. (or, well, a bit more optimized: if they are actually streamed to anyone, could track them using the OnActorStreamIn/Out callbacks.
A great solution for this would be some kind of "SetActorFixed" (can't find a good name for that), so he couldn't be pushed anywhere. Also, the pushing in a small offset should be totally disabled.
These may be hacky to fix, but we could benefit from these few things, they can also make roleplaying better if using animations.
1. I don't know if anyone reported this before, but this is one of the smallest things that actually annoy me when playing, as I'm using pretty much funny animations on other players sometimes: When pushing players which are staying in the same position you will see them moving a bit in a small offset from their original position, but that only on your screen (not sure if on the screen of others too), while on his screen he stays in the same position. This is mainly bad because animations look weird if trying to do some animation like kissing the other player after you touched him even a bit, he will be in another position to you and he won't see the animation doing the same thing on him like you do. If they start moving the position sync will be fine again, until they will stop and you touch them. Wish I could do some kind of video showing two players on two different monitors.
Possible fix: Probably none right now because AFAIK someone reported some old SetPlayerPos sync bug too: the player position wouldn't be synced to others if the distance from the old position was smaller than 1.0, so we couldn't use that function when the player has no velocity to just set him back to the old position, if there's any player streamed to him. (and using SetPlayerPos like that would probably make things buggy especially if the player has lag)
2. I am 100% sure this was reported before, it is mostly the same thing as the first sync bug I reported above, actors could be pushed in a small offset too (not sure), but additionally: You can push actors around A LOT (until they will actually stream out because their position isn't actually synchronized to the server), but this problem is even bigger (well, these are 2 sync bugs in one I guess): you can push them around a lot with the car or with whatever you want. Actors will be far away from their original position and will only come back to the original position when they will stream in again to you. That is even a bigger problem because even if the actual "moved" position of the actor isn't synchronized, it is behaving like that client sided if there's anyone on your screen moving the actor.
Possible fixes right now:
- Maybe placing some box object without any collision in it, but its walls to be around the actor, the collision of the walls actually being there. That would disallow players to touch the actor, but probably can't be made too precise. If there isn't any empty box with those dimensions, then we would have to use a maximum of 5 objects for this method of fixing it.
- This is the most well known "fix" out of these two I guess: using a short timer for the actors and use SetActorPos everytime on them, which is pretty bad. (or, well, a bit more optimized: if they are actually streamed to anyone, could track them using the OnActorStreamIn/Out callbacks.
A great solution for this would be some kind of "SetActorFixed" (can't find a good name for that), so he couldn't be pushed anywhere. Also, the pushing in a small offset should be totally disabled.
These may be hacky to fix, but we could benefit from these few things, they can also make roleplaying better if using animations.