Appearance
Appearance
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 ModelJournal
s 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.ConfigFetchFailed
PlayerModel
(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