Why porting games to different platforms is important

Find out what game porting is and find out why cross-platform games are more popular.

Game Porting and cross-platform games

Cross-platforming is on the rise right now. More and more games are appearing that have this feature. Fortnite, Call of Duty, and Street Fighter are all different genres, differently implemented, but have cross-platform features to one degree or another. 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. That is why a lot of developers started thinking about porting games to different platforms or creating them cross-platform from the start.

Why make the game cross-platform?

It's great for players: they don't have to choose which device to run the game on – you can play with your friends without worrying about whether they're in the player database. For game developers, it's beneficial as well, because the user base is no longer segmented across platforms – instead, you can organize one large pool of players and create a richer multiplayer experience with more complete game sessions

 

 

Creating a full-fledged cross-platform game is not that easy. Before making it you should consider a few things:

  Choose a Concept

There are quite a few different concepts related to cross-platform, but let's start by introducing the most necessary ones: cross-play, cross-progression and cross-buy.

Cross-Play is exactly what people think of when they hear about cross-platform gaming: combining users playing on different platforms into one multiplayer session. That is, when Xbox players can face off in a game alongside PlayStation or Steam players.

Cross-Progression (or Cross-Save, cross-save) refers to 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-buy) is a purchase made on one platform and then appearing in your library on another. Its close relative is BOPA (Buy Once Play Anywhere), but we'll talk more about that later.

  Create your own online domain

When you release a game on different platforms, you get access to specific support services of each platform, and they are really handy. If you want to make a cross-platform game, unfortunately you can't use most of these services because the stats on Steam, for example, don't match the stats on Xbox or PlayStation. You have to have your own set of services: stats, identity systems, matchmaking, etc., that will tie together data from different platforms.

So, what do you need first of all?

 An identity and account system;

An e-commerce system (especially if you're going to monetize your game with in-app purchases);

Other mandatory services according to certification requirements.

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

  Learn more about your players.

Let's say your target player has:

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

 

How will the game know it's the same person? This is where the so-called account linking system comes in. Linking accounts allows you to link your shared account to accounts on different platforms.

If you play Call of Duty, you probably know that the latest installment of the franchise is cross-platform. And if you want to find your friend on the system, you'll need to use an Activision ID. So, if you play on Xbox, you won't be able to find your friends who play on PlayStation, because the two player bases don't overlap - but at the same time, data about all players on both platforms is stored in Activision ID.

This unified identification system will be a fundamental part not only for the current game, but also for all your future projects. It is what connects you to other platforms.

Here's one more piece of advice. Pay close attention to GDPR and CCPA requirements: their regulations must be taken into account at an early stage to avoid unpleasant consequences. In addition, new platforms will start to appear sooner or later, don't you want to be able to add them to your game as they appear?

Thus, the identification system is needed in order to exchange a Steam token for his own. The player can then use this token to activate the services he needs.

Let users play together

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

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

If you choose your own game engine, go for one that is more cross-platform friendly: such engines already have a built-in mechanism for doing client-server synchronization. If you decide to create your own engine, of course you are free to do so, but keep in mind the following.

 

When you want your users to start connecting to other players, you'd better not use the direct P2P route. Considering that you can't use built-in platform libraries like Xbox Secure Device Associations, this task gets pretty confusing, especially when we're talking about connecting a console to a PC. Tip: Use either a dedicated server or a peer-to-peer relay server to create your network.

One last thing: since you're now dealing with platforms of different capacities - PCs, consoles - let your simulations use a fixed 30 frames per second. You can leave the rendering as it is.

Allow players to continue playing on a different platform

Like many others, the author spent hundreds of hours in The Witcher 3: first playing on PlayStation, then decided to switch to Switch, because of which I had to start all over again, because in The Witcher there is no possibility to continue the game on another platform. Eventually the developers did organize a cross-save between Steam and Switch. But we are talking about PlayStation 4. However, it is likely that sooner or later 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 – entirely your choice: you can store them in the cloud as BLOB-objects, you can in the form of statistics, you can in the form of a string in the attributes of the profile. The main thing is to reach the goal of determining that you are still you, regardless of whether you play on Switch, PlayStation or PC.

Also, speaking of cross-platform, we can't help but mention SPOP and MPOP.

SPOP (single point of presence) means single point of presence when you allow only one connection to your account at any given time, and logging into the game on one platform means automatically logging out of it on another. In this way, SPOP can protect you from appearing in the same location from different platforms at the same time. This is the simplest and safest way to implement it and avoid data stagnation.

MPOP (multiple points of presence) is a very different way of behaving. It allows you to have multiple connections that logically point to the same account. It can be very difficult to organize, because 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 maintained correctly.

And while in most situations it is more convenient to use SPOP, you should carefully consider the advantages and disadvantages of one or the other for your game.

Unify your commerce

Let's talk about the difference between a main store and an auxiliary store.

The main store is the store that you have to set up on the platform side, where real money transactions take place, while the auxiliary store is the one you control in the game.

The main store has to be set up on each individual platform first, and then go to different regions, which is already quite a challenge-especially since a cross-platform game has no API to do that. It's a painstaking manual process that you need to do for each individual platform. So it's better to keep the main store as simple as possible, and already arrange the in-game store the way you want it.

Buy once, play anywhere (BOPA)

Note: the following 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 will then appear in their purchases on any other platforms. Why is this important?

Players now don't have to worry about which platforms to buy-they can just buy the game. For game developers, the benefit is that they can gather their players into one base, expand their brand and attract traffic to their store.

Let's list the three elements that BOPA needs:

  • A unified identity system;
  • A single system for granting trackable access rights;
  • Granting access rights in your cross-platform store without the need to enter a key: the ability to call another platform's API to grant rights to the current one.
  • It's worth noting that the last option is not widely available, only some platforms support it.

Cross-platform is ideal for games with a long-term plan to support the project. As you have probably already realized, making such games is quite non-trivial: you need a large team, a lot of time and money to have the proper infrastructure to support it.