Beamable Release Unity SDK 1.0.0

Beamable Release Unity SDK 1.0.0

BEAMABLE 1.0

Beamable is happy to announce the release of our Unity SDK 1.0.0. We’ve been working towards this milestone for a long time, and it’s completely full of new features to help Game Makers. The full changelogs can be found below. Here are the highlights of the release.

Microstorage and Microservices

In Beamable 0.17.0, we released the Microstorage preview, which allowed you to experiment with connecting local persistent storage to your Microservices. Now, you can deploy those storage layers alongside your Microservices to the Beamable Cloud. You get full access to read and write your data, as well as to view metrics and performance suggestions to keep your games moving fast. When you create a Microstorage object from the Beamable Microservices Manager Window, you can mark it as a dependency of a Microservice, and start writing your data C# classes in Assets/Beamable/Common right away. You have full access to the Mongo C# Driver, so you can take advantage of the powerful capabilities Mongo provides. In Beamable 1.0, we’ve also updated our Microservices to take advantage of Dotnet 6, which will make your apps faster and more secure.

If you’ve already added Storage Objects through the 0.17.0 preview release, you’ll see a few errors when you upgrade to Beamable 1.0.0. To fix these issues, you need to do the following steps for each Storage Object

  1. Identify the assembly definition for the Storage Object, which should be located next to the Storage Object’s class file.
  2. Add a reference to the Unity.Beamable.Server.Runtime.Common assembly
  3. Add a reference to the Unity.Beamable.Server.Runtime.Mocks assembly

Brand New Portal and Documentation

Beamable 1.0 has an entirely new Live Operations Portal. The Portal is designed to make operating and managing your live games easier. You can control your Analytics, Player Data, Beamable Cloud Resources, Content, Realm Data, and more from the new Portal. We are always looking for feedback, so please share your thoughts and experiences about the Portal with us. Oh, and it has Dark Mode. Our documentation page has also been redesigned and updated to reflect many of the new features in 1.0. You can give us feedback or suggest an edit from within the new documentation pages.

Beamable Assistant

Making games is hard. Using Beamable shouldn’t be. We’ve added a brand new window called the Beamable Assistant. It’ll automatically analyze your project and codebase for common Beamable usage errors and suggest fixes or performance improvements. The hints that the Assistant reports are configurable and extendable. Your own team can leverage the analytization pipeline and offer custom suggestions that fit your project’s needs. If you’re worried that this sounds vaguely similar to a certain metal paperclip from the late 1990’s, don’t worry, you can always disable this feature if you want to. In future Beamable releases, we’ll be adding and improving the hints and suggestions so that you can rely on Beamable Assistant giving you reliable and insightful feedback.

Theme Manager Preview

Beamable 1.0 has a brand new way to manage theming prefabs. We call it Beamable Unity Style Sheets, or BUSS for short. If you have a new Leaderboard prefab in your scene, and you open the Skinning page from the Toolbox, you’ll be put into a new theming experience where you can override the look and feel of the Leaderboard. BUSS uses a Signed Distance Field rendering technique under the hood to deliver crisp and rich UI visuals. BUSS empowers the developer to express their styles with CSS concepts like selectors, properties, and variables. The new Theme Manager window is still in Preview, and we will be listening to your feedback and improving it in future releases. As we build more prefabs powered by BUSS, the style decisions you make once will be reused over and over again so that you can spend more time building your game instead of wrestling with UI code.

Player Centric SDK Preview

We’ve added new SDK capabilities to Beamable so that you can access your Player Data as easily as possible. In previous releases, every code interaction you had with Beamable started with Beamable.API.Instance. That will still work, but starting with Beamable 1.0, you can also use BeamContext.Default.Api instead. The BeamContext is a class that represents a Player and all their code dependencies. Internally, we are using a Dependency Injection framework to power the context, instead of hard coding a list of service initializations. You can take advantage of this by having multiple BeamContexts in memory at once, which allows you to support couch co-op or hot seat gaming using Beamable player accounts. You can inject your own context sensitive services as well, modify the existing Beamable ones, or even replace them with your own implementations. Once you have a BeamContext instance, you can access player data directly, or in an observable pattern. You never need to worry about promise callbacks ever again if you don’t want to. We are going to keep working on improving the BeamContext and adding more convenient SDK functionality to it in future releases of Beamable. However, as part of this transition, we have removed the capability to use the ServiceManager class with Beamable.

Here is the complete changelog for 1.0.0

Added

  • BeamContext classes and new player centric SDK types like PlayerInventory
  • Beamable Assistant window
  • BUSS Theme Manager window
  • StorageDocument base class for storage data classes that automatically handle document ID assignment.
  • Automatic Mongo serialization for basic Unity structs like Vector2, Color, and Quaternion
  • Automatically generate a client-server shared asmdef, and new Microservices automatically reference it

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. Use BeamContext instead.
  • Beamable.API.Instance now returns BeamContext.Default.Api after waiting for the context initialization
  • Upgraded Microservices to dotnet 6.0 instead of 5.0
  • Microstorage is out of Preview. Storage Objects can now be published and used in a remote environment.
  • Microstroage GetCollection method must now take subclass of StorageDocument
  • Return values from ClientCallable methods are serialized using Unity style serialization
  • Microservice Publish window has improved performance and User Experience

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
  • Swagger docs handle generic types instead of failing to load
  • C#MS Log View stay attached to the bottom of the scroller

 

Our changelogs can be found at https://github.com/beamable/Changelogs/blob/production/com-beamable-changelog.md