Skip to content

1.0.8

Compare
Choose a tag to compare
@Needle-Mirror-Bot Needle-Mirror-Bot released this 11 May 17:11

[1.0.8] - 2023-04-17

Changed

  • Reduced the amount of memory allocated by allocating based on the maximum number of worker threads the running platform requires rather than defaulting to using a theoretical upper-bound of 128 worker threads.
  • Removed the additional entity created for each predicted ghost prefab, that was necessary to support predicted spawning. This has the addition benefit to cut almost in half (in case all ghost prefabs support all modes) the number of required archetypes.

Fixed

  • An issue with pre-spawned ghost not working correctly because sub-scene hash is calculated differently for client and server
  • an issue when sub-scene are opened for live-conversion and baking, causing spawned ghosts to contains invalid blob asset references (i.e colliders), introducing potential crashes and other problems (i.e missing collision and mis-prediction)
  • An issue with baking, not using the correct NetCodeClientTarget (either client or client/server) when baking a sub-scene for a client standalone build.
  • An issue with the Entities/Build project settings UI that was not updating the ClientTarget to use is the ProjectSettings window was not closed, or another settings "tab" was selected.
  • An issue with HasServerWorld reporting the presence of a server world even though no server was created.if it's not needed.
  • A sporadic InvalidOperationException: GetSingleton<Unity.NetCode.LowLevel.SnapshotDataLookupCache>() thrown when retrieving the Unity.NetCode.LowLevel.SnapshotDataLookupCache.
  • GhostCollectionSystem InvalidOperationException thrown when Ghost prefab validation fails, trying accessing invalidated DynamicBuffer.
  • An issue in the GhostChunkSerializer, that was overwriting the snapshot data with some enable bits masks.
  • An issue in the GhostUpdateSystem, that was reading and applying the wrong enable bits.
  • An issue when restoring enable bits state from the predicted ghost history buffer.
  • Fixed a "System Creation Order" bug causing components with [GhostField] fields (or the [GhostEnableBit] attribute) to silently default to the DontSerializeVariant, especially in cases where Ghost Prefabs are created at runtime (via GhostPrefabCreation.ConvertToGhostPrefab).
    • "Ghost Registration" and "Default Variant Registration" Systems now use [CreateBefore(typeof(DefaultVariantSystemGroup))], so that user-code can add [CreateAfter(typeof(DefaultVariantSystemGroup))] when accessing GhostComponentSerializerCollectionData data.
    • We now also guard all of these calls, giving explicit (fatal) errors if used improperly.
  • An issue in GhostDistancePartitioningSystem, which caused Netcode to add a shared component ECB entry for every single ghost containing a LocalTransform, every single frame, when GhostDistanceImportance was enabled in a users project.

Deprecated

  • Now that the GhostAuthoringInspectionComponent shows all replicated components, you shouldn't have to opt-into prefab overrides. Thus, deprecated the SupportsPrefabOverrides attribute.

[1.0.0-pre.66] - 2023-03-21

Added

  • 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.

Changed

  • The following components have been renamed:
    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,

Removed

  • internal ListenAsync/ConnectAsync methods (no visible API changes for users)

Fixed

  • 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).
  • source generator crash when logging missing assembly dependency.
  • source generator requiring Unity.Transport package dependency for generating serialization code.
  • Snapshot history buffer not restore correctly, causing entities component to be stomped with random data.
  • 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.
  • an issue with source generator, validating incorrectly custom templates that uses overrides.
  • removed warning for old temp allocation when converting sub-scene with pre-spawned ghosts.
  • 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).
  • Fixed potential crash in players when send queue is full
  • Fixed exceptions when trying to use invalid interpolation ticks (could happen during snapshot updates or in predicted spawning system on disconnection)