A cross-platform game engine allows you to use the same code base for deploying 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.
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.
Facebook Game Services are provided for the following cross-platform game engines:
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.
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:
Additionally, mobile games should load natively when a player clicks a channel on mobile devices. Say a player responds to a challenge story in 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:
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.
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.
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 Facebook Web Game 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:
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.