Skip to content

Commit 0265c27

Browse files
committed
Add release notes to changelog
1 parent 44cfa29 commit 0265c27

1 file changed

Lines changed: 81 additions & 9 deletions

File tree

com.unity.multiplayer.mlapi/CHANGELOG.md

Lines changed: 81 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,85 @@
11
# Changelog
2-
All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
3-
4-
## [0.1.0] - 2020-03-02
5-
This is the initial experimental Unity MLAPI Package.
6-
### Changed
7-
- Rather than performance / convenience RPCs, we now have one performant 'Standard' RPC type
8-
- RPCs are now deferred and queued to support upcoming features and improve bandwidth usage
9-
- A preliminary tick system has been added
10-
- Network variables are tick-based
2+
This file documents all notable changes to this package. Additional documentation and release notes are available at [Multiplayer Documentation](https://docs-multiplayer.unity3d.com).
3+
4+
## [0.1.0] - 2021-03-23
5+
6+
This is the initial experimental Unity MLAPI Package, v0.1.0.
7+
8+
### New Features
9+
10+
- Refactored a new standard for Remote Procedure Call (RPC) in MLAPI which provides increased performance, significantly reduced boilerplate code, and extensibility for future-proofed code. MLAPI RPC includes `ServerRpc` and `ClientRpc` to execute logic on the server and client-side.
11+
- Added standarized serialization types, including built-in and custom serialization flows. See [RFC #2](https://github.com/Unity-Technologies/com.unity.multiplayer.rfcs/blob/master/text/0002-serializable-types.md) for details.
12+
- `INetworkSerializable` interface replaces `IBitWritable`.
13+
- Added a Network Update Loop infrastructure that aids Netcode systems to update (such as RPC queue and transport) outside of the standard `MonoBehaviour` event cycle. See [RFC #8](https://github.com/Unity-Technologies/com.unity.multiplayer.rfcs/blob/master/text/0008-network-update-loop.md) and the following details:
14+
15+
- It uses Unity's [low-level Player Loop API](https://docs.unity3d.com/ScriptReference/LowLevel.PlayerLoop.html) and allows for registering `INetworkUpdateSystem`s with `NetworkUpdate` methods to be executed at specific `NetworkUpdateStage`s, which may also be before or after `MonoBehaviour`-driven game logic execution.
16+
- You will typically interact with `NetworkUpdateLoop` for registration and `INetworkUpdateSystem` for implementation.
17+
- `NetworkVariable`s are now tick-based using the `NetworkTickSystem`, tracking time through network interactions and syncs.
18+
19+
- Added message batching to handle consecutive RPC requests sent to the same client. `MessageBatcher` sends batches based on requests from the `RpcQueueProcessing`, by batch size threshold or immediately.
20+
- [GitHub 494](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/494): Added a constraint to allow one `NetworkObject` per `GameObject`, set through the `DisallowMultipleComponent` attribute.
21+
- Integrated MLAPI with the Unity Profiler for versions 2020.2 and later.
22+
- A test project is available for building and experimenting with MLAPI features. This project is located in the package `testproject` folder ([GitHub folder](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/tree/release/0.1.0/testproject)).
23+
- Added a [MLAPI Community Contributions](https://github.com/Unity-Technologies/mlapi-community-contributions/tree/master/com.mlapi.contrib.extensions) new GitHub repository to accept extensions from the MLAPI community. Current extensions include moved MLAPI features for lag compensation (useful for Server Authoritative actions) and `TrackedObject`.
24+
25+
### Changes
26+
27+
- [GitHub 520](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/520): MLAPI now uses the Unity Package Manager for installation management.
28+
- Added functionality and usability to `NetworkVariable`, previously called `NetworkVar`. Updates enhance options and fully replace the need for `SyncedVar`s.
29+
- [GitHub 507](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/507): Reimplemented `NetworkAnimator`, which synchronizes animation states for networked objects.
30+
- GitHub [444](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/444) and [455](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/455): Channels are now represented as bytes instead of strings.
31+
32+
For users of previous versions of MLAPI, this release renames APIs due to refactoring. All obsolete marked APIs have been removed as per [GitHub 513](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/513) and [GitHub 514](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/514).
33+
34+
| Previous MLAPI Versions | V 0.1.0 Name |
35+
| -- | -- |
36+
| `NetworkingManager` | `NetworkManager` |
37+
| `NetworkedObject` | `NetworkObject` |
38+
| `NetworkedBehaviour` | `NetworkBehaviour` |
39+
| `NetworkedClient` | `NetworkClient` |
40+
| `NetworkedPrefab` | `NetworkPrefab` |
41+
| `NetworkedVar` | `NetworkVariable` |
42+
| `NetworkedTransform` | `NetworkTransform` |
43+
| `NetworkedAnimator` | `NetworkAnimator` |
44+
| `NetworkedAnimatorEditor` | `NetworkAnimatorEditor` |
45+
| `NetworkedNavMeshAgent` | `NetworkNavMeshAgent` |
46+
| `SpawnManager` | `NetworkSpawnManager` |
47+
| `BitStream/BitSerializer`... | `NetworkBuffer/NetworkSerializer`... |
48+
| `NetEventType` | `NetworkEventType` |
49+
| `ChannelType` | `NetworkDelivery` |
50+
| `Channel` | `NetworkChannel` |
51+
| `Transport` | `NetworkTransport` |
52+
| `NetworkedDictionary` | `NetworkDictionary` |
53+
| `NetworkedList` | `NetworkList` |
54+
| `NetworkedSet` | `NetworkSet` |
55+
| `MLAPIConstants` | `NetworkConstants` |
56+
57+
### Fixes
58+
59+
- [GitHub 460](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/460): Fixed an issue for RPC where the host-server was not receiving RPCs from the host-client and vice versa without the loopback flag set in `NetworkingManager`.
60+
- Fixed an issue where data in the Profiler was incorrectly aggregated and drawn, which caused the profiler data to increment indefinitely instead of resetting each frame.
61+
- Fixed an issue the client soft-synced causing PlayMode client-only scene transition issues, caused when running the client in the editor and the host as a release build. Users may have encountered a soft sync of `NetworkedInstanceId` issues in the `SpawnManager.ClientCollectSoftSyncSceneObjectSweep` method.
62+
- [GitHub 458](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/458): Fixed serialization issues in `NetworkList` and `NetworkDictionary` when running in Server mode.
63+
- [GitHub 498](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/498): Fixed numerical precision issues to prevent not a number (NaN) quaternions.
64+
- [GitHub 438](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/438): Fixed booleans by reaching or writing bytes instead of bits.
65+
- [GitHub 519](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/519): Fixed an issue where calling `Shutdown()` before making `NetworkManager.Singleton = null` is null on `NetworkManager.OnDestroy()`.
66+
67+
### Removed features
68+
69+
With a new release of MLAPI in Unity, some features have been removed:
70+
71+
* SyncVars have been removed from MLAPI. Use `NetworkVariable`s in place of this functionality. <!-- MTT54 -->
72+
* [GitHub 527](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/527): Lag compensation systems and `TrackedObject` have moved to the new [MLAPI Community Contributions](https://github.com/Unity-Technologies/mlapi-community-contributions/tree/master/com.mlapi.contrib.extensions) repo.
73+
* [GitHub 509](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/509): Encryption has been removed from MLAPI. The `Encryption` option in `NetworkConfig` on the `NetworkingManager` is not available in this release. This change will not block game creation or running. A current replacement for this functionality is not available, and may be developed in future releases. See the following changes:
74+
75+
* Removed `SecuritySendFlags` from all APIs.
76+
* Revmoed encryption, cryptography, and certificate configurationss from APIs including `NetworkManager` and `NetworkConfig`.
77+
* Removed "hail handshake", including `NetworkManager` implementation and `MLAPIConstants` entries.
78+
* Modified `RpcQueue` and `RpcBatcher` internals to remove encryption and authentication from reading and writing.
79+
80+
* Removed the previous MLAPI Profiler editor window from Unity versions 2020.2 and later.
81+
* Removed previous MLAPI Convenience and Performance RPC APIs with the new standard RPC API. See [RFC #1](https://github.com/Unity-Technologies/com.unity.multiplayer.rfcs/blob/master/text/0001-std-rpc-api.md) for details.
82+
* [GitHub 520](https://github.com/Unity-Technologies/com.unity.multiplayer.mlapi/pull/520): Removed the MLAPI Installer.
1183

1284
## [0.0.1-preview.1] - 2020-12-20
1385
This was an internally-only-used version of the Unity MLAPI Package

0 commit comments

Comments
 (0)