#๐Ÿ“ขโ”ƒreleases

1 messages ยท Page 1 of 1 (latest)

valid pewter
#

๐ŸŽ‰ Multiplayer Play Mode (MPPM) Package v1.6.1 ๐Ÿ“ฆ is now publicly available!

Added

  • Added a Profiler panel option within Clone Editors that users can toggle on/off during Edit and Play mode.
  • Added validation checks for remote instances to ensure the cloud project ID, environment, and Multiplay are all properly set up before running a scenario

Fixed

  • Fixed an issue where the clone editorโ€™s audio toggle would reset every time scripts were reloaded
  • Fixed an issue where the Main Editor's build profile fails to restore when building local and remote instances.
  • Fixed the play button not updating when entering play mode using keyboard shortcuts
  • Fixed an issue where the Play Mode status popup window failed to update during loading
  • Fixed an issue where removing an active Scenario Configuration fails to close running instances.
  • Fixed an issue where removing an Instance configuration from within the Configure Play Mode Scenarios window results in a null reference error.
  • Fixed an issue where the Mute Player At Launch toggle not working properly
hidden timber
#

๐ŸŽ‰ Netcode for GameObjects v2.5.1 ๐Ÿ“ฆ is now publicly available!

Added

  • Added a warning when NetworkManager.NetworkConfig.ConnectionApproval is set in a distributed authority context. (#3658)
    Fixed
  • Fixed issue where a client, under above average latency and packet loss conditions, could receive multiple NetworkTransform state updates in one frame and when processing the state updates only the last state update would be applied to the transform if interpolation was disabled. (#3614)
valid pewter
#

๐ŸŽ‰ Unity Transport Package (UTP) v2.6.0 ๐Ÿ“ฆ is now publicly available!

New Features

  • It is now possible to increase the reliable pipeline window size past 64. The maximum is technically 2040 but it is strongly recommended to stick to 256 or below. The documentation has more details on this change.
  • Added a new NetworkDriver.GetMaxSupportedPayloadSize method that can be used to find out what the maximum payload size is on a given connection/pipeline. It's equivalent to fetching the Capacity property of the DataStreamWriter returned by BeginSend on the same connection and pipeline, but does not require acquiring a packet buffer like BeginSend does.

Changes

  • Integration with the logging package (com.unity.logging) has been removed. Logs are now only written to the default Debug.Log mechanism. This should have no impact even to most users of the logging package, since its default configuration forwards Debug.Log logs to the default logger.
  • When using the reliable pipeline stage, the configured window size will now always be internally rounded up to the next multiple of 8 (if not already one). This change should be completely transparent to everyone, as the only impact is slightly improved bandwidth if using an atypical window size.
  • NetworkDriver.GetMaxSupportedMessageSize can now return different negative values to represent different errors. All values map to the Error.StatusCode enum.
  • Updated the Burst package dependency to version 1.8.24.
  • Updated the Mathematics package dependency to version 1.3.2.
#

Fixes

  • Fixed an issue where the DF (don't fragment) bit would be set even when MTU discovery was disabled, which could cause problems in environments where the MTU is more limited (like with some VPN providers).
  • Prevented an extraneous error from being logged when a send would fail within a pipeline (which already logs an error).
  • Fixed a bug where NetworkDriver.CheckHostnameLookupStatus would throw an exception when checking the status of connections that either did not use hostname lookup at all, or for which the hostname lookup had already finished in a previous driver update.
  • Prevented an error from being shown on Windows when a UDP socket bound to an IPv4 address received IPv6 packets (or vice-versa). Such packets were always discarded anyway, but now they won't generate errors at least.
  • Fixed a bug in NetworkDriver.MaxHeaderSize where it would return a size one byte larger than the actual maximum header size.
  • Fixed an issue where TLS alert messages would lead to a decryption failure, leading to an error being logged even in normal disconnection scenarios.
  • NetworkDriver.Bound and NetworkDriver.Listening will now return false if accessed on a disposed driver, instead of throwing a NullReferenceException (or causing an application segfault if safety checks are disabled).
valid pewter
#

๐ŸŽ‰ Multiplayer Play Mode (MPPM) Package v2.0.0 ๐Ÿ“ฆ is now publicly available!

Added

  • Added Multiplayer local simulation mode to server local instances
  • When deploying remote instances, automatically create a fleet with the correct architecture based on the server's build profile (e.g. if building for ARM64, will automatically create an ARM64 fleet).

Changed

  • This version only supports Unity 6.3 and beyond.
  • Migrated most of the code to the engine into the Play Mode Framework and the Multiplayer modules. This change is laying the foundation for a more stable and open Play Mode experience.
  • Fixed an issue where the clone editorโ€™s audio toggle would reset every time scripts were reloaded.
  • Updated minimum version of Multiplayer Services packages to 1.2.0-pre.1.
gilded relic
#

๐ŸŽ‰ Netcode for GameObjects v2.6.0 ๐Ÿ“ฆ is now publicly available!

Added

  • NetworkSceneManager as an internal wrapper for the SceneManager.Scene.handle and swapped all places that use an int to represent a Scene.handle to instead use the NetworkSceneManager. (#3647)
  • Clicking on the Help icon in the inspector will now redirect to the relevant documentation. (#3663)
  • Added a Set function onto NetworkList that takes an optional parameter that forces an update to be processed even if the current value is equal to the previous value. (#3690)
    Changed
  • Improved performance of the NetworkVariable. (#3683)
  • Improved performance around the NetworkBehaviour component. (#3687)
    Fixed
  • Distributed authority clients no longer send themselves in the ClientIds list when sending a ChangeOwnershipMessage. (#3687)
  • Made a variety of small performance improvements. (#3683)
civic jacinth
#

๐ŸŽ‰ Netcode for Entities v1.9.1 ๐Ÿ“ฆ is now publicly available!

Changed

  • Host migration system now caches the ghost component types it uses when collecting host migration ghost data, resulting in faster host migration data collections. It's updated any time the ghost prefab count changes.
  • GhostField.Quantization template mismatch errors are now warnings, and will resolve to working code, rather than outputting errors. As a result, we will no longer assume primitive integer types want to disable quantization, as that logic did not cover all cases (e.g. like Entity structs etc).
  • Host migration internal ghost data gathering has improved and should be faster now but add a few bytes of extra data compared to before.
    Fixed
  • Occasional MultiplayerPlayModeWindow.HandleHyperLinkArgs truncation error spam.
  • Unsafe compiler error when using a fixed array as a GhostField. Note: You must implement a corresponding safe accessor method implementing ref returns.
  • GhostField compiler error when using FixedList with nested struct types, as well as related InvalidOperationException in a SubString call when using a FixedList with a primitive type.
  • Code generator incorrectness when generating struct fields for GhostField FixedList and fixed array serializers (Entity fields in particular).
  • Incorrect curChangeMaskBits offset after a FixedList field is generated, due to incorrect aggregateChangeMask flag. It's now forced correct via forceComposite.
  • FixedList's and unsafe fixed array) now correctly support non-public structs for the element type (in cases where we know the code-gen will resolve without compiler errors).
  • GhostSnapshotValueEntity now uses TryGetValue rather than a HasComponent call followed by a lookup, reducing lookup costs.
  • Issue where specifying a LogLevel (via the Default.globalconfig's unity.netcode.sourcegenerator.logging_level property) did nothing.
unkempt crown
#

๐ŸŽ‰ Competitive Action Multiplayer template version 1.3.0 is now available for Unity 6.3!

Built with the Netcode for Entities package and using Unity Gaming Services (Matchmaking, Multiplay hosting, Relay), this template helps you **jumpstart **development for competitive action games.
It includes a Bootstrapper, in-Editor tutorials, and a basic shooter gameplay loop.

If you're looking to build battle royale or competitive shooter gamesโ€”with support for client-side prediction and the ability to handle a large number of entities in real-timeโ€”this is for you.

๐Ÿ“„ Docs:

https://docs.unity3d.com/Packages/com.unity.template.multiplayer-netcode-for-entities@1.3/manual/index.html

๐Ÿ“ฆ Changes

  • Editor and packages update
  • Warnings fixes:
    • Removed obsolete GetRefRWOption usage
    • Ignored the 'IAspect' is obsolete warning until an Aspect-less version of the character controller is available

๐Ÿš€ Competitive Action Multiplayer template 1.0.6 and 1.1.1 versions are also now available for Unity 6.0 and Unity 6.1!

๐Ÿ“ฆ Changes

  • Editor and packages updated
  • Backported warnings fixes from 1.3.0

Need help? Reach out in the #1390346492019212368 channel or in the Multiplayer Discussions.

valid pewter
#

๐ŸŽ‰ Multiplayer Play Mode (MPPM) Package v1.6.2 ๐Ÿ“ฆ is now publicly available!

Added

  • Added Drift detection support for Free Running Instances. Drift occurs when an active Free Running instance becomes
    desynchronized from the current state of the project within the Unity Editor. This typically happens when development
    actions, such as a code change, or a modification to an active scene, are performed in the Editor while an Instance is
    running.
  • Added Drift warning UI icons to both Play Mode Status Window and Play Mode Status Popup. These are displayed when
    a drift is detected and goes away after the Free Running instance is restarted.
  • Character limit of 100 for scenario names and 500 for scenario description to prevent performance issues.

Fixed

  • Fixed an issue where the scenario configuration window warning UI does not display correctly when the corresponding build profile is not installed
  • Fixed an issue where pausing before entering playmode didnโ€™t keep Multiplayer virtual player(s) paused
  • Fix UI overlap when Multiplayer Play Mode window is narrow
  • Fixed an issue where focusing on a Virtual Player does not bring its window to the front.
  • Fixed an issue where the info HelpBox is not responsive when resize the Multiplayer Play Mode Window
  • Fix an issue where toggling the running mode of a Virtual Player fails after cancelling a running Scenario midway.
unkempt crown
#

๐ŸŽ‰ Netcode for GameObjects v2.7.0 ๐Ÿ“ฆ is now publicly available ๐Ÿ‘‰ (CHANGELOG)

Hang on to your netcode hats as this release includes a cornucopia of fixes and improvements!

  • Universal RPCs (RpcAttribute) now provide you with the ability to apply invoke permissions as an RPC attribute parameter.
  • Improvements with error messaging which includes more details on the reason for a disconnect.
  • Unless specified by user script, all messages now use reliable fragmented sequenced delivery which is part of a continued effort to improve upon the NGO messaging pipeline and preserving order of operations.
  • NetworkTransform and the BufferedLinearInterpolator both have been refactored to improve transform space transitions when SwitchTransformSpaceWhenParented is enabled.
  • This version also includes a broad optimization pass with internal usage of complex property getters which primarily focuses on internal references to NetworkObject and NetworkManager.
  • It also includes several fixes and updates to documentation.
unkempt crown
#

๐ŸŽ‰ Netcode for GameObjects v1.15.0 ๐Ÿ“ฆ is now publicly available!

Changed

  • Better error message when using generic IEquatable in a generic INetworkSerializable class and updated documentation with workaround.
  • The NetworkManager functions GetTransportIdFromClientId and GetClientIdFromTransportId will now return ulong.MaxValue when the clientId or transportId do not exist.
  • Changed minimum Unity version supported to 2022.3 LTS

Fixed

  • Multiple disconnect events from the same transport will no longer disconnect the host.
  • Exception when the network prefab list in the network manager has uninitialized elements.

Using this occasion we would like to encourage you to switch to NGOv2.X version (if itโ€™s possible in your specific case) since thatโ€™s where our main development focus is placed and where more features are available for you.

Happy Netcoding!

fathom monolith
#

๐ŸŽ‰ Netcode for Entities v1.11.0 ๐Ÿ“ฆ is now publicly available!

Added

  • New Prefab List menu item and playmode tools button to quickly list all ghost prefabs in your project or scene hierarchy.
  • Start changes to support GameObject ghosts. See Discussions post talking more about this work in progress.
  • [Potential Breaking Change] Moving server side's ghost spawn writes from BeginFrame ECB to new PresentationGroup ECB.
  • [Potential Breaking Change] GhostAuthoringComponent's content has been moved to a base class.
  • Netcode profiler received new tooltips and warning icons. These will show if compression efficiency is low or the snapshot size is approaching max message size.
  • Static ghosts now aggressively attempt to avoid looking up snapshot data (via SnapshotData.GetDataAtTick) inside the GhostUpdateSystem.UpdateJob, and the job itself early outs if there are no ghosts needing to restore, leading to a ~90% reduction in job timings. Profiler markers have also been added to this job, denoting which ghost types (and API calls) are taking the time.
  • Users can now migrate non ghost data using the IncludeInMigration component and the associated NonGhostMigrationComponents buffer.
  • Non-Ghost Components marked for migration on a Ghost Entity will now be automatically migrated to the correct Ghost.

Changed

  • Corrected ghost-types-templates docs regarding the packed vs unpacked format of bool, byte, sbyte, float, and double.
  • Improved the bool serialization template, improving packed and unpacked costs (~4 bits to 1 bit, and 32 bits to 8 bits, respectively).

Fixed

  • An issue with static optimized ghosts.
  • NetworkEndpoint serialization inside GhostField's, which were mistakenly using SerializeNetworkEndpointUnpacked in a packed case.
  • Missing average per entity column for per ghost type overhead sections in the profiler.

See full Changelog for more details.

austere stone
#

๐ŸŽ‰ Netcode for GameObjects v2.8.0 ๐Ÿ“ฆ is now publicly available!

NetworkAnimator has had several improvements that includes providing the ability to control which Animator parameters will be synchronized. This release also includes several optimizations to message serialization including optimizations to NetworkTransform state processing that should help reduce processing time for transform state updates. This release also includes an adjustment to the server-side client disconnect process that now assures any additional disconnect information, provided by the server-side, is sent prior to finalizing disconnecting the client.

See CHANGELOG for more details

gilded relic
#

๐ŸŽ‰ Netcode for Entities v1.12.0 ๐Ÿ“ฆ is now publicly available!

Added

  • Netcode profiler now supports tick-based navigation through a new title bar that has buttons to jump to the next or previous frame where a snapshot was sent or received. It also allows the selection of the corresponding tick on the client or server side.
  • Search fields for the ghost snapshot tree view and prediction error list view.
  • The Netcode Profiler now shows the values of the client prediction tick and the interpolation tick in the Prediction and Interpolation Tab.

Changed

  • The Netcode Profiler is now an officially supported feature. It is accessible via two new modules in the Unity Profiler for Unity 6.0 or newer. For further reading, refer to the documentation here.

Fixed

  • Behaviour Breaking Change: GhostAuthoringComponentBaker's TransformUsageFlags.Dynamic have been changed from TransformUsageFlags.None, as this package does not actually require them. If your ghost does need Transform components, specify that need via your own bakers.
  • Issue where the GhostDistancePartitionShared change filtering optimization added in 1.5.0 didn't apply correctly to the UpdateTileIndexJob, because the WithChangeFilter attribute only works for IJobEntitys, and thus silently failed on the IJobChunk.
  • Potential Breaking Change Fixed an issue where it's possible for a client with a different state serialization schema to connect to a server without triggering a hash check. This can happen if changing the order of ghost fields for example.
  • Newly spawned ghosts on the clients will now correctly apply snapshots when always hitting a full tick on the client.

Highlights only, see full Changelog for more details.

valid pewter
#

๐ŸŽ‰ Unity Transport Package (UTP) v2.7.0 ๐Ÿ“ฆ is now publicly available!

New Features

  • Added NetworkDriver.GetStatistics method to get statistics about the current session. These are network-level statistics that can be useful to assess information like bandwidth usage, packet size distribution, etc.
  • Added NetworkDriver.GetConnectionStatistics method to get statistics about a specific connection. These are mostly focused around latency ("ping") and other network quality information (packet loss, duplication, etc.).
  • NetworkEndpoint.Parse and NetworkEndpoint.TryParse now have variants taking FixedString128Bytes arguments instead of managed strings. Those can be used in Burst-compiled code.
  • It is now possible to send an arbitrary payload when accepting a connection, similar to how it is possible to send one when establishing a connection. The buffer provided to NetworkDriver.SetAcceptPayload will be made available to clients when they pop a Connect event. The buffer's content will be in the DataStreamReader returned alongside the event.

Changes

  • NetworkDriver.CheckHostnameLookupStatus has been marked as obsolete. It is an implementation detail that shouldn't be called directly by users. Instead, regular connection events (Connect/Disconnect) can be used to infer the status of the hostname lookup (there is a dedicated HostNotFound disconnect reason if a connection couldn't be established because of a hostname lookup failure).
  • All functionality of TransportFunctionPointer except constructing one from a Burst-compatible delegate is now deprecated. Mostly this is just cleaning up old unused APIs as using managed delegates in pipeline stages has not been possible for a very long time.

... (Continued in the next message for fixes)

#

Fixes

  • Addressed an issue where transient socket errors would be considered as a socket failure on UDP, leading to a useless re-creation of the socket. This would generally manifest as an error about receive requests being marked as failed.
  • Prevented a situation where a write could occur on a closed TCP socket, potentially resulting in a crash on Linux.
  • Fixed a bug when using Relay and DTLS where a disconnection would fail to be reported if the application stopped updating for a while (e.g. was put in the background on mobile) and then started updating again after the Relay allocation had timed out.
  • Fixed a bug when using Relay and DTLS where the driver would fail to reconnect to the server after re-homing (i.e. after the local IP address changes, which can happen when roaming on mobile).
  • Fixed runtime errors on multithreaded WebAssembly builds.
  • Fixed a packet corruption bug in ReliableSequencedPipelineStage that would occur if window size was larger than 64 and a packet had to be resent multiple times.
valid pewter
#

๐ŸŽ‰ Unity Transport Package (UTP) v2.7.1 ๐Ÿ“ฆ is now publicly available!

Fixes

  • Avoid throwing a NullReferenceException when passing null to NetworkEndpoint.Parse and NetworkEndpoint.TryParse. Instead, a default-valued NetworkEndpoint is returned. This is in line with the behavior of these methods before version 2.7.0.
unkempt crown
#

๐ŸŽ‰ Netcode for Entities v1.13.0 ๐Ÿ“ฆ is now publicly available! ๐Ÿ‘‰ (CHANGELOG)

This release focuses on critical bug fixes for prediction and interpolation, alongside continued integration of experimental GameObject-side functionality.

Added

  • Internal changes required for a GhostField type usable in monobehaviour to access replicated state.
  • Internal changes required for GameObject side prediction update.
  • Internal changes required for GameObject side input management for prediction.

Changed

  • [Potential Breaking Change] NetcodeProtocolVersion.k_NetCodeVersion is now private, use NetcodeProtocolVersion.DefaultNetCodeVersion instead to get the builtin netcode version.
  • Behaviour-Breaking Change: The GhostUpdateSystemโ€™s predicted ghost history backup lookup failure case now only attempts to rollback to the snapshot if said rollback isnโ€™t too severe. This change marginally worsens correctness in exceptional cases, but prevents egregiously large rollbacks.
#

Fixed

  • Extraordinarily rare correctness bug introduced with the static ghost early-out optimisation, where the early-out would be applied even when new snapshot data arrived, but only if said snapshot arrived so late that it was older than the lastInterpolationTick.
  • Issue where prediction switching a static, unchanging ghost (to predicted) would cause massive 64-tick rollbacks.
  • Issue where the GhostUpdateSystemโ€™s predicted ghost history backup lookups were failing whenever other entities within the chunk were deleted (which caused the cached entityIndexInChunk to be incorrect).
  • The GhostUpdateSystemโ€™s snapshot rollback is now constrained below 64 ticks typically, massively reducing the severity of rollbacks in some esoteric cases, at the cost of minor misprediction issues (which will get resolved by eventual consistency).
  • Interpolated static ghosts will now wait until the interpolation timeline reaches new snapshot data before applying any new snapshot. This fixes jittery movement on static interpolated ghosts when new snapshots arrive after a static ghost had stopped moving for a few frames.

Let us know if you have any questions or feedback!
Happy Netcoding!

valid pewter
#

๐ŸŽ‰ Unity Transport Package (UTP) v2.7.2 ๐Ÿ“ฆ is now publicly available!

Fixes

  • Make sure SecureNetworkProtocolParameter can be serialized properly by making FixedPEMString serializable.
  • Ignore SIGPIPE on Linux IL2CPP server builds. This could result in a crash when using WebSockets and a client would unexpectedly close its connection. Note that the signal is ignored for the whole process group. This shouldn't cause any issues (Mono ignores the signal by default for instance) but if your application somehow needs to be able to handle SIGPIPE, you can set the UNITY_TRANSPORT_DONT_IGNORE_SIGPIPE define for your project to prevent the transport package from ignoring it.
cobalt roost
#

๐ŸŽ‰ Netcode for Gameobjects v2.11.0 ๐Ÿ“ฆ is now publicly available! ๐Ÿ‘‰ (CHANGELOG)

Weโ€™ve just released version 2.11.0, which includes few bug fixes, cleanups and improvements to Transport layer so you can easier control the connection flow (see Added section of the Changelog)

As usual we hope those updates will improve your NGO experience and feel free to comment/create new post if you have any questions or feedback (feel free to comment directly in our discussions post)

Happy Netcoding!

austere stone
#

๐ŸŽ‰ Netcode for Gameobjects v2.11.1 ๐Ÿ“ฆ is now publicly available!

NGO v2.11.1 comes with performance, stability, and bug fixes.ย  NetworkObject child NetworkBehaviours are now more tolerant to adjustments in non-netcode related components (adding or removing). Improved error handling and recovery during the spawn process. Several optimizations within NetworkBehaviour, NetworkTransform, NetworkRigidbodyBase, and NetworkAnimator. It also comes with a handful of fixes! Read Changelog Here)