Originally published at https://gamesindustry.biz, republishing here for more people to enjoy.

A fundamental but often overlooked feature of video games is tracking  player progression. This ability to lay down the controller and pick up  where you left off in the game in another time or place is an expected  video game feature.

When we talk about storing player progress, we need to talk about  everything that the game needs to remember about the player. This may  include the last town the player has visited, the character level of the  avatar, or how many enemies the player defeated (and should stay down).

And then there's the player statistics -- how many times you've swung  your sword, how many headshots you did, how many times you defeated your  all-powerful father in Hades, your best time, and so on.

cross platform and progression between different consoles and generations - how to

With the implementation of various cloud save features approximately a  decade ago, players were introduced to the comfort of having progress  saved in the cloud, so you can pick it back up when you move from device  to device.

However, with the recent trend of cross-platform  gaming, there is no consistent way for games to implement  cross-platform, or even cross-gen cloud save features.

Fans were  delighted when they heard about Witcher 3 supporting cross-save, but it  turned out to be pretty limited in nature -- Switch users are able to  load and save their progress using Steam or GOG. Currently there are no  plans to support other platforms, such as Xbox or PlayStation.

how to make game that's cross played in different consoles and generations

And  what does that mean for cross-progression between sequel games such as Overwatch 2, with Blizzard promising that players would be able to carry  all progress from Overwatch, in addition to cross-play between the two  games?

In this article, we will go over the basics of platform  cloud save, and how to design platform-agnostic capabilities for your  game to track your players' progression across platforms, or even across  different games within the same franchise.

Cloud save

Cloud save was introduced about a decade ago,  popularized by Steam and Xbox Live -- it empowered players to play a  game on one device, and continue it on a different one. Fast forward to  today, most platforms now provide some level of cloud save -- whether  it's free for all, or behind a premium membership (such as PSN and  Nintendo Switch Online).

cloud game system for cross platform and cross generations game

How does it work?

For most  platforms, you would carry on to read and write local files using the  APIs provided by the platform, and that platform will take care of  uploading and doing timestamp validation on the files.

For example, this is the behavior for Steam cloud save:  "The Steam Cloud provides an easy and transparent remote file storage  system for your game. Files specified in the Auto-Cloud configuration or  written to disk (created, modified, deleted, etc.) using the Cloud API  will automatically be replicated to the Steam servers after the game  exits.

"If the user changes computers, the files are automatically  downloaded to the new computer prior to the game launching. The game  can then access the files by reading them through the Cloud API or  reading them directly from disk as usual. Avoid machine specific  configurations such as video settings."

the basic architecture of cloud gaming

The benefit of Save game is that it is local files on the device, so it works best for offline single player games.

However, there are limitations with having client side save game:

  1. Security  and tampering -- while you can roll out your own encryption mechanism,  local save games are prone to client side tampering; which means you  cannot really store important multiplayer data such as power level, ELO  rating and premium currency in local save.
  2. Most (if not all)  platforms handle cloud save per Title ID/App ID. That means that if you  release a sequel to your game, that's considered to be a separate game,  which means that it will have a separate Title ID/App ID. And since one  game cannot query and manage the cloud save of another game, your two  games will not be able to share game progressions.

To get  around some of these limitations, a lot of games store player data on  the game backend as well, in addition to the local save.

This  ensures that certain player data (that only game servers have the  ability to write to) will be secure -- such as ELO rating, to be used  for fair matchmaking. The obvious drawback is players have to be online  to retrieve the values.

game cloud save and matchmaking backend for cross platform game

A platform-agnostic way to store your player progression

Now  that you are familiar with the basics of storing player data on the  backend side, we can extend that to support cross-platform, cross-gen,  or even cross-titles. The key is to build a platform-agnostic solution.

If  you can identify your players, regardless of what platform or Device or  even TitleID they are using, you can build mapping logic on your  Backend to enable cross-progression. I discussed this in my 2020 GDC talk, which was covered on the GamesIndustry.biz Academy.

By  using a technique called Account Linking, you can create a federated  account on your backend to identify all players on your games, whether  they are playing on Steam, PS4, PS5, Xbox One, Series X, Switch, and so  on.

With that information, you can then decide whether you would  want to segregate your Player Storage per platform, or if you opt to go  with a more unified strategy.

tracking game player progression across different platforms and console generations

This will also allow you to be creative to support cross-game promotion and progression for your games.

One  way to achieve this is to segregate your data to store the player data  that should be shared across multiple games in its own partition that  multiple games have access to read and write to.

One word of advice: if you want to enable unified storage for the same  players across multiple platforms or titles, you want to consider  implementing SPOP (Single Point of Presence) for your backend system.

SPOP  is when users can only be logged into their account on one device at a  time, and logging into one will log out the other. This will ensure that  all write and read operations are safe, and you are not dealing with  non deterministic behavior of players manipulating their player state  from different locations at the same time.

In summary,  various platforms provide great quality-of-life cloud save features  that games can utilize. As we are entering the cross-platform gaming  era, you will discover that you will need some kind of platform agnostic  cloud save system that lets you design how you store player  progression, to get around the various platform limitations.