All You Need to Know About coherence 1.0
The founders tell the story of how coherence got started - and show you around Malmö, Sweden, where our HQ is located!
It’s not every day that you get to release the 1.0 version of your work. It feels like we should mark the occasion at least in some way, doesn’t it? Then, humor us for a moment, before we dive into the facts and details of this launch.
We get asked this question a lot. By our partners. By our parents. By our friends. By our investors. And by you, the game developers. It’s always a little difficult to give the answer that covers everything. The question is - what is coherence?
- It’s a dream to make multiplayer game dev so easy that a single developer could do it.
- It’s a team of 31 people spread across 16 countries, ranging from Odessa, Ukraine to Vancouver BC, Canada.
- It’s a way to work, so different from what many of us are used to, that it may as well be called coherence.
- It’s a mindset of transparency, honesty, accountability, friendly acceptance, and humor.
- It’s technical brilliance forged in the fires of countless developed games from world-renowned triple-A titles like Crysis or Battlefield to small award-winning indie games like Limbo or Blueberry Garden, now brought to bear on solving multiplayer.
But most of all, coherence is a new way to think about multiplayer. Multiplayer used to be a hard problem, a resource sink, a source of frustration and too often, a failure.
We’re changing all that, today.
Come and do it with us.
New Features in coherence 1.0
Let’s take a closer look at what 1.0 is bringing!
coherence Client-Hosting & Steam Datagram Relay
Starting from 1.0, developers will be able to launch their games without having to rely on coherence-managed server infrastructure. Client-hosting using the Steam Datagram Relay (SDR), Steam’s private gaming network, is now available and means that you can have reliable Client-to-Client networking for free. As game developers ourselves, we want you to both have the options and (budgetary) flexibility that this feature allows. Truthfully, we will probably lose a little income by enabling this, short-term. However, we’re looking towards the future and playing the long game. Anything that helps your games grow on our platform will ultimately lead to a better future for you, your games, and coherence itself.
PS - creating a custom relay is also supported, and we provide a lot of code examples to ease your way into it in the Client-Hosting article.
Floating Origin for Pin-Point Accuracy in Expansive Game Universes
While we already rolled this feature out in the latter updates to the 0.10 release, it bears re-mentioning. This is a feature intended to allow for the largest of game universes. Unity has a well-known limitation of offering high precision positioning only within a few kilometers from the center of the world. A common technique to get around this limitation is to move the whole world underneath the player. This is called floating origin.
On top of this, Unity’s solution for object positioning uses single-precision, 32 bit floating point that inevitably leads to large errors in object positioning as distances from the point of origin grow. Floating Origin mitigates this by using a double-precision 64 bit floating point value for the point of origin, allowing us to position game objects with sub-millimeter precision even at distances exceeding 1 billion kilometers.
Read an Intro and a Quick start guide for Floating Origin.
Lobby Rooms and Matchmaking
Lobby and matchmaking functions are key for managing players online, but can be time-consuming to create if you’re in a pinch - at a game jam, for example. To make it easier, coherence now offers standard Lobby and Matchmaking solutions that you can adapt for your game. From the technical side of things, Lobby Rooms uses a database as storage and therefore won't require a Replication Server for the matchmaking and lobby stages, which will significantly reduce cloud costs for developers. The whole thing is explained in the Lobbies articles, the first explaining the basic principles and the second giving practical instructions on how to get it working.
Full Control over World Persistence Data
Currently, persistence data is stored in the coherence Cloud and developers have no access to it. Starting from version 1.0, persistence data will be stored in a versioned JSON format. This means that persistence data can now be downloaded, inspected, modified and re-uploaded. Effectively, developers can take full control over persistence data for when there are changes in the game logic or content and the World is restarted on a new version. Persistence is explained in our Lifetime articles.
TCP Fallback for Restricted Networks
This is one of the takeaway lessons from the Global Game Jam® 2023, where we had a lot of game devs using coherence from behind the firewalled networks of universities and colleges. By default, our connections use the UDP protocol that is very fast even in case of packet drops. However, in restricted networks UDP packets can take second priority or be blocked completely. Starting from 1.0, this issue will be solved by offering a graceful fallback to TCP that should let players play games made with coherence from any networks, even the restricted ones.
Congratulations! Your CoherenceMonoBridge has Evolved into a CoherenceBridge with New Abilities!
Much like Pokémon, CoherenceMonoBridge has evolved into a more powerful, maintainable and customizable CoherenceBridge! Crucially, there are 4 new major functional upgrades as well.
Scene Transitioning Support
CoherenceBridge in 1.0 will offer more out of the box options to keep the Component alive when you transition your game from one Scene to another. You will have a lot more control with our new API options where you will be able to filter entities depending on the Scene they are living in, as well as options to keep your CoherenceBridge alive when you transition Scenes.
Access to coherence Cloud API
The revamped API to access the coherence Cloud services will be available from CoherenceBridge itself. In the inspector you will find more options to customize the behavior of the coherence Cloud API.
Customizable Asset Pipeline
In coherence, we are aware that Unity offers a lot of different options and possibilities to load content into your game. Because of that, we have completely revamped our Asset Pipeline capabilities to offer out-of-the-box support for Addressables, Resources and Direct References, but most importantly, we now offer the possibility to overload the implementation very easily so you can hook your own Asset Loading system (be it a custom Addressable pipeline, using vanilla Asset Bundles, etc).
But that is not all, in a similar fashion, we also offer different default behaviors for how your GameObjects will be instantiated and destroyed at runtime, and this pipeline will also be capable of being overloaded with your own implementations. One of these new default options is Object Pooling.
As mentioned before, coherence will offer an out-of-the-box Object Pooling solution in 1.0. You will be able to use all these new exciting options both for GameObjects that you spawn yourself, and for GameObjects spawned by the network, with a very seamless integration.
Read more in our Asset Management article.
Front End Upgrade (Yes, We Have Dark Mode Now)
Our front end has undergone a complete technical and visual overhaul encompassing both the coherence.io website and the Dashboard. The list of improvements is quite substantial, starting with responsive design that now allows the comfortable use of Dashboard on mobile, re-worked onboarding for first-time users, improved contrast and accessibility, and of course the addition of the ever-popular Dark mode to our website (you’ll find the toggle at the bottom of the coherence.io landing page).
Revamped UI Samples
Last but not least, we have expanded the set of connection dialog templates for Sample UI that developers can not just import, but fully own and customize as needed. The underlying APIs have been simplified as well, which should make it easier for devs to connect to coherence in various ways - talking with the backend, creating Rooms, Worlds, Lobbies, etc.
Join our Community, for help and a time-limited Badge!
FAQs, support and discussion on our forums.
If you prefer, come discuss and share your thoughts on our Discord!