Skip to content

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

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!

Installer Hotfix

07 Aug 21:44
05cf6bd
Compare
Choose a tag to compare

This is a minor bugfix release. It fixes some issues with UnityAsset importing in the installer.

Fixes & Improvements

07 Aug 19:53
4579af3
Compare
Choose a tag to compare

This release adds new functionality to NetworkedVars. Negative Tickrates will not cause NetworkedVars to only sync on spawn. It also fixes a bug that caused the tickrate to previously be ignored.

It also fixes a bug causing scene switching to not function properly.

Custom types can now be sent in the conventional methods of RPC's by making the type implement the IBitWritable interface.

NetworkedVar.OnValueChanged is now invoked on the sender as well.

It also fixes a bug with the NetworkedTransform when extrapolation was in use, causing it to infinitely extrapolate if the object was not in motion.

It also adds zero argument overloads to certain convenience RPC methods that were previously missing.

Overall, this is a stability release and should not break any current code.

v2.0 Major Update

26 Jul 16:12
f140dfa
Compare
Choose a tag to compare

Version 2.0.0 is the biggest update yet! The release is 326 commits ahead of the previous version. v1.3.3. Here are some the changes:

  • Replaced internal byte handling with Streams
  • New Messaging System (See Wiki)
  • Starting with Version 2.0.0. Releases will be using Semantic Versioning
  • Removed SyncedVar
  • Removed HLAPI Command, ClientRpc and TargetRPC (Replaced by the new Messaging System)
  • Reduced MLAPI generic header size to 1 byte
  • New BitStream
  • New BitWriter & BitReader
  • New NetworkedVar
  • NetworkedDictionary
  • NetworkedList
  • Custom Networked Structure support with custom delta encoding
  • Removed Message Names
  • Updated Installer to use Coroutines
  • Changed isOwner behaviour (Now does what it's called. Returns if we own the object)
  • Clarified Ownership states (Objects can now be owned by the server / host or a client, nothing in between)
  • Optimized & Reworked Encryption
  • Removed Observer System
  • Adds Custom Message Support
  • Improved NetworkingManager Inspector UI
  • Improved the Namespaces of classes
  • Added more helper methods and properties to make the MLAPI easier to use in game code. Ex:
SpawnManager.SpawnedObjects
SpawnManager.SpawnedObjectsList
SpawnManager.GetLocalPlayerObject()
SpawnManager.GetPlayerObject(uint clientId)

NetworkingManager.singleton.ConnectedClients
NetworkingManager.singleton.ConnectedClientsList
NetworkingManager.singleton.ServerClientId
NetworkingManager.singleton.LocalClientId

NetworkedBehaviour.GetBehaviour(ushort id)
NetworkedBehaviour.GetBehaviourId()
NetworkedBehaviour.isRunning

And many more.

As always, if you have any questions or encounter any bugs. Feel free to open an issue on GitHub or join our Discord Server. Contributors are always welcome.

Installer Upgrade

02 Jun 13:53
Compare
Choose a tag to compare

This release includes minor fixes but updates the installer to add more features and make it generally more stable.

Relay Support

30 May 18:47
7d07a63
Compare
Choose a tag to compare

This version adds support for the MLAPI.Relay and fixes a minor bug where ownerId would be assigned after the NetworkStart method is invoked.

Fixes & Spawn Changes

29 May 13:05
Compare
Choose a tag to compare

This release includes many fixes.
It fixes issues regarding the spawn system, BitWriter, BitReader and reworks the NetworkedProximity. It also changes behavior on SyncedVarHook's. They are now invoked on Server instances.