クロスプラットフォームゲーム

This feature is no longer available for new submissions. This documentation is intended solely for developers with existing games.

概要

クロスプラットフォームゲームエンジンにより、同じコードベースを使ってウェブ(HTML)、iOS、Androidなど複数のプラットフォームにデプロイすることが可能になります。クロスプラットフォームゲームでは、プラットフォームが異なるときに、プレイヤーのエクスペリエンスが同じになる場合も異なる場合もあります。

複数のプラットフォームで1つのFacebookアプリIDを使ってゲームをする場合、あるプラットフォームでプレイしたエクスペリエンスと別のプラットフォームでプレイしたエクスペリエンスは、まったく同じでないとしても、一貫していなければなりません。これをできるだけ簡単に実現するため、UnityやCocos2dのようなソフトウェアパッケージではサポートを提供しています。これらのエンジン用のFacebook SDKは、一度の作成であらゆる場所へデプロイという同じ方針に従っており、それぞれのビルドターゲットも同様にサポートしています。

クラスプラットフォームを開発する理由

ゲームにクロスプラットフォーム機能を装備すると、プレイヤーは好きなデバイスを使って好きな場所でプレイすることができます。デバイスが低価格になるにつれて、プレイヤーが複数のゲームプラットフォームを所有したり、複数のプラットフォームを切り替えたりして使うことが一般的になりました。複数のプラットフォームでプレイするプレイヤーは、そうでないプレイヤーよりもはるかにゲームに熱中しています。FacebookのSDKは、クロスプラットフォームゲームを最大限に活用するために必要なサポートを提供します。

サポートされるゲームエンジンとFB SDK

Facebookゲームサービスは、以下のクロスプラットフォームゲームエンジンを対象に提供されています。

クロスプラットフォームゲームとFacebook

Facebookは、クロスプラットフォームゲームエクスペリエンスを向上させるために、多くのゲームサービスを提供しています。そのうちのいくつかについて、以下で詳しく説明します。

Facebookログイン

Facebookログインでは、サポートされているすべてのプラットフォームで使える一意のIDが提供されます。これにより、ゲームの状態を維持し、進捗を保存し、すべてのプラットフォームで常に一貫したエクスペリエンスを得ることができます。

Facebookログインは、利用者のすべてのプラットフォームに対して一元的にIDを保管します。

オーガニックチャンネル

複数のプラットフォームで1つのFacebookアプリIDを使うことで、ゲームはサポートされるすべてのプラットフォーム上でFacebookのオーガニックチャンネルからメリットを得られます。ゲームリクエストの実装と共有により、プレイヤーはどのデバイスを使っていても、Facebook経由でそのゲームを発見しプレイすることができます。

Facebook Analytics

Facebook Analyticsは、Facebookがサポートするすべてのプラットフォームで使用でき、さまざまなプラットフォームにおける特定のゲームの分析を1つのビューでトラッキングできるようにしてくれます。分析をプラットフォーム別にセグメント化して、デバイスの動作を比較することや、特定のプラットフォームの固有のセグメントをターゲットに設定することができます。

クロスプラットフォームゲームのベストプラクティス

通知、リクエスト、ストーリーズを一貫性のある方法で処理する

プレイヤーと特定のプレイヤーによってシェアされるストーリーズの間で送信されるすべてのゲームリクエストは、すべてのプラットフォームに関連していなければなりません。これは、すべてのプラットフォームで同じエクスペリエンスを提供するゲームであれば簡単です。しかし、ゲームによってはプラットフォームごとに異なるエクスペリエンスを提供する必要があります。

例えば、ゲームのウェブバージョンのアチーブメントは、モバイルバージョンのアチーブメントとは異なる場合があります。このような場合、通知、リクエスト、ストーリーズはゲームのすべてのバージョンで一貫した方法で配信されるべきです。

以下に例を挙げます。

  • ゲームのFacebook上のバージョンからiOS上のプレイヤーに送信されるプレイヤー間のゲームリクエストは、iOSデバイスでプレイしている受信者もAndroidデバイスでプレイしている受信者も利用できるようにする必要があります。
  • プレイヤーがシェアするストーリーズは、すべてのプラットフォームにおいて合理的なものでなければなりません。Androidバージョンのゲームのプレイヤーが成果を祝うストーリーをシェアした場合、そのプレイヤーの友達がFacebook.comでそのストーリーをクリックすると、そのゲームのFacebook上のバージョンに移動するようにします。そこで、その友達も同じ成果を達成できるはずです。
  • Open Graphストーリーは、すべてのプラットフォームで関連性があるように工夫されるべきです。これはつまり、ゲームのモバイルバージョンしかプレイしたことがないプレイヤーも、同じゲームのウェブバージョンをプレイしている友達が投稿したOpen Graphストーリーを理解できなければならないということです。同じことが、ゲームのスコアやアチーブメントにも当てはまります。スコアはすべてのプラットフォームで適切にバランスが取られるべきであり、アチーブメントは(達成できないとしても)すべてのプラットフォームで理解できるようにするべきです。

さらに、モバイルゲームはプレイヤーがモバイルデバイスでチャンネルをクリックしたときにネイティブで読み込まれるようにする必要があります。iOS用またはAndroid用Facebookフィードのチャレンジストーリーにプレイヤーが反応したとします。実装オプションの1つは、チャレンジストーリーをクリックすると、ゲームのネイティブバージョンが開くというものです。チャレンジを受けたプレイヤーがすぐにプレイできるように、新しいゲームを開始できれば、より優れた実装になるでしょう。

詳細については、以下をご覧ください。

プラットフォーム間でゲームの状態を同期する

さまざまなプラットフォームに応じて、ゲームにも若干の違いがあるかもしれません。Facebook.com、iOS、Androidでは、経済システム、アチーブメントの設定、ゲームプレイが違っている可能性があります。あるプレイヤーがFacebook.comでアチーブメントを獲得し、次にAndroidでプレイする場合、Facebook.comで獲得したアチーブメントがAndroidでも表示されるようにするべきです。これは、Androidバージョンのゲームでは同じアチーブメントが獲得できない場合であっても同様です。あるプラットフォームにおけるゲームのプレイ時間は、別のプラットフォームでのそのゲームの進捗にも反映されるようにします。

同期されたクロスプラットフォームエクスペリエンスを提供する場合、両極端な2つの手法があります。

  • まったく違うエクスペリエンスを提供する。その手法の一つは、バージョンごとにゲームプレイがまったく違うゲームにすることです。バージョンが異なると、ゲームプレイのしくみすら同じではない可能性があります。この場合も、アチーブメントを可視化したり、バッジを授与したり、追加のコインや特別なアイテム、その他の特典や特権を提供することによって、他のプラットフォームにおける成果に対する報酬をプレイヤーに与えることが重要です。例えば、Facebookk.comで高いレベルに達したプレイヤーがiOSで同じゲームをプレイする場合、ゲームの最初から開始する必要があるかもしれません。しかし、Facebook.comで高いレベルに達していることに対して特別なバッジを授与することはできます。
  • 非常によく似たエクスペリエンスを提供する。もう一つは、すべてのプラットフォーム間で完全に同期されたゲームにすることです。これらのゲームでは、プレイヤーがあるプラットフォームでゲームを進めると、その状態はそのプレイヤーが使っている別のプラットフォームでも完全に同期されます。この場合、すべてのプラットフォーム間ですべての成果も同期されて、プレイヤーに一貫性のあるエクスペリエンスが提供されます。

ゲームに適用されるシナリオが何であれ、すべてのプラットフォーム間で成果が同期され、ゲーム状態が一貫して確実に同期されるようにする必要があります。

ウェブ上のゲームとモバイル上のゲームでは、プレイヤーが期待することやアプローチの仕方が異なる場合があることに注意してください。ウェブ上のプレイヤーはプレイ頻度は低くても長期間プレイする一方で、モバイルプレイヤーはより頻繁かつ短期間プレイする場合があります。開発中のゲームの種類によっては、こうした違いを考慮して、モバイル向けにウェブとは違うゲームをデザインするかもしれません。そうすることにした場合、スコアやアチーブメントなどゲーム内の重要な要素が、必ずすべてのプラットフォームで表示されるようにしてください。

Facebookでは、複数のプラットフォームを利用するプレイヤーに一貫したIDを提供しています。そのため、プレイヤーが新しいプラットフォームでプレイするときも、プレイヤーのFacebook IDを使ってプレイヤーを認識し、プレイヤーの成果やゲーム状態を同期させることができます。

プレイヤーはどのプラットフォームでもゲームの進行を継続させることができます。

プレイヤーに別のプラットフォームでのプレイを奨励する

ゲームを別のプラットフォームでプレイすることを奨励することにより、リテンションやエンゲージメントを高めることができます。例えば、ゲームのiOSバージョンをFacebook.comでプロモーションするなどです。そうすれば、プレイヤーは1日中、使用しているあらゆるデバイスでそのゲームをプレイできるので、より良いエンゲージメントにつながる可能性があります。ゲームの別のプラットフォームバージョンもあることを知ったプレイヤーは、お気に入りのデバイスでプレイするようになるでしょう。そうすればリテンションの向上にもつながります。

同じアプリIDを使うことにより、リクエスト、フィード、Open Graphを使ってクロスプラットフォームのブックマーク、検索、配信の機能を使えるというメリットがすでに得られています。これらすべての要素により、プレイヤーは他のプラットフォームでゲームをプレイする気持ちを高められています。コイン、特別なアイテム、ライフの追加などの報酬やインセンティブを利用して、別のプラットフォームでプレイするようプレイヤーを促すこともできます。さらに、特定のプラットフォームで限定コンテンツをリリースする(またはいち早くコンテンツをリリースする)ことにより、プレイヤーにそのプラットフォームでのプレイを奨励することができます。例えば、Facebookウェブゲームバージョンで1週間早くゲームの5つの新しいレベルをリリースすることにより、いつもはモバイルバージョンをプレイしているプレイヤーにウェブバージョンのゲームのプレイを促すことができます。

複数のプラットフォームでプレイするインセンティブをプレイヤーに与えるのは素晴らしいアイデアですが、すべてのプラットフォームでプレイすることは求めない方が良いでしょう。多くのプレイヤーは1つのプラットフォームだけでプレイすることを好むので、ペナルティを科されることなく、1つのプラットフォームでゲームを進められるようにします。

次の2つのシナリオに対応できるよう、ゲームのバランスを取る必要があります。

  1. 定期的に複数のプラットフォームでプレイしているプレイヤー。典型的なシナリオとして、ゲームのウェブバージョンを使っているプレイヤーが、モバイルデバイスでゲームを持ち運ぶことを希望しているケースが考えられます。これを実行するプレイヤーに、インセンティブを提供します。
  2. 1つのプラットフォームだけでプレイすることを好むプレイヤー。複数のプラットフォームでのプレイをオプションで選べるようにして、1つのプラットフォームだけでプレイすることを好むプレイヤーにペナルティが科されることがないようにします。

モバイルバージョンのリリース前にFacebookでのゲームプレイを洗練させる

ゲーム内で的確なビジネスモデルを確立するには、何度も反復しなければならない場合があります。例えば、ゲーム内でプレイヤーに課金するポイント、提供する価格ポイント、販売するアイテムや通貨などによって、コンバージョンに大きな違いが生じる可能性があります。

Facebook.comでは変更を直ちに適用でき、結果を収集し、変更や反復を行えるので、モバイルバージョンよりもFacebook.comで反復を行う方が簡単です。モバイルバージョンでは、アップデートや反復サイクルにより多くの時間がかかります。そのため、Facebook.comではゲームのプレイや経済システムのバランスを取るための時間を大幅に短縮できます。その後で、そこで学んだことをモバイルバージョンに活かせます。