Skip to content

feat: NetworkTransform with blittable states and handled in jobs - #4123

Draft
NoelStephensUnity wants to merge 7 commits into
develop-3.x.xfrom
feat/networktransform-handled-in-jobs
Draft

feat: NetworkTransform with blittable states and handled in jobs#4123
NoelStephensUnity wants to merge 7 commits into
develop-3.x.xfrom
feat/networktransform-handled-in-jobs

Conversation

@NoelStephensUnity

Copy link
Copy Markdown
Member

Purpose of this PR

(wip)
This is a multipronged update that provides:

  • Blittable abstractions for all NetworkTransform states (i.e. can be used in a job and/or anything running natively)
    • This includes everything that is used by NetworkTransform (i.e. interpolators, job friend quaternion compression, and job friendly versions of lerp, smooth dampening, and more.
  • It provides users with a more optimized version synchronizing NetworkTransforms, batched mode, without any breaking changes.
    • Batching NetworkTransforms is a global setting (i.e. either everything is synchronized as batched NetworkTransform or the original way which is per instance) set within the Project Settings --> Multiplayer --> Netcode for GameObjects section.
    • This new project wide setting could also be where a user could opt to just make everything with a NetworkTransform a hybrid prefab.

Jira ticket

Link to related jira ticket (Use the smart commits). Short version (e.g. MTT-123) also works and gets auto-linked

Changelog

  • Added: The package whose Changelog should be added to should be in the header. Delete the changelog section entirely if it's not needed.
  • Fixed: If you update multiple packages, create a new section with a new header for the other package.
  • Removed/Deprecated/Changed: Each bullet should be prefixed with Added, Fixed, Removed, Deprecated, or Changed to indicate where the entry should go.

Documentation

  • Will require documentation updates (wip).
  • Could include edits to existing public API documentation. (wip)

Testing & QA (How your changes can be verified during release Playtest)

Functional Testing

Manual testing :

  • Manual testing done

Automated tests:

  • Covered by existing automated tests
  • Covered by new automated tests

Does the change require QA team to:

  • Review automated tests?
  • Execute manual tests?
  • Provide feedback about the PR?

If any boxes above are checked the QA team will be automatically added as a PR reviewer.

Up-port

No up-port is required.

Backports

None required
This might change, but for now no back port required.

First phase of the NetworkTransform optimization pass.
First part of the second pass which begins to get the job integration side of things.
This provides burst compatible math operations for the non-burst compatible ones that NetworkTransform users.
Connecting the jobs to the previous work as well as the batched message type.
Detecting changes in state and interpolation are handled in jobs as opposed to the main thread.
Some additional changes but for the most part this is the core framework to abstracting NetworkTransform away from the managed layer. This includes some core-feature parity tests when using per-instance vs batched synchronization modes.
Ownership transfer when using an owner authoritative motion model was not replicating the state properly upon the transfer of ownership causing an out of sync server transform state.
removing link.xml that was accidentally included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant