First, let’s take this opportunity to announce that we’re going to be present at the GDC 2023. If you’re visiting, and the screenshot below intrigues you, book an appointment here for an in-person exclusive DEMO.
With that out of the way, let’s talk about the upcoming version 1.0 of coherence, the multiplayer SDK for Unity. There’s still a ways to go until June, but we’re already confident enough to give you all some idea of what’s coming. Here’s a list of what you can expect.
coherence Self-Hosting
Starting from 1.0, developers will be able to launch their games without having to rely on coherence-managed server infrastructure. We will start with client-hosting on Steam through Steam sockets and add more platforms in future releases.
Lightweight Lobby Rooms
Lobby and matchmaking functions are key for managing players online. From the technical side of things, lightweight Lobby Rooms will use 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.
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.
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 player play games made with coherence from any networks, even the restricted ones.
Floating Point Origin for Pin-Point Accuracy in Expansive Game Universes
This is a feature intended to allow for the largest of game universes. Unity uses single-precision, 32 bit floating point that inevitably leads to large errors in object positioning as distances from the point of origin grow. From a distance of 180 000 km, the position of the object can be off by as much as a full kilometer. Floating Point 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.
Congratulations! Your CoherenceMonoBridge has Evolved into a CoherenceManager with New Abilities!
Much like Pokémon, CoherenceMonoBridge has evolved into a much more usable, maintainable and customizable CoherenceManager! Crucially, there are two new major functional upgrades as well.
Fully Customizable Asset Pipeline
Firstly, CoherenceManager in 1.0 will offer a fully customizable asset pipeline that includes loading and instantiating at runtime.
Object Pooling
Secondly, we’re introducing object pooling to allow for full control over how network entities are created, destroyed, or recycled.
Front End Upgrade
Our front end has undergone a complete technical and visual overhaul encompassing both the coherence.io website and the Dashboard. The list of improvements includes increased responsiveness, streamlined design, better accessibility, and higher security.
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.
Discuss and share your thoughts on our Discord!