0.15.0
over 2 years ago by Sam Rivello
Changelog
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.
[1.2.0]
Added
- Unity 2021 LTS support.
PreventAddressableCodeStripping
Core Configuration setting that automatically generates a link.xml file that will preserve addressable types.TryClaim
method inEventService
to attempt a claim, even if one is not invalid.GetDeviceId
method inAuthService
to retrieve the current device id.deviceIds
field onUser
object that provides all associated device ids.- Content sorting option in
Content Manager
. - Documentation to
IBeamableAPI
and all related accessors. Subscribe<T>
method toINotificationService
to avoid awkward serialization handling.- Implicit conversion operators from
Optional<T>
objects wrapping a value type to matchingNullable<T>
types. - Inline style editor in BUSS theme manager.
- Added
LobbyService
andPlayerLobby
to support new Lobby functionality.
Changed
ManifestSubscription
subscription no longer accepts the scope field- AccountHud logs a warning when pressed if there isn't an AccountManagementFlow in the scene.
- Increased the AdminFlow scroll speed
- InventoryFlow can now be configured at the GameObject level.
- Edit mode for Buss Style Card has been removed in favor of context menus for selector label, variables and properties.
- Claiming an event that a player never submitted a score for will report an accurate error message.
- Added tooltips to Microservice Manager elements which didn't have them.
- Microservice Manager buttons now highlight on hover.
- Beamable third party context systems register with a default order of -1000.
- Global style sheet is turned now into a list of global style sheets.
- Content tags are split on
','
characters in addition to' '
s. - A
IBeamableDisposable
'sOnDispose
method can now resolve services from theIDependencyProvider
that is being disposed. HeartBeat
will now send heartbeat requests faster for our newer live backend services such as Lobbies- Content validation for ID fields will now accept IDs without the prefix
- It is now possible to set background sprite as a main texture in SDF Image.
- It is now possible to choose 9-slice source and Pixels Per Unit multiplier in SDF image.
Fixed
- StoreView prefab now works in landscape mode.
- Playmode ContentObject refresh with disabled domain reload on Unity 2019 and 2020.
- Reading content in offline mode will no longer throw an exception if there is offline cache available
- Android sign-in will always allow user to select an account.
- Editor time Content downloads ignore content where no C# class exists.
- Account management will no longer log an error after pressing change password button more than once.
- Content Manager no longer logs inaccurate warning after renaming content.
- Notification handling for multiple
BeamContext
instances. - Listing 'sku' price type was incorrect. Fixed to 'skus'.
- The player's location is detected automatically
- Matchmaking no longer breaks after user switch from Account Management flow.
Removed
- Unity 2018 LTS support.
[1.1.4]
Fixed
- Documentation links no longer direct to missing web pages.
[1.1.3]
no changes
[1.1.2]
Fixed
AccessTokenStorage
no longer throwsArgumentOutOfRangeException
when starting in offline mode
[1.1.1]
Fixed
- The namespace for
PropertySourceTracker
no longer invalidates the usage ofUnityEditor.Editor
as a type reference
[1.1.0]
Added
- Added
RecoverWith
extension method overloads toPromise<T>
that allow for configuring a promise to recover from failure over multiple attempts. - Selected Buss Element section in Buss Theme Manager
- Added
AddAsChild(VisualElement, string, params string[])
toBeamHintVisualsInjectionBag
to allowBeamHintDetailConverter
functions to build and inject dynamically createdVisualElements
into Hint Details.
Changed
- Behaviour of Add Style button in Buss Theme Manager
- Add Style button moved above Buss Style Cards section in Buss Theme Manager
- Buss Element selection improvement in Buss Theme Manager
- Application will check if there are redundant files in content disk cache on each start. All files but the one needed will be deleted to free disk space.
- All implementations of
[BeamContextSystem]
or[RegisterBeamableDependencies]
will be preserved durring Unity code stripping - Updated C#MS Publish window UI/UX
- Properties in Buss Style Card sorted alphabetically by default
Fixed
- Constant "Invalid token, trying again" errors in the Editor after 10 days.
- Compilation error when using new
com.unity.inputsystem
- Deferred retry of failed uploads to the poll coroutine, to eliminate an infinite loop that could crash the app.
- Content string fields can contain escaped characters, and won't be double escaped after download
- Fixed issue with
ReflectionCache
that happened on certain platforms whenIEnumerable
returning functions had to be parsed forAttributesOfInterest
. - Possible
DivideByZero
exxception that was thrown durring Toolbox usage
[1.0.8]
Added
CoreConfiguration.EnableInfiniteContextRetries
andCoreConfiguration.ContextRetryDelays
options to allow developers to override what happens when a BeamContext cannot initialize
[1.0.7]
This is a broken package. It includes changes from the 1.1.0 release. Please do not use this version.
[1.0.6]
Added
- Optional parameter
mergeGamerTagToAccount
toIAuthService.LoginDeviceId
to support recovering an old account
[1.0.5]
Fixed
- Unity IAP failure to initialize on device won't hang
BeamContext.Default.OnReady
[1.0.4]
Fixed
IBeamableRequester
implementations no longer disposeUnityWebRequest
too soon
[1.0.3]
Fixed
- All
IBeamableRequester
implementations disposeUnityWebRequest
after usage - Beamable.Platform assembly definition references Facebook.Unity dll if it exists
[1.0.2]
Fixed
- Windows Microservices first time build issue regarding empty build directories
[1.0.1]
Added
IDeviceIdResolver
is now a dependency of theAuthService
, and can be overriden to produce different device ids other thanSystemInfo.deviceUniqueIdentifier
- Content Baking feature now also bakes content manifest which is used when there is no Internet connection
Changed
- The
Promise.ExecuteRolling
function has been deprecated in favor ofPromise.ExecuteInBatchSequence
- The startup sequence runs startup requests at the same time for speed improvements
- All Beamable Assembly Definitions use the
OverrideReferences
flag so they don't automatically reference project DLLs
Fixed
- The
ResolveAll
content function no longer exceeds stack frame size limits - Beamable assets are loaded with their full name so asset types won't collide
- Null references associated with Realm dropdown in Editor
[1.0.0]
Added
BeamContext
classes and new player centric SDK types likePlayerInventory
- Beamable Assistant window
- BUSS Theme Manager window
Changed
- All Beamable Portal interactions use the new Beta Portal
- Consolidated internal assembly type scanning into
ReflectionCache
system. This improves editor time performance by an order of magnitude. ServiceManager
no longer provides Beamable types. UseBeamContext
instead.Beamable.API.Instance
now returnsBeamContext.Default.Api
after waiting for the context initialization
Fixed
- Deleting all items from an inventory subscription notifies client
- Immediately failed promises throw uncaught errors on access
- Disabling multiple content namespaces setting will disable both Publish button dropdown and content namespace dropdown
- Content baking will process correct number of objects regardless of local changes
- Baked content meta file warning should not appear anymore
- Immutable prefabs are no longer dirtied by the legacy skinning system
- The Reset command works on unsaved scenes
EventContent.StartDate
is kept in sync with schedule definition
[0.18.2]
Changed
- Improved baked content performance by keeping data in a single file and limiting number of IO operations.
[0.18.1]
Fixed
- The
Editor 'namespace' but is used like a 'type'
error has been fixed - The "Whats New" banner links to blog post if available
- Reference to Unity 2019.3 specific
HasOpenInstances
function removed in Unity 2018
[0.18.0]
Added
- Content can be prebaked with game-builds to speed up content initialization
ScheduleDefinition
now supports CRON expression- Minute support for scheduled listings
- Announcement content includes gifts in addition to attachments. Gifts support webhook calls.
scheduleInstancePurchaseLimit
field to theListingContent
to enable setting a purchase limit scoped to the schedule instanceSearchStats()
admin method is usable from client and microservice code.- Device ID Deletion APIs (bulk and selective)
Changed
BeamableEnvironment
has moved to the Runtime to enable sdk version checking at runtimelist_content
Admin Command displays limited results. You can specify start index forlist_content
command
Fixed
- Renamed Beamable's iOS plugin for Google Sign-In from
GoogleSignIn
toBeamableGoogleSignIn
to prevent name collisions with public plugins. InventoryService.GetCurrent
is no longer limited by URI length- only use
InitializeOnEnterPlayMode
in Unity 2019.3 or higher - Removed unnecessary Unity asset reimport for identical content data.
[0.17.4]
- no changes
[0.17.3]
Added
- Added
RemoveDeviceId
method inAuthService
- Limit amount of elements displayed by
list_content
command in Admin console, allow to specify start index forlist_content
command
Fixed
- Removes Menu Window/Panels/1 warning after opening schedule type dropdown on Unity 2019 and 2020
- Limit displayed admin console output
[0.17.2]
Added
CoreConfiguration
to project settings to tweak how our Promise library handles uncaught promises by defaultmatchingIntervalSecs
forSimGameType
allows game makers to specify the rate by which matchmaking occurs
Changed
PromiseBase.SetPotentialUncaughtErrorHandler(handler, replace)
-- replaces by default, but supports adding handlers by passingfalse
to second parameter- New design of Microservices Publish Window with support for Storage Objects
Fixed
CloudSavingService
serialization error caused by Invariant Culture- Content Manager Publish window loading bar width
- Current Hud no longer emits null reference error if no image is assigned
[0.17.1]
Fixed
- calls to Leaderboard scoring API support large numbers
- schedule UI validation for daily and day-of-week schedules
[0.17.0]
Added
- Device id authentication support
- Steam third party authentication support
- Auto-complete text feature for
AdminFlow
prefab - New default
currency.coins
currency that demonstrates client writable currency. - Ability to remove a third party authorization with
RemoveThirdPartyAssociation
method in AuthService - Cohort Settings for EventContent that support partitioning by player stats
- Event schedules for repeating events
- Listing schedules for repeating listings
- Support for archiving manifest namespaces.
- A
Fetch()
method to all subscribable SDKs that requests and returns the raw subscription data
Changed
- An optional
forceRefresh
parameter to all subscribable SDK'sGetCurrent()
method that forces a network request API.Instance.Requester
is now anIBeamableRequester
- The
Promise
class is no longer static, and extends fromPromise<Unit>
- The realm dropdown now has a loading spinner on realm switches
- Content Inspector datepicker with no user given value no longer constantly updates
- Content deletion popup opens as separate window
- Microservice separator (draggable) moved directly under log group
Fixed
- If no internet connection exists on startup,
API.Instance()
will retry every 2 seconds until a connection is established - Able to build games to device
[0.16.1]
Fixed
ExecuteRolling
method ofPromise
now supports a condition on which stop execution- No longer re-imports config-defaults without cause
- Batch imports Module Configuration files to improve speed
- No longer refreshes asset database on ContentIO FindAll()
- Allow Content Deserializer to consume incorrectly typed fields as empty values
[0.16.0]
Added
- Support for disabling Unity Domain Reload
- Content console commands (GET_CONTENT, LIST_CONTENT, CONTENT_NAMESPACE, SET_CONTENT_NAMESPACE)
- Easy custom content class creation in
Create/Beamable/Content Types
- Resetting content to the server state under
Window/Beamable/Utilities/Reset Content
MustBeSlugString
content validation with configurable option to allow underscoresOptionalBoolean
type for content- Leaderboard Apis that support fetching partition/cohort cached assignment transparently
- Ability to disable VIP currency awards on Mail Rewards
- PlayerSettings scripting define symbols are saved in Diagnostics file
- Beamable package version Toolbox announcement
Changed
- Request and Responses to and from Beamable are GZipped if larger than 1K
- Leaderboard Content supports partitioning, max size, and cohorting
- Leaderboard Update api will transparently fetch cached assignment
PlayerStatRequirements
now support providing the domain and access of statsMustBeOneOf
content validation attribute now supports Optional types- Beamable Platform errors all extend from
RequesterException
in Unity Client and microservice code - Redesigned internal Toolbox announcements
- Content Manager publish flow shows Realm and Namespace for confirmation
ExecuteRolling
method ofPromise
now supports a condition on which stop execution
Fixed
- Added missing attributes for content classes
- SocialService
SocialList
serialization - Account Management Flow third party login buttons use correct third parties
- Content Manager Window item selection is cleared after changing the Namespace
- Adjusted confirm window look while trying to delete any content
- Content Manager Popups refresh after Unity domain reload
[0.15.0]
Added
- Verbose logging capability available in Project Settings
- Exposed cohort requirements for listing content
- Admin commands: ADD_CURRENCY, SET_CURRENCY, GET_CURRENCY
- Tournaments now supports the ability to specify group/guild-based rewards
- Tournaments now support player score rewards in addition to the existing rank rewards
- Tournaments allow developers to specify how many stages a player regresses if they do not participate in a cycle
- Inventory now supports setting properties on currencies at runtime
Fixed
- Logging back into the Toolbox will remember your Realm selection per game
- Positioning of Validate, Publish and Download windows available from Content Manager
[0.14.3]
Fixed
- Re-namespaced internal UnityEngine.UI.Extensions to Beamable.UnityEngineCopy.UI.Extensions so as to not collide with other versions.
[0.14.2]
- no changes
[0.14.1]
Fixed
- Facebook SDK won't be referenced unless the Facebook setting is checked in the Account Management Configuration
[0.14.0]
Fixed
- Integration for Unity In-App-Purchasing 3.x.x packages
- Content references will update after a manifest subscription update
Changed
- Rearranged the Portal button and Account button in Toolbox
- Rearranged the Content Count label in Content Manager
- Password reset codes can use PINs instead of UUIDs
Added
- WebGL build support
- Multiple content namespaces, both in Editor and Runtime. Must enable in Project Settings
- Facebook Limited Login (iOS) Authentication
"portal"
console command, which opens portal to the current player's admin page- Multi-object editing support for Content Reference selector
- New editor tooling for ISO date strings in Content Objects
- Realm Picker in the top right of Content Manager
- Last publish date in bottom-right of Content Manager
- ISerializationCallbackReceiver support for Content Object serialization
- Async support for
Promise<T>
types - Added Donate api call method to GroupApi
[0.13.3]
Fixed:
- Matchmaking state transition bug
- Increases heartbeat rate for MatchMaking
[0.13.2]
Fixed:
- Fixed isHttpError obsolete errors
- Removed use of Social.localUser.id from GameCenter Authentication
Added:
- Support for GameCenter Authentication on iOS 13.5+
[0.13.1]
Fixed:
- GameCenter SDK errors with non-iOS il2cpp builds
[0.13.0]
Fixed:
- Fixed possible null reference exception in MustReferenceContent validation attribute
Added
- GameCenter sdk Authentication Support
- Adds an optional field, activeListingLimit to Store Content
Changed
- Switched MatchmakingService API to point to our new backend matchmaking service.
[0.12.0]
(this release was skipped)
[0.11.0]
Changed
- Console Configurations ToggleKey will be reset to BackQuote.
Fixed
- Fixed Promise multithread safety.
- Fixed ContentRef property drawer showing invalid references when deleted.
- Fixed MustReferenceContent validation for lists of Content References.
Added
- Support for the new Unity Input Manager System.
- Added OnUserLoggingOut event available from API. The event fires before a user switches account.
- Doc Url to package.json.
- Event phase validation. Events can no longer have zero phases. This may lead to disappearing Event Phases if your Beamable version is mismatched.
- Switched MatchmakingService API to point to our new backend matchmaking service.