* Added PostInit callback to UNetObjectFactory
* Moved PostInit code from bridges to their respective factory
#rnx
#rb Mattias.Hornlund
[CL 36390399 by louisphilippe seguin in 5.5 branch]
- Enabled use of NetTokens/NetTokenStore and NetTokenDataStores outside of Iris to facilitate exporting data from shared serialization paths
- NetTokenStore and NetTokenDataStores are now owned by NetDriver.
- Added support for CustomExport bunches to carry data assoiciated with NetTokenExports
GameplayTags
- GameplayTagNetSerializer now respects settings from GameplayTags.ini
- Implemented placeholder GameplayTagNetTokenDataStore.
GameplayTags are now using NetTokens to export data if running in the new dynamic mode.
#rb jodon.karlik, Ryan.Gerleve
[CL 36380672 by mattias hornlund in 5.5 branch]
* Added NetObjectFactory API
* Users can now create their own net object factories to handle discovery and instantiation of any replicated object types.
* An exemple of using this factory is to create your own replicated root objects that are not derived from the Actor class.
Iris ActorBridge:
* Created new Actor and SubObject net object factories.
* Deleted existing code handling discovery and instantiation of actors from the Bridge
ReplicationSystemTest:
* Converted Test bridge to use the new net object factory API
#jira UE-223565
#rb Mattias.Hornlund
[CL 36240214 by louisphilippe seguin in 5.5 branch]
* Fix bitarrayview issue when the NetRefHandleManager max internal index grows during the PreUpdate phase.
* Moved PreUpdate call from poller struct to the ObjectBridge directly.
#jira UE-222370
#rnx
#rb Peter.Engstrom
[CL 36194786 by louisphilippe seguin in 5.5 branch]
* Demystify BeginReplication functions in the bridges by renaming them to what type of replicated object they create.
* Renamed FCreateNetRefHandleParams to FRootObjectReplicationParams.
* Removed FCreateNetRefHandleParams from SubObject BeginReplication function. All of the params could only be set on Root Objects.
#rb Mattias.Hornlund
[CL 35824786 by louisphilippe seguin in ue5-main branch]
- NetTokens now has a concept of authority and can override local exported tokens with token received from authority so that will be used instead.
- Removed IsLocal from FNameAsNetTokenNetSerializer as it is no longer needed
- Cleaned up how we access type specific NetTokenDataStores as a step towards exposing NetTokens for use outside of iris.
- Refactored LastResortNetSerializer and CharacterNetworkSerializationMovemenPackedBitsNetSerializer to support capturing and exporting FNames and NetTokens in addition to ObjectReferences.
- Can be disabled with "net.iris.EnableIrisPackageMapNameExports 0"
#jira UE-221753
#rb Peter.Engstrom
[CL 35797849 by mattias hornlund in ue5-main branch]
- Refactored NetTokens a bit to allow export of data associated with NetTokens during serialization to be able to support exporting arbitrary data.
- Now passes full context when quantizing default state for future support of assymetric quantization.
- Support capturing NetToken exports when preserializing NetBlobs/RPCs
#rb Peter.Engstrom
[CL 35560630 by mattias hornlund in ue5-main branch]
* Deleted use of static DefaultCreateNetRefHandleParams. The FCreateNetRefHandleParams default parameter values should be used instead.
* Deleted bCanReceive param from FCreateNetRefHandleParams. This was only used by some unit tests.
* Removed unused cache option param in InternalFlushStateData
* Misc API cleanup
#rnx
#rb Peter.Engstrom
[CL 35454663 by louisphilippe seguin in ue5-main branch]
* Fix dormant objects still getting replicated when one of their push model property was dirty.
* Now caching NetFlush request of dormant objects instead of simply setting them dirty.
* Dormant objects will now be NetFlushed when an RPC is called on them. This makes Iris behave the same as generic replication.
* Added cvars to modify these behaviors: net.Iris.RPC.AllowOnDormantObjects (default true), net.Iris.RPC.AutoNetFlushOnDormantObjects (default true)
#jira UE-219859
#rb Mattias.Hornlund
[CL 35306430 by louisphilippe seguin in ue5-main branch]
* Fix dormant objects getting replicated if one of their push model property was set dirty or force net update was called on them.
* Added dormancy iris unit test
#jira UE-219859
#rnx
#rb Peter.Engstrom
[CL 35032278 by louisphilippe seguin in ue5-main branch]
* NetGroupHandles are now unique and cannot reference a future unrelated group once the group it referenced has been destroyed.
#jira UE-207640
[CL 34420714 by louisphilippe seguin in ue5-main branch]
- FReplicationWriter::UpdateDirtyGlobalLifetimeConditionals now marks subobject owner dirty - now fixed to not cause bad state transitons
- Added test for previouse bad case.
- Changed checks to ensures to avoid taking down server
#rb Peter.Engstrom
[CL 34420568 by mattias hornlund in ue5-main branch]
* CreateGroup public API now requires an FName
* Passing NAME_None will let Iris autogenerate an unique name to the group (not recommended)
* Ensure and don't create a group if a valid name was passed but it's not unique
* Improve LogIrisFiltering verbose logs to output group names
#jira UE-207640
#rb Peter.Engstrom
[CL 34321357 by louisphilippe seguin in ue5-main branch]
* Added ConsumeNetMetrics to ActorReplicationBridge.
* It can be used to collect internal Iris metrics and send them to an AnalyticsProvider
#rnx
#rb Mattias.Hornlund
[CL 34205110 by louisphilippe seguin in ue5-main branch]
The prioritizer consists of an inner sphere, outer sphere, a cone and a line of sight. Radii, field of view for cone, line of sight width and priorities are all configurable. Priorities cover the shape they're configured for except for the cone where the priority is linearly interpolated from the inner cone length to the full cone length. A 2D greyscale image is produced to memory by the VisualizeFieldOfViewNetObjectPrioritizer test.
#jira UE-216561
#rb Mattias.Hornlund
[CL 34123123 by peter engstrom in ue5-main branch]
- Fixed issue with Torned-off objects being destroyed while waiting for initial acknowledgement.
#rb Peter.Engstrom
[REVIEW] https://p4-swarm.epicgames.net/reviews/33968061
[CL 33984539 by mattias hornlund in ue5-main branch]