Page MenuHomeFeedback Tracker

Vehicle state transition failure during locality change
New, NormalPublic

Description

When vehicle changes locality after having your local unit get in\spawn as the driver, it may randomly fail to receive correct state from previous owner. I've been noticing this happening a lot over the years and now after having assembled drones disappear on me twice on a local server with 0 latency, I decided to make a repro for it.

Its not just assembled UAVs that are affected by this issue. My personal most usual sighting of this happened in KotH, server spawns a jet for player and does setVelocity on it, then player moves into jet with moveInDriver and sometimes jet ends up having 0 velocity for the player and they fall nose down.

Details

Severity
Major
Resolution
Open
Reproducibility
Random
Operating System
Windows 10 x64
Category
Multiplayer
Steps To Reproduce
  1. Run attached mission with player server and player client.
  2. Have client use "ASSEMBLE" action.
  3. Wait until assembles complete, system chat message will show how many vehicles failed to update position alongside locality change from server to client.
Additional Information

This repro also uncovers a lot of similar issues: sometimes locality fails to change at all (driver is local, vehicle is remote), sometimes UAV driver gets an order for a take off randomly, but I'll leave it out for now.

Event Timeline

SaMatra created this task.Apr 3 2023, 4:38 PM
SaMatra renamed this task from Vehicle state transition failure during locality transition to Vehicle state transition failure during locality change.Apr 3 2023, 4:42 PM
SaMatra updated the task description. (Show Details)Apr 3 2023, 4:49 PM

if set velocity is part of vehicle update packet (probably is) then it will update when it updates which could be after ownership change which is immediate. Not sure what would be a good solution

SaMatra edited Steps To Reproduce. (Show Details)Apr 3 2023, 4:55 PM

Updated repro, now properly shows bugged vehicles in the chat and puts them into fucked array.

SaMatra added a comment.EditedApr 3 2023, 4:59 PM

This doesn't happen only with such quick scripted assembles, I was working with backpack drones recently and had them disappear twice on me during normal testing gameplay (Using Assemble from mouse wheel menu). What I've seen as client: drone appears before me for a few frames and then vanishes. When I checked its position it was very far and high away (out position probably) and falling down back to earth.

SaMatra edited Steps To Reproduce. (Show Details)Apr 3 2023, 5:04 PM

if set velocity is part of vehicle update packet (probably is) then it will update when it updates which could be after ownership change which is immediate. Not sure what would be a good solution

Are update messages of far away vehicles (beyond view distance or some constant?) different from normal update messages? This is most noticeable for such vehicles are are located far away (far normally or being moved out). Maybe if they're different, they're handled differently thus creating this issue?

Example of repro results, in this case 4 out of 100 drones teleported back to their original spot after assembly.

SaMatra edited Steps To Reproduce. (Show Details)Apr 4 2023, 3:36 AM
Geez added a subscriber: Geez.Apr 14 2023, 10:59 AM
dedmen added a subscriber: dedmen.Apr 18 2023, 1:18 PM

after having assembled drones disappear on me twice on a local server with 0 latency, I decided to make a repro for it.

Why is that related to locality? If I understand right, when you assemble a drone on your client it should spawn locally on your machine? So there should be no ownership transfer.

server spawns a jet for player and does setVelocity on it, then player moves into jet with moveInDriver and sometimes jet ends up having 0 velocity for the player and they fall nose down.

We need to force a global network sync of the entity, before we trigger the locality change.. that should be somewhat-ish simple. But I don't see relation between this and the drones issue, sounds like two different bugs

dedmen set Ref Ticket to AIII-55655.Apr 18 2023, 1:30 PM