Saving systems are an integral part of the videogame experience, as words are to books or images are to films, to the point where we take this system for granted. It would feel odd for any gamer when a game doesn’t include one. So deeply embedded have the saving systems become, that videogames have invented multiple ways saving can become part of the gaming experience itself, from checkpoints in survival horrors, to its challenging aspects of the soul-like genre.
The first videogame to allow score saving was Space Invaders, as far back as 1978! Even though the most well-known groundbreaker was Legend of Zelda in 1987, Pop and Chips was the one that pioneered the checkpoint system two years in advance, before which any kind of saving required some form of password or code to recover the information, and take players back to the level where they had left the game.
We’ve come a long way since then. Having a game without any kind of saving system is near unthinkable, even for those titles with permadeath mechanics in which players start right from the beginning when they get killed. As of 2022, it’s very common for videogames to use a cloud save system in which progress is stored online. Developers have plenty of cloud save architecture options that offer their users a lot of benefits that are especially useful if videogames are designed to have a cloud save from their early stages of development, rather than implementing such a system later in the development process. For instance, a preemptive approach can help developers offer a good level of data persistence and security, as well as the possibility for users to migrate their save files onto other platforms or devices, a very valuable service as users update to newer hardware.
What’s smart to save?
If developers want to keep a copy of all the players’ saved progress from the early stages of game design and development, they’ll have to always check what users can access from the cloud, and cross check it to what they may have stored locally for the session. If developers copy all the data, it will occupy too much server space unnecessarily, as well as increase the volume of data transfer, both of which translate into extra costs.
In TagWizz, we emphasize strategic backend over a totalizing backend approach. This means developers can save lots of specifications for items, cards, characters, and other details based on identifiers with stats and statuses for every gameplay element. But they must be selective on what things they should save: for example, in a skill-tree, the order of some of the skills, as well as the prices of in-game currency they cost, are already known. So instead of saving all the tree within a user profile including the time it was unlocked or at what price point, developers can rather save only the ones purchased, or as an array of statuses where developers already know which position is related to which ID of the skill-tree.
Knowing when something happened or if it was done helps developers gather data for analytics purposes, but it doesn’t benefit the player experience in any visible way. It’s sometimes better to save that data as a tracker in a telemetry system rather than as part of a save data storage.
How to identify users
Identifying users has to do with the tools and mechanisms developed to corroborate the identity of each user. If a game is played across different platforms, there must be a way to identify what save corresponds to what person. This is where the profiles come in. Profiles are designed to identify players, and associate saves to their respective owners, even more so when we talk about cross-save-platform support.
First and foremost, developers need to make sure that the same version of a game is available in all and every platform. When there are differences in a game’s version across platforms, players should be able to keep playing the game and saving their data, even if the new data differs from the old, aiming always at avoiding game-breaking errors. There are multiple ways of getting the users to create an account to identify them, but a really safe way to do it is by using an existing OAuth System (like Google Play Game Services, Microsoft’s XGame Saves, AWS GameKit and many others). Developers just need to make sure that they have enough options available for all of their players, in order to have a unique ID for each player logging as a result.
However, for various reasons, some developers might want to keep the Cloud Save for security or persistence reasons, without focusing on profile creation. They should always have anonymous accounts created for everyone, as long as they don’t have cross-platform-save available.
How to choose the cloud save system
There are many options in the market to store videogame save files in the cloud. It would be wise for developers to check them all before making their minds. Depending on the platform the app is planned to run on, it may be better, in terms of performance and solution, to use the Cloud Save System created for that platform. There are solutions which allow developers to use the platform servers, or just use the technology, but save everything directly in the videogames’ servers.
Each platform offers different options in terms of cost and availability. For example, Google Play Games Services system is called “Saved Games”; it’s free to use for developers, but it will occupy space in the player’s Google Drive storage. On the other hand, Microsoft’s XGameSave only allows developers to save up to 256MB per user, and to upload up to 16MB per call to their API. AWS GameKit offers a better cross-save experience, but requires an AWS setup running.
The good thing about using an existing system for Cloud Save is that developers only need to make sure they fully understand their videogame’s needs, as well as the experience they want to offer their users. If none of the options available in the market meet a videogame’s criteria, developers can always build their own Save System from scratch to match their expectations.
The usefulness data persistence
It is good to keep a local save file if a game supports offline playability. The trick is to synchronize local save files with the server as soon as the videogame is back online. If the game is only playable online, it makes it easier to save player data in real-time. The issue here is to always consider differences in Internet connectivity between users, the reason why in TagWizz we always advise our clients to smartly select what information to save and what not to save.
To keep the integrity of a game, it’s useful to have the same data in the cloud as in the local save file. Whenever a user tries to cheat by altering the local save file data, the cloud save file can maintain game integrity. It checks the new information being uploaded by the user through scripts used for that purpose. For example, a script can set a time constraint for leveling up too fast. Whenever the data in the cloud says a player had a certain level the last time he was online, and suddenly the player’s level, when he logged in again, is impossible to achieve in that timeframe, the server can flag that user for banning, blocking or receiving any other kind of penalization.
One of the main benefits of having this data saved online is persistence; it allows users to switch back and forth between platforms running the same game with a single save file, and without losing any progress. This is also the first step to have a multiplayer videogame that allows player interaction, without being concerned for whether it is asynchronous or in real-time.