Appearance
Release 26
December 22nd, 2023
Appearance
December 22nd, 2023
MetaplayCoreOptions.supportedLogicVersions to force a synchronized update of your game client and server.PublishedAt and UnpublishedAt columns have been added to the Localizations and StaticGameConfigs tables.LogicVersion column has been added to the Players table.INFO
Note: If you have a service contract signed with Metaplay, your SDK integration has already been updated to reflect any backwards incompatible API changes in the Metaplay SDK in the SDK upgrade pull request of your project. Otherwise, please see the Migration Guide for a full list of changes, along with the HelloWorld and Idler samples for references on how to apply the changes.
We recommend upgrading to the latest versions of the infrastructure and game server Helm chart:
infra-modules v0.2.11. metaplay-gameserver v0.5.1. The minimum required versions are infra-modules v0.2.2 and metaplay-gameserver v0.4.4.
MInputSingleSelectRadio component. This is a single-select radio button input for number and string values.MInputMultiSelectCheckbox component. This is a multi-select checkbox input for number and string values.MInputSingleFile component. This is a file picker component for individual files.MInputSingleFileContents component. This is a file picker component for individual files that also reads the contents of the file into a string.MInputSingleCheckbox has been renamed to MInputCheckbox and MetaInputCheckbox has been removed. MetaInputNumber has been removed in favour of MInputNumber. MInput* components. MListItem component styles and overall usability. The new look and feel are more consistent with the rest of the dashboard.MInputSingleCheckbox to just MInputCheckbox for consistency. This component now also has a smaller size variant.MetaInputCheckbox in favour of MInputCheckbox.LocalizationContentsCard. Improved performance overall.net7.0 and net8.0. Support for .NET 7 will be removed when support for it ends, around May 2024.LocalizationsBuild that allows overriding the logic for transforming from data sources to the final localizations data, in a similar fashion that the game config build pipeline customization works./file/ path. This can be used to distribute arbitrary files to the game client with developer authentication.METAPLAY_LEGACY_GAMECONFIG_PIPELINE. StringId.CompareTo has been fixed to use Ordinal string comparison instead of InvariantCulture, because InvariantCulture is inconsistent between server and Unity. This affects the default sorting order of StringId types. IGameConfigKey<> to IHasGameConfigKey<> to better reflect its purpose. MultiplayerEntityClientContext._clientStore. GameConfigTypeInfo and GameConfigEntryInfo have been moved outside the GameConfigRepository class so that they can be referred to less verbosely. GameConfigBase.PopulateConfigEntries() has been removed. mpcFormat parameter of GameConfigEntryAttribute has been deprecated. GameConfigImporter.ImportJsonLibrary and IGameConfigBuilder.ParseJsonLibrary have been removed. GameConfigBuildIntegration.GetAvailableBuildSources() to GetAvailableGameConfigBuildSources() and added GetAvailableLocalizationsBuildSources().GameConfigBuildIntegration.GetDefaultBuildParametersType() to GetDefaultGameConfigBuildParametersType() and added GetDefaultLocalizationsBuildParametersType().MetaRefs (i.e. referring to a non-existent item) within config data, instead of only the first one.GMSBlockStore completion is now pushed to a background thread to keep Java main thread as responsive as possible.TinyBenchmark now provides much more accurate results and supports benchmarking a group of operations in a single call to get more comparable results in cases where CPU is being throttled.CHANGELOG.md file has been removed and the contents migrated to the public release notes documents.ConnectionStates.Connecting in MetaplaySDK.Connection.State has new field Phase, which can be used to display more information of the ongoing connection attempt. In particular, phase DownloadingResources can be used to communicate to user that an ongoing download is in progress.net8.0.[GameConfigSyntaxAdapter] and migrated game config source on Google Sheets to use the new syntax.INFO
Note: If you have a service contract signed with Metaplay, your SDK integration has already been updated!
b-form-* components with MInputText, MInputNumber or other appropriate input components.MInputSingleCheckbox and MetaInputCheckbox with MInputCheckbox.MetaInputNumber with MInputNumber. MInputNumber has minor inconsistencies when it comes clamping minimum and maximum values, when combined clearOnZero property. Negative numbers in some cases cannot be inputed through keyboard with "-" character first.METAPLAY_LEGACY_GAMECONFIG_PIPELINE has been removed. If you are currently using it you'll need to switch to the new config pipeline before upgrading to Metaplay R26.StringId types has been changed. If you require the sorting of StringIds to remain the same as before, you now need to use an explicit custom comparer that performs InvariantCulture comparison.IGameConfigKey<T> with IHasGameConfigKey<T>.GameConfigBuildLog parameter: void ToConfigData(GameConfigBuildLog buildLog). For better error reporting during the game config build, use the passed in log instead of throwing exceptions in the transform method.ConfigParserException has been removed, and now the intended way to report config build errors is via GameConfigBuildLog. buildLog.Error("Some error message") to produce an error which will prevent the config build from completing successfully.WithLocation and WithVariantId, such as buildLog.WithLocation(item.SourceLocation).WithVariantId(item.VariantIdMaybe).Error("some error") where item is a VariantConfigItem<>, or with method WithSource(GameConfigSourceInfo) where the error concerns the whole sheet (or other source) instead of a specific item.GameConfigBuildLog is available in IGameConfigBuilder.BuildLog. IGameConfigBuilder is the type of the shared and server parameters to GameConfigBuildTemplate<...>.Build, as well as of the first parameter to the build function returned by GameConfigBuildTemplate<...>.GetEntryBuilder.MultiplayerEntityClientContext replace all uses of _clientStore with Services.ClientStore.GameConfigRepository.GameConfigTypeInfo to GameConfigTypeInfo, and GameConfigRepository.GameConfigEntryInfo to GameConfigEntryInfo.GameConfigBase.PopulateConfigEntries() for assigning game config entries to their respective fields: GameConfigBase.OnLoaded().-buildTarget is passed to Unity with the correct platform when building from the CI/commandline.MetaplayCoreOptions has a new property ClientLogicVersion. This should be set to the same value as SupportedLogicVersions.MaxVersion, and updated whenever the supported versions are bumped.PlayerActor._logicVersion has been removed. The player actor now has ClientLogicVersion and ServerLogicVersion properties instead. The client logic version should be used for any logic that should mirror the client, and the server logic version should be used for any communication with other actors on the server.GameConfigBuildIntegration API has been updated to also support localizations builds and some overrideable API methods have been renamed to reflect this: GetAvailableBuildSources() for enumerating the source for the game config build was renamed to GetAvailableGameConfigBuildSources().GetDefaultBuildParametersType() for explicitly declaring the type of the game config build parameters class was renamed to GetDefaultGameConfigBuildParametersType()./Assets/MetaplayGenerated_DONOTSAVE and /Assets/MetaplayGenerated_DONOTSAVE.meta to the .gitignore (or equivalent) file.MetaInputSelect component when it is used in generated forms. Once a value has been selected, the correct value is always shown. This will be fixed in the next release when we migrate to a new component.Released on: February 9th, 2024
Issuer option to Admin API JWT authentication configuration for the ability to specify issues in token from the environment..version file in MetaplaySDK/.version and not in the package root.