Tips for developers making a cross-platform game
AccelByte's Raymond Arifianto shares strategic and technical insights on cross-platform design
It wasn't all that long ago that developers were lamenting the stubbornness of certain platform holders over allowing cross-platform play on their consoles. But now, more and more big games are making use of the technology -- and a handful of smaller titles, too.
AccelByte VP of tech Raymond Arifianto believes that cross-platform's rise will only continue, and in his GDC 2020 talk "Is your game cross-platform ready?" he offered several tips for developers considering cross-platform implementation -- including cross-play, cross-progression, and cross-buy -- in their titles.
Know what services you can and cannot use
"When you are shipping games on different platforms, there are platform services available for you to use," Arifianto said. "They are great. Xbox Live, Steamworks -- they have robust capabilities. If you want to make a cross-platform game, unfortunately, you cannot use most of those. You'll have to have your own set of services and your own matchmaking, which links behind the scenes and connects to the different services.
"So what can you use from a first-party platform? You definitely have to use identity and account. You also have to connect and use their e-commerce services, especially if you are intending to monetize your game with in-app purchases. And then anything the platform requires you to use. As an example, if you ship games on Xbox One, I'm sure you know you have to use their multiplayer session directory, even if you have your own matchmaking service."
Know your players
How does a game identify a player across Steam, Epic, Xbox, PlayStation, and Switch?
"This is done by something called account linking," Arifianto said. "With account linking, you want to be able to link your common account with the different varying platform accounts. You've probably already seen some of these... If you have a Ubisoft Uplay account, you go to their website and that's where you actually link the different accounts. Same thing with Epic Games.
"If you play Call of Duty, the latest Call of Duty has cross-platform capabilities. When you're looking for your friends in Call of Duty, you have to use the Activision ID. Even if you're playing in Xbox, you can't search your friends who are playing in PlayStation with their PlayStation IDs, because the game is not going to know about it.
"This whole unified account system is the fundamental piece for the rest of your cross-platform games."
Arifianto added that developers should be thinking early on about compliancy with regulations such as GDPR and CCPA, as well as ensuring from the start that they have a way to add new platforms to their account system easily.
Get people playing together
Arifianto outlined a list of components developers need to build -- or at minimum, take into consideration -- for most games in order to connect players into the same sessions cross-platform:
- Matchmaking
- Session management
- Player profiles
- Stats
- Leaderboards
- Achievements
- Rules
- In-game text and voice chat
"If you are in a position to choose your game engine, make sure the game engine you are choosing is friendly with cross-platform," he continued. "What I mean is that it already has a built-in mechanism to do client-server synchronization.
"When you want your clients to connect to the other players to play, I would suggest not going with the direct peer-to-peer route. Especially due to the fact that you cannot use the built-in platform libraries, like the Xbox secure device associations, it gets pretty hairy especially when we're talking about console connecting to PC. I would suggest going with either a data-gated server, or use some kind of relay server assisted peer-to-peer to build your mesh."
He also suggested having server simulations locked -- everyone's using 30fps now, but the number can be flexible. Rendering, however, does not need to be locked.
SPOP vs. MPOP
Arifianto recommended implementing cross-progression where possible, and advised using single point of presence as opposed to multiple to allow players to keep playing a single game save across multiple platforms.
SPOP, he said, 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. It is, per Arifianto, the easiest and safest to implement.
MPOP, he said, can get very complex, as it effectively creates a guest account when users log into more than one at a time, and can cause issues with ensuring that progress is saved correctly. Though he recommends SPOP in most situations, developers should consider the advantages and disadvantages for their specific game carefully.
Beware of extra certification requirements
Arifianto quipped that there are three things guaranteed in life for a game developer: death, taxes, and failing a certification on one platform when releasing a patch.
"Certification can be pretty tricky," he said. "It's quite a long list. It varies from platform to platform. And one thing to keep in mind about making a cross-platform game is that there is actually an extra section that talks about cross-platform games.
"Provide yourself enough buffer to go through the platform certification and understand what is required."
Finally, Arifianto urged developers to think carefully about whether or not cross-platform play, progression, or buy actually made sense for their games before trying to design around it.
"Cross-platform is ideal for developers who want to make several cross-platform games in the future, or if you want to make a game that you are going to maintain for a long time, that has a long live-service plan," he said. "Building a cross-platform game is non-trivial. You need time and effort, and also you need investment to actually have the proper infrastructure to support it."