Appearance
Appearance
PlayerPrefs
. This circumvents an issue on some Android devices where PlayerPrefs
fails to persist state properly.sock_diag(7)
instead of parsing /proc/
pseudo-fs. This improves game server performance when the number of connections is high.123.45.X.X-3c1f83b9
, fe80:0000:X:X:X:X:X:X-3c1f83b9
. The anonymized ID will retain its identity until the next server restart or redeployment.OnApplicationPause
events. Please see Connection Management for more info. DatabaseNumActiveShards
in Server/Game.Server/Config/Config.local.json
to 1. If you're unsure, please contact us.p1.metaplay.io
environment has been updated to support the latest database sharding setup. Currently, running deployments are running in a compatibility mode and with the non-sharded database configurations. metaplay-gameserver
chart version 0.1.0
.prod
and staging
) to infra-modules
v0.1.0
requires a fresh redeployment of the infrastructure from backups (RDS backups and game deployment S3 backups). This update is required for, amongst others, the database sharding functionality. PersistentEntityActor
initialization sequence (InitializeNew
/ LoadPersisted
→ MigrateState
→ PostLoad
) now passes the initialized state along the calls, removing the need for the implementation to store partially initialized state. PlayerActorBase
now provides a SwitchToNewModelImmediately
method and a OnSwitchedToModel
callback which replace the RestoreFromModel
& PostLoad
combo. This clarifies the lifecycle as PostLoad
will only be called once, at the end of an initialization sequence. PlayerActorBase.ExecuteServerAction
now takes a mandatory ServerActionTimelineOrder
argument which controls whether the action may happen as a part of the ongoing (if any) action (Relaxed
), or if the action may only happen after all actions have finished (AfterPendingOperations
). AfterPendingOperations
, as it makes the flow of operations linear. We have migrated the existing code.[Sensitive]
attribute replaces old PrettyPrintFlag.Sensitive
flag for sanitizing sensitive strings from logs and when sending data to the dashboard. The new attribute works when serializing data for the dashboard as well. [MetaSerializable]
is now required also for serialized enum
types. This makes using serialized enums safer as the attribute should inform the reader that the values of the enums should not be changed, as they may have been persisted in the database already. enum
types where necessary. All existing code has been migrated.MessageTargetActor
enum has been replaced by an abstract MessageRoutingRule
attribute class in order to make it more flexible and extensible by the game without needing to make custom modifications to SDK code. MessageTargetActor.Player
as the targetActor
argument for its MetaMessageAttribute
, it should now instead have the MessageRoutingRuleOwnedPlayer
attribute next to the MetaMessageAttribute
.MessageTargetActor
.GoogleCredentialsPath
field in Server/Game.Server/Config/Config.*.json
files has been renamed to FirebaseCredentialsPath
. PlayerActionBase
and PlayerServerActionBase
. InAppPurchase.cs
, PushNotification.cs
, and SocialAuth.cs
. ActionResult
class was split into two: ActionResult
remains the container for the game-specific result codes, and MetaActionResult
is the type that is passed around and returned from Execute()
methods. It also contains all Metaplay Core-specific result codes and the Success
code. OnApplicationPause
events as described in Connection Management. MetaplayClient.OnApplicationPause
or MetaplayConnection.OnApplicationPause
in its MonoBehaviour.OnApplicationPause
. It may already be implemented.[MetaSerializable]
attribute on serialized enum types.Queue<T>
.AfterPendingOperations
.SwitchToNewModelImmediately
method to replace fragile RestoreFromModel();PostLoad();
combo. Added OnSwitchedToModel
callback to replace RestoreFromModel
in all (re)load paths.