Appearance
Appearance
Latest player incident reports are now sorted based on the time when they were received on the server, to avoid client clocks in the future always ending on top of the list.
Player login history size has been increased to 20 by default.
A longer list of recent player incident reports is available on the Environment page.
Player incident report UI iteration with static links that can be easily shared, more readable incident lists, and deep links for easier navigation between reports and players.
![](images/r9-player-incident-reports.png)
There is now a global link to Grafana metrics dashboard on the Overview page (only enabled if there's a Grafana configured for the environment).
![](images/r9-grafana-link.png)
There is now a link to the Grafana Loki logs for each player session on the Player page (only enabled if there's a Grafana configured for the environment).
![](images/r9-grafana-loki.png)
All 'X ago' times in the dashboard now show the exact full time in both local time zone and UTC when hovered over.
![](images/r9-display-time.png)
A nicer 404 page to handle typos in URLs. Not that it ever happens, right? 🧐
![](images/r9-nicer-404.png)
Current environment (local
, production
, ...) is now visible in the sidebar
![](images/r9-current-environment.png)
SocialAuthenticateResult
class now contains the full player state (MetaSerialized<IPlayerModelBase>
) instead of the old ConflictingPlayerInfo
. With the new approach, all of the conflicting player's state is available for visualization on the client without extra steps. MetaplaySDKBehavior
MonoBehavior
in the scene at all times. You should place the MetaplaySDK
Prefab into a suitable place, or set MetaplaySDKConfig.AutoCreateMetaplaySDKBehavior = true
in SDK init. If you choose the latter, a GameObject with the behavior is created automatically at runtime. This should be considered a temporary workaround and we recommend using the included Prefab. MetaplaySDKBehavior
is properly placed in the scene or if runtime GameObject creation is needed.byte[]
) has been fixed to write the correct tag WireDataType.Bytes
instead of WireDataType.ValueCollection
. While compatibility is mostly retained between old and new clients and servers, there are possible scenarios where an old client won't work with a new server if byte[]
is (transitively) contained within something that uses checksumming, such as PlayerModel
(or other models). Newtonsoft.Json
library for GameConfigBuilder
now only available on Editor platform. To use Metaplay.Core.Json
on client, an Unity compatible Json.Net API-compatible Json library needs to be present and METAPLAY_ENABLE_JSON
define symbol must be set in the project settings. METAPLAY_ENABLE_JSON
is set if the Metaplay.Core.Json
features are used. You should check this matches your expectation.infra-modules
v0.1.1 release requires Terraform 0.14.3 or later. slack_*
, pagerduty_*
, and opsgenie_*
parameters from environments/aws-region and components/services in infra-modules
v0.1.1 and replaced them with maps slack_targets
and pager_targets
. This allows passing multiple targets and configuring them granularly with different alert severity levels. metaplay-gameserver
0.1.3 or later will require by default a service account named gameserver
to be provisioned in the game server's namespace and requires infra-modules
v0.1.1. This functionality is required for IRSA-based access to game server S3 buckets. metaplay-gameserver
0.1.3 but do not want to rely on IRSA, you can opt-out by setting rbac.serviceAccount.enabled
to false
in your Helm values.MetaplaySDK.OnApplicationAboutToBePaused(Reason, TimeSpan)
has been added for hinting the Metaplay that the game is about to be paused and the expected duration of the pause. During this pause, Metaplay attempts to keep the session alive even if it would exceed normal liveliness limits. This is useful for example when showing an Ad or opening a website in an external browser, which both may temporarily pause the game.MetaplayConnection.OnApplicationPaused()
when the application goes and resumes from the background. This is tracked automatically.For example, the bots can be run for 3 minutes and exit on errors with the following:
`BotClient>dotnet run -MaxBotClients=20 -ExitAfterSeconds=180 -ExitOnLogError=true`
The feature is still very rough around the edges, please give us feedback if you find this useful.
FirebaseCredentialsPath
as aws-sm://path/to/secret
. The intention is to expand this to other sensitive configuration data in the future.InternalWatchdogDeadlineExceeded
, for case where connection was terminated due to connection thread becoming unresponsive.MetaplaySDK.OnApplicationAboutToBePaused(reason, expectedDuration)
method for hinting SDK to keep session alive even if application gets paused. Useful when showing Ads or opening external applications.null
values for better legibility.Connection.Update()
has been replaced with MetaplaySDK.Update()
.PlayerClientContext.MaxSimulateTicks
to MetaplayConnection.Config.MaxSessionRetainingPauseDuration
and MaxSessionRetainingFrameDuration
, with optional hinting with MetaplaySDK.OnApplicationAboutToBePaused
.byte[]
now writes the correct tag WireDataType.Bytes
instead of WireDataType.ValueCollection
.