Skip to content

Releases: Unity-Technologies/com.unity.netcode.gameobjects

Performance RPC Method Invoke Fix

09 Mar 00:06
ee604d6
Compare
Choose a tag to compare

This version adds new performance invokes. All performance RPC invokes now have the "Performance" suffix.

Example:
Old: InvokeClientRpcOnClient(method, stream);
New: InvokeClientRpcOnClientPerformance(method, stream);

The old performance invokes have been made obsolete.

Spawn & Scene Rewrite!

08 Mar 23:30
3634886
Compare
Choose a tag to compare

This is a big release! The spawn system has been rewritten to support "SoftSynced" objects. The scene system was also rewritten to fix previous issues.

This version:

  • Includes a visibility system once again!
  • Removes IntX dependency
  • Supports SoftSynced scene objects
  • Adds custom spawn and destroy handlers for custom object pooling
  • Adds RPC return values
  • Minor cryptography fixes to make the handshake more resistant against time channel attacks
  • Adds an example project
  • Adds missing 0 parameter RPC overload

And more!

Hope you guys enjoy this one. You can as always report bugs with the issue tracker and get help on our discord server!

Doc Improvements & RPC Overloads!

10 Dec 21:25
2d5ed8c
Compare
Choose a tag to compare

This release is fairly backwards compatbile but includes breaking changes. It adds much better XML documentation and fixes many issues with the built in networked var collections.

Note that this release breaks some custom INetworkedVar implementations.

It also adds missing RPC overloads.

Writer Hotfix

23 Oct 22:00
f7e13e2
Compare
Choose a tag to compare

Minor hotfix that fixes an issue when writing sbyte datatype.

Bugfixes and Prefab Improvements

23 Oct 17:42
393429a
Compare
Choose a tag to compare

This release includes mostly bugfixes:

  • It fixes an issue where prefab position was not respected.
  • It adds Serializable versions of the NetworkedVar class.
  • It fixes the DISABLE_CRYPTOGRAPHY conditional, you can now once again compile the MLAPI without any cryptography.
  • It fixes issues where NetworkedVars was not being synced if they were in the baseclass.
  • Improves logging when a client writes to a NetworkedVar it doesn't have permission to write in.
  • Adds better error logging when using .NET 2.0 subset (Note that subset is not officially supported, but it will now work without encryption features)

It also improved moddability and DLC support by allowing dynamic networked prefabs to be added at runtime. Prefabs are now based on a hash of the PrefabName instead of the index in the NetworkingManager.

Installer Compatibility

16 Oct 11:15
658f496
Compare
Choose a tag to compare

Removed C# >4 features from the installer.

BitStream Bugfix & Safety

16 Oct 11:05
0ec1bfc
Compare
Choose a tag to compare

This is a minor release fixing a bug in the BitStream causing garbage bits to be sent as messages if the message stream was not byte aligned. It also adds a call to resolve this: BitStream.ZeroLastByteGarbageBits();

Send Overloads!

15 Oct 23:00
d4871e7
Compare
Choose a tag to compare

Options are great!

This update adds channel name and security options in all the send overloads. Security Options can be set to None and channel can be set empty or null. Both options are optional and default to None & Default Message Channel.

This means you can now once again select the channel (Yes, it was missing from the lib. for a version or two.. or three 😒), but you can now also authenticate and encrypt messages! Adding even more security to the library.

KeyExchange-Key API

15 Oct 19:38
5db7eb7
Compare
Choose a tag to compare

This version adds a public Key API. From the CryptographyHelper, you can grab the server's shared key (as client) or a client's shared key (as server). This key is safe to be used for cryptographic purposes.

However! It is recommended to do your own key derrivation from this key to your own key to ensure cryptographic vulnerabilities won't affect the MLAPI protocol encryption and authentication.

It also fixes a bug where garbage bits from the pooled stream would be used to calculate the NetworkConfig hash making it turn out different.

Cryptography Update!

15 Oct 00:15
2927f05
Compare
Choose a tag to compare

This version fixes many bugs, it also adds protocol level encryption and authentication.

Authentication will happen on the whole message buffer (even MLAPI headers), and the encryption will happen on everything except the first byte (which is just a flag containing wheter the message is encrypted and/or authenticated). Thus, everything, including header bytes like the messagetype is encrypted. This moves the security of the MLAPI to a new level. It now also supports PFX certificate. They are only required to be set by the server. Essentially what we have is a custom TLS implementation.

Happy networking!