Cross Platform Games
A cross-platform game engine allows you to use the same code base for deploying on on multiple platforms, such as Web (HTML), iOS and Android. A cross-platform game may provide the player with the same or a different experience on different platforms.
When using a single Facebook app ID for a game across multiple platforms, the experience of playing the game on one platform should be consistent with — if not identical to — the experience of playing it on another. Software packages such as Unity or Cocos2d provide support to make this as easy as possible. The Facebook SDKs for these engines follow the same philosophy of write once, deploy everywhere, and will support their build targets as well.
Why Develop Cross-Platform?
Providing cross-platform functionality to your game allows your players to play wherever they want on any device they want to. As devices become less expensive, it's common for players to own two or more gaming platforms, or to switch between platforms. Players who play on 2 or more platforms are significantly more engaged than their peers. Facebook's SDK provides the support you'll need for getting the most out of a cross-platform game.
Supported Game Engines and FB SDKs
Facebook Game Services are provided for the following cross-platform game engines:
Cross-Platform Games and Facebook
Facebook provides a number of game services to enhance the cross-platform game experience. A few of these are described in more detail below.
Facebook Login provides a unique identity that you can use across all your supported platforms. This will help you maintain the game state and preserve progress, and maintain a consistent experience across all platforms.
By using a single Facebook app ID across multiple platforms, your game benefits from organic channels on Facebook on all supported platforms. Implementing Game Requests and Sharing lets players discover and play your game via Facebook, regardless of the device they're using.
Facebook Analytics can be used on all platforms supported by Facebook, enabling you to track analytics for your game across platforms in a single view. You can also segment your analytics by platform, enabling you to compare device behavior or to target unique segments on a given platform.
Best practice for Cross-Platform Games
Handle notifications, requests and stories consistently
All Game Requests sent between players and stories shared by a player should be relevant for all platforms. For games that deliver the same experience across all platforms, this will be straightforward. However, some games have to provide different experiences across platforms.
For example, the achievements on the web version of the game may differ from the achievements on the mobile version. In these circumstances, notifications, requests and stories should be delivered in a consistent manner across all versions of the game.
Here are a few examples:
- Player-to-player Game Requests sent from the version of your game on Facebook to a player on iOS should be available to a recipient playing on an iOS or Android device.
- Stories shared by a player should make sense on all platforms. If a player on the Android version of the game shares a story celebrating an accomplishment, a friend clicking that story on Facebook.com should be taken to the version of the game on Facebook, where they too should be able to complete the same accomplishment.
- Open Graph stories should be crafted in a way that makes them relevant on all platforms. This means that a player who has only played a mobile version of the game should be able to understand an Open Graph story posted by a friend playing the web version. The same also applies to scores and achievements in the game. Scores should be balanced appropriately across all platforms and achievements should be understood on all platforms even if they can't be achieved.
Additionally, mobile games should load natively when a player clicks a channel on mobile devices. Say a player responds to a challenge story in News Feed on Facebook for iOS or Android. One implementation option would be that when the challenge story is clicked, the native version of the game opens. An even better implementation would be to start a new game so the challenged player can start playing right away.
To learn more about this, see the following:
Synchronize Game State across platforms
Your game may be slightly difference across various platforms. For example, it may have a different economy, a different set of achievements and different game play on Facebook.com, iOS and Android. If a player earns an achievement on Facebook.com and then plays on Android, the game should make the achievement attained on Facebook.com visible on Android, even if it can't be earned on this version of the game. Spending time in the game on one platform should reflect progress made on the other platforms.
There are two extremes when it comes to delivering a synchronized cross-platform experience.
- Very different experiences. At one end of the spectrum are games where game play across versions is quite different. The different versions may not even share gameplay mechanics. In this case, it's still important to reward players for accomplishments on other platforms by making their achievements visible, awarding badges or providing more coins, special items or other benefits and privileges. For example, if a player gets to a high level on Facebookk.com and then plays the game on iOS, they might have to start at the beginning of that game, but you could award them a special badge for reaching the high level on Facebook.com.
- Very similar experiences. The other end of the spectrum are games that are fully synchronized across all platforms. In these games, as a player advances on one platform, their state is fully synchronized on the other platforms the player uses. In this case, all accomplishments will also be synchronized between all platforms, offering the player a consistent experience.
Whichever scenario applies to your game, you should ensure accomplishments are synchronized between all platforms and that the game state is synchronized consistently and reliably.
Be aware that players may have different expectations and approaches to games on the web versus games on mobile. Players on the web sometimes play less frequently and for longer periods while mobile players may play more frequently and for shorter periods. Depending on the type of game you are building, you may choose to design a different game for mobile compared to the web to take into account these differences. If you choose to do this, be sure that important elements in the game, such as scores and achievements, are visible on all platforms.
Since Facebook provides a consistent identity for players across multiple platforms, you can use a player's Facebook ID to recognize them as they play on a new platform, in order to synchronize their accomplishments and game state.
Encourage people to play on other platforms
You can drive greater retention and engagement by encouraging people to play your game on different platforms. For example, promote the iOS version of the game on the Facebook.com. This can lead to better engagement — players can play throughout the day on whatever device they're using. It can also lead to greater retention — if they know your game exists on different platforms, they'll play it across their favorite devices.
By using the same App ID, you already get the benefit of cross-platform bookmarks, search and distribution through requests, feed and Open Graph. All of these encourage people to play the game across other platforms. You can also encourage players to play on different platforms using rewards and incentives such as coins, special items or more lives. In addition, you can release exclusive content on a particular platform (or release content sooner) to encourage players to play on that platform. For example, you could release five new levels one week sooner on the Canvas version of your game to encourage players to play this game if they usually play the mobile version.
While it is a great idea to provide incentive for players to play on multiple platforms, it's best not to require them to play on all platforms. Many players prefer to only play on one platform and so they should be allowed to advance in the game on a single platform without being penalized.
Your game should be balanced between catering to the following two scenarios:
- Players who play on multiple platforms on a regular basis. A typical scenario might be a player who has used the web version of a game and now wishes to take the game with them on their mobile device. Provide incentives for players to do this.
- Players who prefer to play on only one platform. Make it optional for people to play on multiple platforms and don't penalize players who have this preference.
Refine Gameplay on Facebook before Mobile Releases
It can take many iterations to get the right business model within your game. For example, the points at which you charge players within the game, the price points you offer and the items or currency you sell can make a big difference to your conversions.
It is easier to iterate on Facebook.com than it is on mobile because you can apply a change immediately on Facebook.com and then gather results, make changes and repeat. The update and iterate cycle on mobile takes much longer. This enables you to balance the gameplay and economy for your game on Facebook.com much more quickly, and then apply those learnings on your mobile version.