這份文件已更新。
中文(香港) 的翻譯尚未完成。
英文更新時間:2023年8月1日
中文(香港) 更新時間:2021年5月10日

與朋友一起玩即時遊戲

透過即時遊戲,您可以利用多種方式與玩家展開社交互動。

聯繫玩家

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 呼叫,即可在任何連線階段切換情境。換句話說,玩家不需要結束遊戲並重新開啟,也能直接切換到其他對話。

我們提供三種不同的情境切換方法:

  • FBInstant.context.chooseAsync() 會開啟原生對話方塊,供玩家選擇要變更到哪個對話。
  • FBInstant.context.switchAsync(contextId) 允許開發人員將玩家傳送到預先定義的情境(例如,繼續先前在不同對話中開始的對戰)。
  • FBInstant.context.createAsync(playerId) 會嘗試建立與指定玩家之間的情境(例如,讓玩家與某位建議的朋友展開對戰)。

透過配對來與其他玩家玩遊戲

我們提供了工具,您可利用情境與配對 API,來讓遊戲玩家進入新的情境。我們發現,和其他玩家一起玩的用戶,留存率高於單獨情境的玩家。這個現象的產生有下列幾個原因:

  1. 情境中的個人化更新,可以為遊戲提供具有吸引力的切入點
  2. 玩遊戲同時與人進行社交,可以產生較高的玩家留存率,因為大家一起玩遊戲會更好玩。

在遊戲中從事有意義的社交活動,可讓您的即時遊戲具有吸引力,興奮的玩家會和所有朋友分享您的遊戲。

建議的使用方式

  1. 運用配對 API,讓玩家有機會享受獨立於朋友互動的社交遊戲體驗。這在回合制和多玩家的遊戲中特別有用,但如果玩家沒有任何朋友可以一起玩特定遊戲、朋友不常玩遊戲,或玩家只是想要和不同的人玩遊戲,這項 API 工具也能為其他類型的遊戲帶來效益。
  2. 如果隨機挑選的對手,在配對完成之前就退出,則換成人工智慧玩家

透過呼叫 matchPlayerAsync(),遊戲會嘗試將目前的玩家與其他玩家在某情境中配對。我們已額外新增一個參數,可指定是否要讓遊戲在完成玩家配對後,立即切換到新建立的情境,或是等到玩家點擊快顯通知中的「玩遊戲」後再切換。

配對機制有兩種

  1. 同步配對:將目前的玩家與其他尋找玩家的用戶配對。如果成功,系統將建立一個包含已配對玩家的新 Messenger 群組對話串,並將玩家切換到該對話串的情境中。當玩家成功切換到新配對完成的情境時,此運作將完成。
  2. 非同步配對瞭解詳情):開始離線配對的玩家會立即受邀與其他之前開始離線配對的玩家一起加入群組對話串,玩家可以在等待更多玩家加入的同時離開遊戲。配對之後,玩家就會受邀進入並切換到配對完成之對話串的情境。當玩家成功加入群組對話串並切換到配對完成的情境時,此運作將完成。

取決於同一時間有多少玩家試著進行配對,一個配對執行緒中預設的玩家人數下限和上限分別是 2 個和 20 個人。這些值可在 fbapp-config.json 中變更。