Appearance
Release 3
May 8th, 2020
Appearance
May 8th, 2020
Serializer v2: Combines the previous serializers to a single implementation. Up to 5x faster than the previous implementations, and does not generate almost any garbage. Only retains the Tagged serialization format which is more debuggable.
The concept of ModelJournals is added, which better manages PlayerModel checksums and snapshotting. It significantly reduces the number of checksum checks performed on the server by skipping any unnecessary checks. CPU usage is reduced by 50% or more, and generated garbage is reduced by 90% or more.
New client compatibility feature. It uses LogicVersion to determine if a client is allowed to connect to the current deployment and either block or redirect it if not. You can easily manage current compatibility and redirect settings from the LiveOps Dashboard of your deployments.

readonly (use properties with { get; private set; } instead)ClientHelloMessage.Timestamp to identify connections uniquely & to identify delayed connectionsSocialAuthenticateForceReconnect message to client when should reconnect due to attaching social account to a pre-existing player stateConnectionState.Connected.LatestReceivedMessageTimestamp to allow for custom healthchecksConnectionState.TransientError.ConfigFetchFailedPlayerModel (in base64) at bottom of player details viewPlayerModel members when serializing state to dashboardbyte[] now uses base64 (3x more compact), ends with '.' or '...' to mark the end of data and whether bytes were droppedflushEnqueuedMessages flag to MetaplayConnection::Close to control whether to flush or to drop enqueued before closing.OnPlayerChecksumMismatch handling moved from MetaplayClient to StateManager