Beamable 0.18.0 introduces a new feature called Content Baking. Previously, the first time players launched a Beamable game, they’d have to download every piece of Beamable content to their devices. For games that had significant amounts of content, the download could cause considerable lag time in-game startup speeds. Now with Content Baking, you can bundle an initial version of content with your game, removing the need for users to download anything. You can configure how the content is bundled with the application, choosing either GZIP compression, or no compression. To enable automatic Content Baking, go to the Content section of your Project Settings. Or, to do it manually, use Window / Toolbox / Beamable / Utilities / Bake Content. Content Baking lets your users start playing your game faster, which reduces friction in your onboarding process. No one likes loading screens.
Microservices can be used to implement features specific to your game’s needs. In Beamable 0.18.0, we’ve added the ability to represent your own [ClientCallable] methods as Beamable Content. Our vision is to allow you to attach these API Content Objects to Beamable events, like when a player claims their Tournament rewards, reads an announcement, or makes an in-game purchase. Today, you can register a custom API Content as a reward in an Announcement. You can use this feature to execute custom logic when a player claims the gifts in an Announcement. For example, you could write a custom C# function that increments an item’s property value, or resets a stat timer for a player. We’ll be expanding the places you can use API Content so that you have as much control over your game’s logic, flow, and state as possible.
Beamable is dedicated to giving you fully functioning prefabs that leverage entire Beamable feature sets. In Beamable 0.18.0, we’ve added a new Leaderboard prefab that is more performant, scalable, and configurable than the previous. Similar to the old Leaderboard, all you need to do is assign a Leaderboard Content Ref to the prefab, and you’re ready to go. The new prefab is built using our new User Interface technology. We call it the Beamable Unity Style Sheet, or BUSS for short. BUSS is a tool that gives you full control over the styling and theming of your drag-and-drop prefabs while optimizing performance. It uses a Signed Distance Field rendering technology under the hood to give your UI’s modern aesthetics like drop shadow, borders, gradients, and more. We are going to continue building tools for BUSS so that you have easy and powerful ways to customize and personalize your game’s look and feel.
Beamable 0.18.0 is bursting with various workflow improvements and SDK enhancements. In the Unity Editor, you’ll notice that you see less Asset Importing as you enter and exit Playmode. We’ve fixed a bug deep in our Content system that was erroneously causing asset imports.
The schedule editor for Listing and Event Content has also been extended to support more of the cron syntax. In fact, you can now enter your schedules as cron strings directly in the Inspector if you need to express a more nuanced schedule than the UI can represent. If you aren’t familiar with cron, check out this excellent third-party website, https://crontab.guru/.
Beamable 0.18.0 also moves the BeamableEnvironment class from the Editor namespace, to the Runtime namespace. The BeamableEnvironment class contains data about the Beamable package you are using, like what version you have, what API URL you are using, and more. You can use this information to write robust code that responds to Beamable’s version number.
The Microservice feature continues to mature and offer more ways to configure your workflows. In Beamable 0.18.0, you can use the [InitializeServicesAttribute] to decorate a static method as an application startup method. If your method is static, returns a Task or a Promise, and accepts a single IServiceInitializer as a parameter, then it will be invoked exactly once when the Microservice starts up. The method will be called before the service can receive traffic from players, but after a secure connection to Beamable has been established. This means that you can reference Beamable data as part of your initialization. There are a few other Microservice improvements, such as the ability to collapse the log view in the Unity Editor, and the ability to return simple Dictionary types from your [ClientCallable] methods.