インスタントゲームでは、プレイヤー同士がソーシャルで交流できる手段が多数用意されています。
FBInstant.player.getConnectedPlayersAsync()
メソッドは、Messenger上で現在のプレイヤーとつながっているユーザーのうち、ゲームに対するアクセス許可を付与されている人のリストを取得します。
注: このメソッドでは、同じコンテキストでプレイしているプレイヤーとそうでないプレイヤーを区別しません。コンテキスト固有の情報は、 FBInstant.context.getPlayersAsync()
から取り出すことができます。
プレイヤーの友達を取得する FBInstant.player.getConnectedPlayersAsync() .then(function(players) { _leaderboard.render(players); }); コンテキストプレイヤーを取得する FBInstant.context.getPlayersAsync() .then(function(players) { _leaderboard.render(players); }); |
インスタントゲームは、Messengerスレッドやフィードストーリーズなど、さまざまなコンテキストでプレイできます。以下のSDK呼び出しでは、エントリポイントに関係なく、どのセッションからもコンテキストを切り替えられます。つまり、プレイヤーがゲームを終了して再開しなくても、別のスレッドに切り替えることができます。
次の3つのコンテキスト変更メソッドがあります。
FBInstant.context.chooseAsync()
はネイティブダイアログを開きます。そこでプレイヤーは、どのスレッドに変更するかを選択できます。FBInstant.context.switchAsync(contextId)
は、開発者が事前定義されたコンテキストにプレイヤーを送るためのものです(例: 別のスレッドで始まったマッチを続けるため)。FBInstant.context.createAsync(playerId)
は、指定されたプレイヤーとのコンテキストの作成を試みます(例: あるプレイヤーと紹介された友達との間でマッチを開始するため)。コンテキストAPIとマッチメイキングAPIでプレイヤーにゲームの新しいコンテキストに入れるツールがあります。他のプレイヤーと一緒にプレイした利用者のほうが、単独コンテキストのプレイヤーよりリテンションが高くなることがわかっています。これにはいくつかの理由があります。
ゲームプレイ自体の中で意味のあるソーシャルダイナミクスによりインスタントゲームに輝きが加わり、プレイヤーがそのゲームをすべての友達とシェアしたいと思うようになります。
おすすめの用途:
matchPlayerAsync()
を呼び出すことにより、ゲームの現在のプレイヤーを、別のプレイヤーとのコンテキストにマッチングするように試みます。プレイヤーのマッチング直後に、新たに作成されたコンテキストにゲームを切り替えるのか、それともプレイヤーがトーストの[プレイ]をクリックするまで待つのかを指定するためのパラメーターが追加されました。
マッチングには、2種類のメカニズムがあります。
マッチングされた1つのスレッド内でプレイできる最小プレイヤー数は2、最大プレイヤー数は20です(デフォルト)。同時にマッチングされようとしているプレイヤーの数に応じて異なります。値はfbapp-config.jsonで変更できます。