|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## [1.0.0-pre.47] - 2023-02-28 |
| 3 | +## [1.0.0-pre.65] - 2023-03-21 |
| 4 | + |
| 5 | +### Added |
| 6 | + |
| 7 | +* validate and sanitise connect and listen addresses when using IPCNetworkInterface. That was causing some nasty crash in the Transport without users understanding the actual problem. |
| 8 | + |
| 9 | +### Changed |
| 10 | + |
| 11 | +* the following components has been renamed: | Original Name | New Name | | ---------------| ---------------| |NetworkSnapshotAckComponent| NetworkSnapshotAck | |IncomingSnapshotDataStreamBufferComponent| IncomingSnapshotDataStreamBuffer | |IncomingRpcDataStreamBufferComponent| IncomingRpcDataStreamBuffer | |OutgoingRpcDataStreamBufferComponent| OutgoingRpcDataStreamBuffer | |IncomingCommandDataStreamBufferComponent| IncomingCommandDataStreamBuffer | |OutgoingCommandDataStreamBufferComponent|OutgoingCommandDataStreamBuffer| |NetworkIdComponent|NetworkId| |CommandTargetComponent|CommandTarget| |GhostComponent|GhostInstance| |GhostChildEntityComponent|GhostChildEntity| |GhostOwnerComponent|GhostOwner| |PredictedGhostComponent|PredictedGhost| |GhostTypeComponent|GhostType| |SharedGhostTypeComponent|GhostTypePartition| |GhostCleanupComponent|GhostCleanup| |GhostPrefabMetaDataComponent|GhostPrefabMetaData| |PredictedGhostSpawnRequestComponent|PredictedGhostSpawnRequest| |PendingSpawnPlaceholderComponent|PendingSpawnPlaceholder| |ReceiveRpcCommandRequestComponent|ReceiveRpcCommandRequest| |SendRpcCommandRequestComponent|SendRpcCommandRequest| |MetricsMonitorComponent|MetricsMonitor| |
| 12 | + |
| 13 | +### Removed |
| 14 | + |
| 15 | +* internal ListenAsync/ConnectAsync methods (no visible API changes for the users) |
4 | 16 |
|
5 | 17 | ### Fixed |
6 | 18 |
|
| 19 | +* a very unfrequent exception thrown in presence of a ghost with a replicated component that does not present any prediction errors names (i.e an Entity reference). |
| 20 | +* source generator crash when logging missing assembly dependency. |
| 21 | +* source generator requiring Unity.Transport package dependency for generating serialization code. |
7 | 22 | * Snapshot history buffer not restore correctly, causing entities component to be stomped with random data. |
| 23 | +* Fixed an issue when ClientServerBootstrap.AutoConnectPort is 0 indicating autoconnecting should be disabled and you will connect manually via the driver connect API, but the playmode tools ip/port fields would still triggering (so you get two connections set up and errors). We also now prevent attempts to make a connection while one is already established. |
| 24 | +* an issue with source generator, validating incorrectly custom templates that uses overrides. |
| 25 | +* removed warning for old temp allocation when converting sub-scene with pre-spawned ghosts. |
| 26 | +* Forced all `ICommandData`'s `InternalBufferCapacity` to be zero, because we were constantly wasting hundreds of bytes per entity to store data that we know for certain will not fit into the internal capacity (as the dynamic buffer required length is hardcoded to 64, for netcode input buffers). |
| 27 | +* Fixed potential crash in players when send queue is full |
| 28 | +* Fixed exceptions when trying to use invalid interpolation ticks (could happen during snapshot updates or in predicted spawning system on disconnection) |
8 | 29 |
|
9 | 30 |
|
10 | 31 | ## [1.0.0-pre.44] - 2023-02-13 |
|
34 | 55 | * Fixed serialization of components on child entities in the case where `SentForChildEntities = true`. This fix may introduce a small performance regression in baking and netcode world initialization. Contact us with all performance related issues. |
35 | 56 | * `GhostUpdateSystem` now supports Change Filtering, so components on the client will now only be marked as changed _when they actually are changed_. We strongly recommend implementing change filtering when reading components containing `[GhostField]`s and `[GhostEnabledBit]`s on the client. |
36 | 57 | * Fixed input component codegen issue when the type is nested in a parent class |
37 | | -* Exposed NetworkTick value to Entity Inspector |
38 | | - |
39 | | - |
40 | | -## [1.0.0-pre.15] - 2022-11-16 |
41 | | - |
42 | | -### Added |
43 | | - |
44 | | -* A "Client & Server Bounding Boxes" debug drawer has been added to the package (at `Packages\com.unity.netcode\Editor\Drawers\BoundingBoxDebugGhostDrawerSystem.cs`), allowing you to view the absolute positions of where the client _thinks_ a Ghost is, vs where it _actually_ is on the server. This drawer can also be used to visualize relevancy logic (as you can see widgets for server ghosts that are "not relevant" for your client). Enable & disable it via the `Multiplayer PlayMode Tools Window`. |
45 | | -* FRONTEND_PLAYER_BUILD scripting define added to the NetCodeClientSetting project setting. |
46 | | -* New `GhostSpawnBufferInspectorHelper` and `GhostSpawnBufferComponentInspector` structs, that permit to read from the ghost spawn buffer any type of component. They can be used in spawn classification systems to help resolving predicted spawning requests. |
47 | | -* `GhostTypeComponent` explicit conversion to Hash128. |
48 | | -* Templates for serialising `double` type. |
49 | | -* A `TransformDefaultVariantSystem` that optionally setup the default variant to use for `LocalTransform`, (`Rotation`, `Position` for V1) if a user defined default is not provided. |
50 | | -* A `PhysicsDefaultVariantSystem` that optionally setup the default variant to use for `PhysicVelocity` if a user defined default is not provided. |
51 | | -* New GetLocalEndPoint API to NetworkStreamDriver. |
52 | | -* `GhostAuthoringInspectionComponent` now provides more information about default variant selection. |
53 | | - |
54 | | -### Changed |
55 | | - |
56 | | -* Updated com.unity.transport dependency to 2.0.0-exp.4 |
57 | | -* `SharedGhostTypeComponent` is also added to the client ghost prefab to split ghosts in different chunks. |
58 | | -* `GhostTypeComponent` equals/matches the prefab guid. |
59 | | -* Removed `CodeGenTypeMetaData`, and made internal changes to how `VariantType` structs are generated. We also renamed `VariantType` to `ComponentTypeSerializationStrategies` to better reflect their purpose, and to better distinguish them from the concept of "Variants". |
60 | | -* Support for replicating "enable bits" on `IEnableableComponent`s (i.e. "enableable components") via new attribute `GhostEnabledBitAttribute` (`[GhostEnabledBit]`), which can be added to the component struct. Note: If this attribute is **not** added, your enabled bits will not replicate (even on components marked with `[GhostField]`s). _This is a breaking change. Ensure all your "enableable components" with "ghost fields" on them now also have `[GhostEnabledBit]` on the struct declaration._ |
61 | | -* All `DefaultVariantSystemBase` are all grouped into the `DefaultVariantSystemGroup`. |
62 | | -* It is not necessary anymore to define a custom `DefaultGhostVariant` system if a `LocalTransform` (`Rotation` or `Position` for V1) or `PhysicsVelocity` variants are added to project (since a `default` selection is already provided by the package). |
63 | | -* Updated `com.unity.transport` dependency to 2.0.0-pre.2 |
64 | | - |
65 | | - |
66 | | -### Deprecated |
67 | | - |
68 | | -* `ProjectSettings / NetCodeClientTarget` was not actually saved to the ProjectSettings. Instead, it was saved to `EditorPrefs`, breaking build determinism across machines. Now that this has been fixed, your EditorPref has been clobbered, and `ClientSettings.NetCodeClientTarget` has been deprecated (in favour of `NetCodeClientSettings.instance.ClientTarget`). |
69 | | - |
70 | | -### Removed |
71 | | - |
72 | | -* Removing dependencies on `com.unity.jobs` package. |
73 | | - |
74 | | -### Fixed |
75 | | - |
76 | | -* Error in source generator when input buffer type was in default namespace. |
77 | | -* Always pass `SystemState` by `ref` to avoid `UnsafeList`s being reallocated in a copy, but not in the original. |
78 | | -* Use correct datatype for prespawned count in analytics. |
79 | | -* Use `EditorAnalytics` to verify whether it is enabled. |
80 | | -* Exception thrown by the hierarchy window if a scene entity does not have a SubScene component. |
81 | | -* Issue with the `GhostComponentSerializerRegistrationSystem` and the ghost metadata registration system trying accessing the `GhostComponentSerializerCollectionData` before it is created. |
82 | | -* A crash in the `GhostUpdateSystem`, `GhostPredictionHistorySystem` and others, when different ghost types (prefab) share/have the same archetype. |
83 | | -* A NetCodeSample project issue that was causing screen flickering and entities rendered multiple times when demos were launched from the Frontend scene. |
84 | | -* An issue in the `GhostSendSystem` that prevent the DataStream to be aborted when an exception is throw while serialising the entities. |
85 | | -* InvalidOperationException in the `GhostAuthoringInspectionComponent` when reverting a Variant back to the default. |
86 | | -* UI layout issues with the `GhostAuthoringInspectionComponent`. |
87 | | -* Hashing issue with `GhostAuthoringInspectionComponent.ComponentOverrides` during baking, where out-of-date hashes would still be baked into the `BlobAsset`. You now get an error, pointing you to the offending (i.e. out-of-date) Ghost prefab. |
88 | | -* `quaternion`s cannot be added as fields in `ICommandData` and/or `IInputComponentData`. A new region has been added to the code-generation templates for handling other, similar cases. |
89 | | -* Fixed hash generation when using `DontSerializeVariant` (or `ClientOnlyVariant`) on `DefaultVariantSystemBase.Rule`. They now use the constant hashes (`DontSerializeHash` and `ClientOnlyHash`). |
90 | | -* `NetDbg` will now correctly show long namespaces in the "Prediction Errors" section (also: improved readability). |
91 | | -* Removed CSS warning in package. |
92 | | -* A problem with baking and additional ghost entities that was removing `LocalTransform`, `WorldTransform` and `LocalToWorld` matrix. |
93 | | -* Mismatched ClientServerTickRate.SimulationTickRate and PredictedFixedStepSimulationSystemGroup.RateManager.Timestep will throw an error and will set the values to match each other. |
94 | | -* An issue with pre-spawned ghost baking when the baked entity has not LocalTransform (position/rotation for transform v1) component. |
95 | | -* "Ghost Distance Importance Scaling" is now working again. Ensure you read the updated documentation. |
96 | | -* Missing field write in `NetworkStreamListenSystem.OnCreate`, fixing Relay servers. |
97 | | -* Code-Generated Burst-compiled Serializer methods will now only compile inside worlds with `WorldFlag.GameClient` and `WorldFlag.GameServer` WorldFlags. This improves exit play-mode speeds (when Domain Reload is enabled), baking (in all cases), and recompilation speeds. |
98 | | -* Fixed an issue where multiple ghost types with the same archetype but difference data could sometime trigger errors about ghosts changing type. |
99 | | -* Improvements to the `GhostAuthoringInspectionComponent`, including removing the freeze when a baker creates lots of "Additional" entities, better display of Inputs, and fixed bug where the EntityGuid was not being saved (so modifying additional Entities is now supported). We now also detect (but don't destroy) broken ComponentOverrides, making it easier to switch from TRANSFORMS_V1 (for example). |
100 | | -* Fix a mistake where the relay sample will create a client driver rather than a server driver |
101 | | -* Fix logic for relay set up on the client. Making sure when calling DefaultDriverConstructor.RegisterClientDriver with relay settings that we skip this unless, requested playtype is client or clientandserver (if no server is found), the simulator is enabled, or on a client only build. |
102 | | -* Fixed `ArgumentException: ArchetypeChunk.GetDynamicComponentDataArrayReinterpret<System.Byte> cannot be called on zero-sized IComponentData` in `GhostPredictionHistorySystem.PredictionBackupJob`. Added comprehensive test coverage for the `GhostPredictionHistorySystem` (via adding a predicted ghost version of the `GhostSerializationTestsForEnableableBits` tests). |
103 | | -* Fixed serialization of components on child entities in the case where `SentForChildEntities = true`. This fix may introduce a small performance regression in baking and netcode world initialization. |
104 | | -* `GhostUpdateSystem` now supports Change Filtering, so components on the client will now only be marked as changed _when they actually are changed_. We strongly recommend implementing change filtering when reading components containing `[GhostField]`s and `[GhostEnabledBit]`s on the client. |
105 | | -* Fixed input component codegen issue when the type is nested in a parent class |
106 | | -* Exposed NetworkTick value to Entity Inspector. |
107 | | -* Fixed code-gen error where `ICommandData.Tick` was not being replicated. |
108 | | -* Fixed code-gen GhostField error handling when dealing with properties on Buffers, Commands, and Components. |
109 | | -* Fixed code-gen exceptions for `Entity`s, `float`s, `double`s, `quaternions` and `ulong`s in specific conditions (unquantized, or in commands). Also improved exception reporting when trying to set an invalid `SmoothingAction` on `ICommandData`s. |
110 | | -* Code-gen now will not explode if you have very long field names (support upto 509 characters, from 61), and will not throw truncation errors if you have too many fields. |
111 | | -* Added error log reporting for ICommandDatas: |
112 | | - * If you attempt to serialize more than 1024 bytes for an individual ICommandData. |
113 | | - * If there are failed writes in the ICommandData batched send. |
114 | | -* ICommandData batches now support fragmentation, which means writing multiple ICommandData's will no longer silently fail to send. |
115 | | -* ICommandData now properly supports `floats`, `doubles`, `ulong`, and `Entity` types. |
116 | | -* Fixed various Variant selection issues. In particular, `PrefabType` rules defined in `GhostComponentAttribute` of the "Default Serializer" will now be propagated to all of its `DontSerializeVariant`s. |
117 | | -* Optimized string locale. |
118 | | -* Netcode settings assets could be modified and saved when asset modification was not allowed. |
119 | | - |
120 | | -### Security |
121 | | - |
122 | | - |
123 | 58 |
|
124 | 59 |
|
125 | 60 | ## [1.0.0-exp.8] - 2022-09-21 |
|
210 | 145 | * DefaultUserParams has been renamed to DefaultSmoothingActionUserParams. |
211 | 146 | * DefaultTranslateSmoothingAction has been renamed to DefaultTranslationSmoothingAction. |
212 | 147 |
|
213 | | -### Deprecated |
214 | | - |
215 | 148 |
|
216 | 149 | ### Removed |
217 | 150 |
|
|
236 | 169 | * Ensure that we do not count zero update length in analytic results. Fix assertion error when entering and exiting playmode |
237 | 170 | * Compilation errors when the DedicatedServer platform is selected. NOTE: this does not imply the dedicated server platform is supported by the NetCode package or any other packages dependencies. |
238 | 171 |
|
239 | | -### Security |
240 | | - |
241 | | - |
242 | 172 | ### Upgrade guide |
243 | 173 |
|
244 | 174 | * Prefer using the new unified `NetCodePhysicsConfig` authoring component instead of using the `LagCompensationConfig` authoring component to enable lag compensation. |
|
0 commit comments