Appearance
Appearance
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()
.MetaRef
s (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 StringId
s 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.