coherence 1.6 Brings Player Authentication on Steam, PlayStation, Xbox, Epic, Nintendo, and more

Player Accounts

As part of our Cloud offering, we have expanded our authentication service with support for the following platforms:

  • Steam
  • Epic
  • PlayStation
  • Xbox
  • Nintendo

Additionally, we provide authentication via

  • One-time codes
  • JWT

And last but not least, you can authenticate as a guest, where an account is automatically generated for you. With this feature you can block connections and only allow those that provide valid authentication credentials coming from said platforms. This is a nice additional layer of security if you’re developing your game on them.

To learn more about everything-authentication, head to our Player Accounts documentation.

Improved Overshoot Correction

1.6 also brings improvements to our interpolation solution. One GIF is worth a thousand words, they say.

Before
This is my alt text
After

First-Time UX and the Hub

When we designed the Hub, we thought about it as the central space where you can go for everything realted to coherence: learning, troubleshooting, and more. That’s an ambitious goal, so we’re tackling it in iterations. This time around, we wanted to reduce the inherent complexity of trying to solve many problems at once. Our recent experience of working with prominent game studios gave us a good foundation and a better understanding of what is actually expected. This leads us to the below:

  • Baking and Cloud Schemas are quite a central part of coherence. So we’ve moved this state outside of a tab, and into the main window.
  • We’ve also reduced the number of tabs, focusing on what’s important for iteration.
  • Discovering coherence has been distilled into two tabs: Learn and Quick Start. These are by no means comprehensive enough on their own, but are good kick starters to get going if you don’t feel like delving into the nitty-gritty just yet – when you are, the documentation is the knowledge-savvy go-to place.
  • We also took the chance to simplify some of the tabs, making actions more obvious, and providing quick links to learn more about how to interact with everything the Hub has to offer.
coherence01
coherence02

Settings

Since we were updating the Hub, it made sense to update the Settings page at the same time. The principle is the same – simplicity, while sacrificing as little utility as possible. We’ve played with the organization of the settings, and the wording. And removed settings that are either deprecated or not relevant anymore.

coherence03

Global CoherenceSyncs

You can now make your Networked Prefabs be visible via global queries. These CoherenceSyncs will be synced regardless of their visibility on live queries.

All you need is a CoherenceGlobalQuery component on your scene, and to toggle “Is Global” on your Networked Prefab. All the details, as usual, are found in the CoherenceGlobalQuery article in our docs.

coherence04

Baking and Scripting Symbols

There’s situations when you want to synchronize data that’s inside of a script where there’s Scripting Symbols conditioning the compilation. For such cases, we now offer [BakeConditional(“DEFINE”)], which you can use to tell coherence that it should only bake a given class when the symbol is present.

Find all the details on our Conditional compilation page.

Goodbye, Reflection Mode. Hello, Baking!

Originally, coherence only supported Reflection Mode, with no concept of baking. We used C# reflection, a generic schema, and a handful of tricks to get away without code generation.

With v.1.6 we have embraced baking. It isn't flawless but it's proven to just work. We believe it offers the best tradeoff of flexibility, convenience, and power.

One of the biggest challenges is how we make baking (iterating) faster and more convenient. We’re not giving up on the idea of avoiding recompilations, or changes on the protocol when not strictly necessary. We'll have more to share about this soon. You can also engage with us in our Discord channel, sharing your current experience with iteration times!

Deprecating Multi-Room Simulators

Multi-Room Simulators was our approach to pushing a simulator to simultaneously care for more than one game session. To do this, we had to bend the rules. We needed to be able to have a variable number of isolated game sessions within the same build. This is doable, it just requires a lot of effort on the development side to avoid breaking that enforced isolation. To solve this problem, Multi-Room Simulators were based on a core abstraction: CoherenceSceneLoader and CoherenceScene. Abstraction which we’re pretty much supporting, and will continue to do so. You can read more about it here.

On top of that, we need a way to scale as needed. No matter how hard we try to push a simulator build, we will need a system that’s able to understand when the simulator is under such pressure that it needs help to distribute the load. We’re not ready yet to provide a production-ready mechanism that brings true scalability within this context. So we’ve decided it’s best to go back to the drawing board on this one.

1.6.0 will be the last release (for the time being) that still offers support for games that use Multi-Room Simulators.

And Much More

We’ve gone through a handful of highlights we’ve introduced for release 1.6.0. But it doesn’t end there. For a full list of changes, as usual, check the Release Notes.

Try coherence now

Contact us

Written By

coherence

Published in: News
April 28, 2025