All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.0.3 - 2023-XX-XX
GameManager.TryDeserializeValue
,GameManager.TrySerializeValue
,GameManager.TryDeserializeStream
andGameManager.TrySerializeStream
methods, these can be used to serialize and deserialize data using internalGameManager
serialization utilities. You can customize this viaISerializer
interface (seeCreateSerializer
method onGameManager
).GameManager.DeleteDataAsync
which can be used to delete data asynchronously.GameManager.ReadResourceAsync
andGameManager.ReadResourceStreamAsync
methods which can be used to retrieve resources from StreamingAssets directory.GameManager.ReadDataStream
andGameManager.ReadDataStreamAsync
methods which can be used to read aStream
from a file on disk.GameManager.SaveDataStream
andGameManager.SaveDataStreamAsync
methods which can be used to persist aStream
to disk.GameManager.IsDebuggingEnabled
flag which can be used to turn on if debug mode is on for the game manager.
- Renamed some
IResourceLoader
methods to useGet*
prefix instead ofLoad*
so its more consistent with other methods. Methods which read from StreamingAssets directory will useRead*
prefix. - Renamed
IGameStorage
toIStorage
. - Cancellation tokens can now be used in all async methods.
- Renamed
IStorage
methods to useRead*
andSave*
prefixes to emphasise that these methods interact with data on dist. - Project directory name will be used for editor storage keys, this should prevent editor key conflict issues with Parallel sync and similar plugins.
GameStorage.GetValueAsync
(nowGameStorage.ReadValueAsync
) not switching back to main thread when no value is found.- Message bus not handling abstract and interface listeners.
- Message bus iteration breaking when listener would remove itself during
Raise
call.
v0.0.2 - 2023-10-06
GameManagerSettingsProfile
which can be used to load a specificGameManager
configuration viaGameManagerSettings
.- Better logging with a custom log message format.
- Property Drawer for
GameManagerSettingsProfile
, this way it's easier to manage lists of profiles.
GameManagerSettings
will now be automatically created atAssets/Settings/GameManagerSettings.asset
and added to preloaded asset list (you can move it later). This is needed to support automatic instantiation as previously usingResources.FindObjectsOfTypeAll
was not working in builds.GameManagerSettings
class visibility is nowprivate
.GameManager
static methods will now throw anException
if it's not initialized instead of just logging an error and pausing.- Automatic
GameManager
instantiation now only supports loading before and after scene load. - Menu item order to use
150
instead of-1000
. This wayCHARK
won't dominate existing entries.
GameManager.GetGameManagerSettings
method as a new profile system will be used instead. Overriding this doesn't make sense anymore.
v0.0.1 - 2023-10-04
Initial preview version.
- Core Game Management logic.
- System adding, removal and retrieval.
- Messaging solution.
- Storage solution with built-in json support.
- Documentation.