israel-palacio-778505-unsplash

Online services are coming to SpatialOS

19 March 2019

Launching and managing online games is difficult. After all, there is more to running an online game than just a game server and networking stack. Building even the basic versions of the services required to manage an online game, and provisioning the infrastructure to run them, takes time and effort.

At Improbable, we want to enable developers to create online games more effectively and spend more time on gameplay. To do this, Improbable will provide developers with a flexible way to build, host and update any online service, together with customizable starting points for several such services. These services will be used to provide cross-instance functionality, such as authentication and inventories, as well as supporting any “meta-game” (that is, any game logic that spans multiple game instances).

Which online services are we building initially?

It is early days, but we want to give you a taste of what we’re building below. Initially, we will provide basic implementations for the following services, each of which you can modify to your needs:

  • An Authentication service that provides out-of-the-box integration with PlayFab and Steam for mapping players with their PlayFab/Steam accounts. To integrate with SpatialOS, we will make use of our Platform SDK for player authentication.
  • Profile service that provides a way to map the player’s account to one or more in-game profiles. Profile IDs are then used to refer to or associate data with an in-game profile. Other services can make use of Profiles, such as Inventory and Matchmaking.
  • An Inventory service that provides an easy way to associate in-game items with profiles, supporting the most common cross-instance inventory-management operations.
  • Matchmaking service that provides the basic functionality for allocating players to game instances, including support for parties and other common features.

We will be sharing the source code for all of these services, so you will be able to pop the hood and customize them to your needs. They will be API-first, so you will be able to integrate third-party solutions. Finally, everything will work cross-platform, enabling you to share data between game instances for mobile, console and PC clients.

How will our online services work?

These services will run in a common execution environment, which includes metrics, logging, analytics and a database out-of-the-box. You will be able to easily run the environment, either locally or within a public cloud, and deploy a service to it through simple commands.

Finally, we will make it easy for you to write and deploy your own services within this environment. This means you can write custom online services or a rich metagame that we will host for you in the public cloud. You’ll also be able to make use of these services from day one of development, meaning you can set up playtests earlier in your development cycle.

online-services
Tech-stack diagram showing how online services will run in our common execution environment, connected to multiple game instances.

What's next?

We are working hard to start bringing you these services in Summer 2019. We want to work with developers and our community as we build these services.

We encourage developers to join us in our forums and Discord to help shape our services offering. Or, sign up to SpatialOS to stay tuned over the coming months.