How to prepare the game for porting to PC and console

The benefits of cross-platform games have long been discussed in the circles of gamers, but little coverage among developers. There are not many articles about the basic things needed to create a cross-platform game.

However, cross-platform is now on the rise. There are more and more games with this property. Fortnite, Call of Duty, Street Fighter - they are all of different genres, implemented in different ways, but to one degree or another they have cross-platform features.

Andersen Horowitz wrote on his blog that games have historically been segmented by different platforms, but now with the growing popularity of cross-platform, the number of multiplayer games is also growing more and more.

Why do you need to make the game cross-platform?

This is great for players: you don’t have to choose which device to run the game on - you can freely play with friends without worrying about whether they are in the player database.

For game developers, this is also great, because the user base is now not segmented by different platforms - instead, you can organize one large pool of players and create a richer multi-user experience with more complete game sessions.



Great, so let's port our game to several platforms!

Of course it sounds cool, why not. That's just ...

In The Lord of the Rings, if you remember, the heroes also discussed at Elrond’s advice, they say, let's just do what we should, to which Boromir said:



And all because Boromir knows: creating a full-fledged cross-platform game is not so simple.

So the idea came up to prepare material for those who are considering creating their own cross-platform game.

If you have already published games before, it means that you dealt with their sending to various platforms and you know the capabilities of each of them, which will be a good basis for today's material - and, in addition, will help at the initial stage of preparation.


9 things you need to consider before creating a cross-platform game


Tip # 1: Get familiar with the terminology There are

quite a few different concepts related to cross-platform, but first we’ll introduce the most necessary ones: cross-play, cross-progression and cross-buy.

What is the difference?

Cross-play (cross-play, or cross-play) is just what people think when they hear about a cross-platform game: combining users playing on different platforms into one multi-user session. That is, when Xbox players can collide in a game with PlayStation or Steam players.

Cross progression(or Cross-Save, cross-saving) is called the ability to start playing on one platform, save your progress and continue playing on another platform. This can be found in both single-player and multiplayer games.

Cross- buy (or cross-commerce, cross-purchase) is a purchase made on one platform, and then appears in your library on another. Her close relative is BOPA (Buy Once Play Anywhere: once bought - play anywhere), but we'll talk about this later.

Tip # 2: Create your own online domain

When you release a game on different platforms, special auxiliary services of each platform become available to you, and they are really convenient.



If you want to make a cross-platform game, unfortunately, you cannot use most of these services, because the statistics on Steam, for example, do not match the statistics on the Xbox or PlayStation. You must have your own set of services: statistics, identification systems, matchmaking, and more - that will link together data from various platforms.



So what do you need first?

  1. Identification system and accounts;
  2. E-commerce system (especially if you are going to monetize your game using in-app purchases);
  3. Other required services in accordance with certification requirements.

For example, Xbox certification requires that you use MPSD (multiplayer session catalog), even if you have your own matchmaking system, because they subsequently use all the information that you store in MPSD to enable Rich Presence in the Xbox Dashboard.

Tip # 3: Learn more about your players

Consider an example.

Let's say a player has:

  • Steam account;
  • Epic Store Account
  • Xbox account
  • PlayStation Account
  • Switch account
  • Etc.

How does the game know that this is the same person?

This is where the so-called account binding system comes to the rescue.

Linking accounts allows you to link your shared account with accounts of various platforms.

If you play Call of Duty, you probably know that the last part of the franchise is cross-platform. And if you want to find your friend in the system, you will need to use Activision ID. So, if you play on the Xbox, you will not be able to find your friends playing on the PlayStation, because these two player bases do not overlap - but at the same time, data on all players on both platforms is stored in Activision ID.



This unified identification system will become a fundamental part not only for the current game, but for all your future projects. It is she who connects you with other platforms.

Here is another tip. Pay close attention to the requirements of GDPR and CCPA: their standards must be taken into account at an early stage in order to avoid unpleasant consequences. In addition, sooner or later new platforms will begin to appear, do you want to be able to add them to your game as they become available?

The following is an example of how to implement Steam account binding.



Thus, an identification system is needed in order to exchange the Steam token to your own. Then the player can use this token to activate the services he needs.

Tip # 4: Let users play together

Now that you have successfully identified your players using the account linking system, the next step is to get users to play together.



So, it's time for crossplay.

In order for you to connect players to the same multiplayer session with all their friends, you need to organize a matchmaking system, manage game sessions and a number of services - the full list depends on the needs of a particular game. Thus, first you identify users and bring them together regardless of the platform on which they play, and then matchmaking organizes them into gaming sessions.



A few notes on multiplayer and connection quality.

If you choose a game engine yourself, take a cross-platform friendliness: such engines already have a built-in mechanism for performing client-server synchronization. If you decide to create your own engine, of course, you have the right to do it, but keep in mind the following.

When you want your users to start connecting to other players, it’s best not to use the direct P2P route. Given that you cannot use the built-in platform libraries like Xbox Secure Device Associations, this task becomes quite confusing, especially when we talk about connecting the console to a PC. Tip: Use either a dedicated server or a relay peer to create your grid.

And the last: since you are now dealing with platforms of different capacities - PCs, consoles - let your simulations use a fixed frequency of 30 frames per second. At the same time, rendering can be left as is.

Tip # 5: Let the players continue the game on a different platform

Like many others, the author spent hundreds of hours in The Witcher 3: first played on the PlayStation, then decided to switch to Switch, because of which I had to start all over again, because in The Witcher ”there is no way to continue the game on another platform. Over time, the developers still organized a cross-save between Steam and Switch. True, it was here about the PlayStation 4. However, it is likely that sooner or later the CD Projekt RED will set up cross-platform and between them - the main thing is that the right direction has already been set.

How to store data is entirely your choice: you can store it in the cloud as blobs, you can as statistics, you can as a string in profile attributes. The main thing is to achieve the goal in determining that you are still you, regardless of whether you play on Switch, PlayStation or PC.

Also, speaking of cross-platform, one can not help but mention SPOP and MPOP.

SPOP(single point of presence) means a single point of presence when you allow only one connection to an account at any given time, and entering a game on one platform means automatically logging out of it to another. Thus, SPOP can protect you from simultaneously appearing in the same place from different platforms. This is the easiest and safest implementation method that avoids data stagnation.

MPOP(multiple points of presence) is a completely different way of behavior. It allows you to have multiple connections that logically point to the same account. Organizing it can be very difficult, since MPOP must create a guest account when users log in to the same account at the same time, which can cause problems with ensuring that progress is saved correctly.

And although in most situations it turns out to be more convenient to use SPOP, you yourself must carefully consider the advantages and disadvantages of a particular method for your game.

Tip # 6: Unify your commerce

Let's talk about the difference between the main and auxiliary stores.



The main store is a store that you must configure from the side of the platform where operations with real money take place, while the auxiliary store is the one that you control in the game.

The main store must first be set up on each individual platform, and then go to different regions, which is already a rather difficult task - especially since the cross-platform game does not have any API to do this. This is a painstaking manual process that you need to carry out for each individual platform. Therefore, it is better to organize the main store as simple as possible, and to equip the in-game store the way you want.



The above is an example of how the system works, where players can make purchases on Steam, and the security of these purchases is ensured by a single e-commerce system.

The following is a Steam purchase flowchart.



Tip # 7: Beware of additional certification requirements for cross-platform systems.

Three things are guaranteed in your life:

  1. Death;
  2. Taxes
  3. Certification failed on one of the platforms when releasing the patch.

If you have already passed certification before, then you know that it can be quite difficult. It includes many aspects, and this list varies from platform to platform. When creating a cross-platform game, you should keep in mind that for this case there are additional certification requirements.

Recommendation: create an airbag for yourself in order to understand what you will need to successfully pass the certification and take appropriate measures.

Tip # 8: Separate the release and the release

Fortnite has a temporary event that takes heroes from the first season to the second: according to the plot, the whole world suddenly began to collapse and absorb in a black hole.

Interestingly, this event has nothing to do with the activation of the update. When you release a game update, you cannot synchronize it with configuration changes on all platforms, this is a very time-consuming process: you need to contact your account manager, go through the certification process and do many other things.

But this is not the only way with which you can make changes to the game.

Game changes are usually made through:

  1. Game updates;
  2. Patch for data replacement;
  3. Server side switches (Server-Side Toggles).

Server-side switches are server variables that you first define on the server, and then force game clients and servers to respond to changes in these variables. They can be useful for scheduling game events, balancing the game, activating the Kill-Switch and function flags.

Examples of using:

  • Turn on / off functions on certain platforms;
  • Restricting access to certain features in the game for QA.



The diagram above shows how you can arrange a system for responding game clients and servers to changing variables on a server. Push notifications in this case are quite convenient, but not required, instead of them you can just use the pools.

Tip # 9: Once bought, play anywhere (BOPA)

Warning: this is uncharted territory, and the author cannot vouch for the absolute accuracy of the data.

BOPA (Buy Once Play Anywhere) allows users to buy a game on one platform so that it then appears in their purchases on any other platforms.

Why is it important?



Players no longer need to worry about which platforms to buy - they can just buy the game. For game developers, the benefit is that they can collect their players in one base, expand their brand and attract traffic to their store.

We list three elements required by BOPA:

  1. Unified Identification System;
  2. Unified system for granting access rights with the ability to track them;
  3. Granting access rights in your cross-platform store without the need to enter a key: the ability to call the API of another platform to provide rights to the current one.

It is worth noting that the latter option is not widely available, only some platforms support it.

Here are some examples of BOPA implementation.

Scenario 1: after a purchase in your store, the game appears in the Steam library.



Note: the API used here is not publicly available, so you need to talk to your account manager.

Scenario 2: when buying on Steam, the game appears in your store.



In this case, you will not be able to track the purchase process on Steam, so you have to rely on the player in this.

Key points

Cross-platform is ideal for games with a long-term project support plan. As you probably already understood, the creation of such games is very nontrivial: you will need a large team, a lot of time and money to have the proper infrastructure to support it.

Where to start?

Just like in the case of game engines, there are various solutions that you can use to implement cross-platform, so there is no need to create them from scratch - of course, if you do not want it yourself. Some of them: GameSparks, Photon, AccelByte, PlayFab.

Each has its pros and cons - it depends on what you need. They may vary by:

  1. Cost;
  2. Maintenance of various platforms;
  3. Customization and extensibility options
  4. SDK quality;
  5. Reliability;
  6. Scalability.

This article discusses the most basic problems that you may encounter when creating a cross-platform game. For further study of this aspect, you can join, for example, the topic Online Gamedev [BaaS] in Discord.

All Articles