Release notes

Don't forget to check out our SDK Upgrade Guide when switching versions!

1.3.1

Published 18.10.2024

Added

  • Error log in the connection when sending more bytes than the specified MTU.

  • Moved AutoSimulatorConnection from Coherence.UI into Coherence.Simulator.

  • Avoid postprocessing assets on clones.

  • Extended Project window icon to inform about more problems with project configuration.

Changed

  • Changed ICoherenceBridge interface from Entity UnityObjectToEntityId(CoherenceSync from) to Entity UnityObjectToEntityId(ICoherenceSync from).

  • Changed ICoherenceSync interface to add accessors for the transform and gameObject property which is in line with the CoherenceSync behaviour.

Both changes above are considered potentially breaking changes.

Fixed

  • EntitiesManager now catches any exceptions thrown by user code during disconnection handling, ensuring that the clean up process will finish up properly even if this happens.

  • Fixed issue with offline commands not working if CoherenceBridge was null.

  • WebGL build reliability improved.

  • Fixed ArgumentNullException in CoherenceSync Editor when a CoherenceSync component was attached to a Prefab instance.

  • Fixed issue where inspecting a CoherenceSync component using Debug Mode while in Edit Mode, could result in a NullReferenceException when later entering Play Mode.

  • Fixed the validation to allow Only predict with input authority to be selected if a CoherenceInput was attached to a Game Object.

1.3

Published 17.09.2024

Check out the highlights in our 1.3 blog post and leave feedback in the forum thread!​

Added

  • Sync attribute has a new DefaultSyncMode property to configure SyncMode on the binding.

  • Invalid command bindings are reported on recompile. Warnings and errors are shown in the console if a method containing an invalid signature is decorated with a CommandAttribute.

  • A new property called EnableClientConnections has been added on CoherenceBridge. This replaces the globalQueryOn field and GlobalQueryOn property. They have both been marked as obsolete and should not be used moving forward.

  • Added a new main menu item coherence > Help > Report a Bug... that can be used to auto-generate a diagnostics file, which can be shared with coherence to help with debugging an issue.

  • If the flag Application.runInBackground is not true a warning is written to the console when the game is played in the Editor.

  • Extended the CoherenceSync Editor with the ability to detect more undesired Prefab overrides in Prefab instances, and display a warning box and a button to automatically fix them.

Changed

  • It is no longer necessary to manually add/remove COHERENCE_LOG_TRACE and COHERENCE_LOG_DEBUG defines. Those are now automatically added/removed when LogLevel is changed.

  • Optimized CoherenceSync.Awake() and CoherenceSync.OnEnable().

  • Moved RuntimeInterpolationSettings from Binding to ValueBinding.Interpolator, changing the type from InterpolationSettings to BindingInterpolator<T>

  • Network packets now contain an end marker for better integration with 3rd party relays.

  • CoherenceBridge.EnableClientConnections property replaces the CoherenceBridge.globalQueryOn field and the CoherenceBridge.GlobalQueryOn property.

  • Obsolete methods can still be used as commands if adorned with the CommandAttribute.

  • Reduced the bandwidth overhead of creating entities ~30 bytes per entity.

  • Updated engine version to v6.5.0

  • Removed schemaID field from RuntimeSettings to stop it changing every time the application is baked. The SchemaID property of RuntimeSettings is still public but is now read-only.

  • Removed CalcSHA1Hash() from Schema.

  • Replication Server endpoint for local simulator builds is stored between sessions.

Fixed

  • NullReferenceException on ArchetypeComponent (Prefabs using LODs).

  • NullReferenceException while changing variable or method settings on the Configure window.

  • Hub: account name label could wrap the last character unnecessarily.

  • Hub: cloud status label could word wrap unnecessarily.

  • Reparenting after gaining authority could be reverted.

  • Project settings: Disable connection timeout not working with rooms.

  • Quaternion interpolation jittering.

  • Cleared up the error messages in CoherenceInput to show if the scene needs baked or there is a missing CoherenceBridge.

  • NullReferenceException on instantiating two copies of the same prefab using addressables in the same frame.

  • Replicated prefabs loaded via addressables could lose commands sent to them from the authority.

  • Fix observed interpolation jitter when instantiating and immediately changing the position of an entity with a large delta.

  • Removed an error that appeared in the console when a fresh, unbaked, project was opened.

  • Coroutine couldn't be started error when asynchronously unloading a scene containing a coherence bridge with a client connection.

  • Changed the ´Is Kinematic´ component action for Rigidbody and Rigidbody2D to have ´Enable On Authority´ enabled by default. This most likely results in the desired behaviour.

  • Library folder no longer appears alongside application when running a stand alone app

  • Fixed auto-adoption of orphaned entities with 'Simulate In' set to 'Server Side With Client Input'.

  • Added missing method to custom instantiator template

  • Fixed game object title bar text being difficult to see when using Light skin.

  • Removed error message logged to the console if Android build tries to bundle replication server

  • Fixed path to /UI/icons/Loader anim.png from absolute to relative

  • Fixed issue where position bindings could get removed from nested coherence sync objects.

  • Samples browser shows correct thumbnail when opened

  • Possibility of entity being created with old binding values in bad network conditions.

  • Fixed issue with parenting and changing the floating origin in the same packet causing the child position to be wrong.

Last updated