spatialos / UnrealGDK

SpatialOS GDK for Unreal Plugin
https://docs.improbable.io/unreal/
MIT License
403 stars 142 forks source link

NetDeltaSerialized properties won't replicate in PushModel unless they are marked dirty #3338

Open improbable-dmitrii opened 3 years ago

improbable-dmitrii commented 3 years ago

Description

USTRUCTs with WithNetDeltaSerializer trait, including but not limited to FFastArraySerializer-derived structs, won't be always replicated when a user has PushModel enabled.

Expected behavior

A NetDeltaSerialized property is always replicated with PushModel enabled.

Current behavior

A NetDeltaSerialized property isn't replicated with PushModel enabled unless the property is marked dirty.

Steps to reproduce

  1. Change your Target.cs file to contain bWithPushModel = true;
  2. Add
    [SystemSettings]
    net.IsPushModelEnabled=1

    to your DefaultEngine.ini

  3. Start GDK Test Gyms
  4. Run PredictedGameplayCuesTest

Environment

Engine: 4.26-SpatialOSUnrealGDK, f01561516311406919eef5263bf5fff5c03ade5a GDK: master, 3a6bac78d66f91e239524cb049de8f56cbb7efe5 TestGyms: master, b125597da7233203e408ab51eead5c25c1c33add

improbable-dmitrii commented 3 years ago

Added a runtime warning to clear this behavior to the user: https://github.com/spatialos/UnrealGDK/pull/3337