グループマッチメイキング
グループマッチメイキングは、複数のユーザーが同じチームとして一緒にゲームに参加したいときに使用されます。
グループマッチングは、グループベースでマッチングリクエストが行われる際だけでなく、チームメンバーの数に応じてグループと個人がチームを形成する場合にもリクエストできます。
Note
グループマッチメイキングはグループマッチングでのみサポートされており、個別マッチングでは使用できません。
このガイドでは、ユーザーがグループを作成する際に提供されるGroupCode値を入力してグループに参加し、マッチをリクエストする方法を説明します。
SDKにおけるマッチメイキング操作の流れ¶
グループマッチメイキングは以下の順序で行われます。
- グループ(ルーム)を作成 → メンバーグループ参加 → マッチングリクエスト
Hive SDKを使用してグループマッチメイキングを実装する際、マッチメイキングの全体的な流れは、ユーザーがグループリーダーであるかグループメンバーであるかによって異なります。
グループリーダーの視点から見たマッチメイキングプロセスの流れ¶
グループメンバーの視点から見たマッチメイキングプロセスの流れ¶
グループを作成する¶
グループマッチメイキングを使用するには、まずグループを作成する必要があります。
複数のユーザーが一緒にゲームに参加したい場合、作成されたグループは同じチームとしてマッチングされます。
グループ作成メソッドを呼び出す際は、matchId
に対応するマッチ情報がHiveコンソールに事前に登録されている必要があります。
使用されるパラメータはmatchId
、スコアpoint
(0から10^10未満の整数)、およびマッチに使用される追加情報extraData
(ニックネーム、レベル、国などの256文字以内の情報)です。
Note
matchId
を引数として使用するためのマッチユニットは'team'に設定する必要があります。さらに、グループを作成したユーザーがグループリーダーになります。
グループを作成するための例のコードはこちらです。
APIリファレンス: MatchMaking .createGroup
using hive;
int matchId = 25; // matchId registered in the console
int point = 300; // points used for the match
string extraData = "your extraData"; // additional information to be used for the match
MatchMaking.createGroup(matchId, point, extraData, (ResultAPI result, MatchMaking.MatchMakingGroupData data) => {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
API リファレンス: MatchMaking ::createGroup
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // matchId registered in the console
int point = 300; // points used for the match
string extraData = "your extraData"; // additional information to use for the match
MatchMaking::createGroup(matchId, point, extraData, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.createGroup
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // matchId registered in the console
val point = 300 // points used for the match
val extraData = "your extraData"; // additional information to be used for the match
MatchMaking.createGroup(matchId, point, extraData, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .createGroup
import com.hive.MatchMaking;
import com.hive.ResultAPI;
int matchId = 25; // matchIdはコンソールに登録されています
int point = 300; // マッチに使用されるポイント
String extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking.createGroup(matchId, point, extraData, (result, data) -> {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMakingInterface.createGroup
import HIVEService
let matchId: Int = 25 // matchId registered in the console
let point: Int = 300 // points used for the match
let extraData: String? = "your extraData" // additional information to be used for the match
MatchMakingInterface.createGroup(matchId: matchId, point: point, extraData: extraData) { result, data in
if result.isSuccess() {
// call successful
}
else {
// Call failed. See error code below
}
}
APIリファレンス: HIVEMatchMaking createGroup
#import "HIVEService.h"
NSInteger matchId = 25; // コンソールに登録されたmatchId
NSInteger point = 300; // マッチに使用されるポイント
NSString *extraData = @"your extraData"; // マッチに使用する追加情報
[MatchMakingInterface createGroupWithMatchId:matchId
point:point
extraData:extraData
completion:^(HIVEResult *result, id data) {
if ([result isSuccess]) {
// call successful
} else {
// Call failed. See error code below
}
}];
グループに参加する¶
グループに参加できます。グループリーダーでないユーザーは、同じチームとしてマッチングされるためにグループに参加できます。
グループ参加メソッドを呼び出す際に使用されるパラメータは、matchId
、グループ作成時に発行されたGroupCode
、マッチングに使用するスコアpoint
(0から10^10未満の整数)、およびマッチングに使用される追加情報extraData
(ニックネーム、レベル、国などの256文字以内の情報)です。
Note
A user who is not a group leader must request to join the group. The match unit for the matchId
to be used as an argument must be set to 'team'.
これはグループ参加のための例のコードです。
APIリファレンス: MatchMaking .joinGroup
using hive;
int matchId = 25; // matchIdはコンソールに登録されています
string groupCode = "5001789"; // グループコード
int point = 300; // マッチに使用されるポイント
string extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking.joinGroup(matchId, groupCode, point, extraData, (ResultAPI result, MatchMaking.MatchMakingGroupData data) => {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
API リファレンス: MatchMaking ::joinGroup
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // matchId registered in the console
string groupCode = "5001789"; // グループコード
int point = 300; // マッチに使用されるポイント
string extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking::joinGroup(matchId, groupCode, point, extraData, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.joinGroup
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // matchId registered in the console
val groupCode = "5001789" // group code
val point = 300 // points used for the match
val extraData = "your extraData"; // additional information to be used for the match
MatchMaking.joinGroup(matchId, groupCode, point, extraData, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .joinGroup
import com.hive.MatchMaking;
import com.hive.ResultAPI;
int matchId = 25; // matchIdはコンソールに登録されています
String groupCode = "5001789"; // グループコード
int point = 300; // マッチに使用されるポイント
String extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking.joinGroup(matchId, groupCode, point, extraData, (result, data) -> {
if (result.isSuccess()) {
// 成功した呼び出し
} else {
// 呼び出しに失敗しました。以下のエラーコードを参照してください
}
});
APIリファレンス: MatchMakingInterface.requestMatchMaking
import HIVEService
let matchId: Int = 25 // コンソールに登録されたmatchId
let groupCode: String = "5001789" // グループコード
let point: Int = 300 // マッチに使用されるポイント
let extraData: String? = "your extraData" // マッチに使用される追加情報
MatchMakingInterface.joinGroup(matchId: matchId, point: point, extraData: extraData) { result, data in
if result.isSuccess() {
// call successful
}
else {
// Call failed. See error code below
}
}
APIリファレンス: HIVEMatchMaking requestMatchMaking
#import "HIVEService.h"
NSInteger matchId = 25; // matchId registered in the console
NSString *groupCode = @"5001789"; // group code
NSInteger point = 300; // points used for the match
NSString *extraData = @"your extraData"; // additional information to use for the match
[MatchMakingInterface joinGroupWithMatchId:matchId
groupCode:groupCode
point:point
extraData:extraData
completion:^(HIVEResult *result, id data) {
if ([result isSuccess]) {
// 成功した呼び出し
} else {
// 呼び出しに失敗しました。以下のエラーコードを参照してください
}
}];
グループ引き出し¶
私はグループを離れます。
グループメンバーのいずれかが「準備完了」ステータスにある場合、彼らは撤退できません。また、グループリーダーが撤退すると、残りのメンバーのうちの1人が自動的にグループリーダーになります。残りのメンバーがいない場合、グループは自動的に削除されます。
これはグループ引き出しのための例のコードです。
APIリファレンス: MatchMaking .leaveGroup
APIリファレンス: MatchMaking ::leaveGroup
API リファレンス: MatchMaking.deleteRequesting
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // コンソールに登録されたmatchId
MatchMaking.leaveGroup(matchId, object : MatchMaking.MatchMakingResultListener {
override fun onMatchMakingResult(result: ResultAPI) {
if (result.isSuccess) {
// 成功した呼び出し
} else {
// 呼び出しに失敗しました。以下のエラーコードを参照してください
}
}
})
APIリファレンス: MatchMaking.INSTANCE .deleteRequesting
APIリファレンス: MatchMakingInterface.deleteRequesting
グループメンバー強制退出¶
グループリーダーは特定のメンバーを強制的に削除することができます。強制削除は同じグループのメンバーに対してのみ要求でき、進行中の試合中には使用できません。
グループメンバー強制退出メソッドを呼び出す際には、強制的に退出させたいメンバーのtargetPlayerId
を引数として使用します。
次に示すのは、グループメンバーを強制的に削除するための例のコードです。
API リファレンス: MatchMaking .kickGroupUser
using hive;
int matchId = 25; // コンソールに登録されたmatchId
long targetPlayerId = 123456789; // 強制的に追放されるメンバーのプレイヤーID
MatchMaking.kickGroupUser(matchId, targetPlayerId, (ResultAPI result, MatchMaking.MatchMakingGroupData data) => {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking ::kickGroupUser
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // コンソールに登録されたmatchId
long long targetPlayerId = 123456789; // 強制的に追放するメンバーのプレイヤーID
MatchMaking::kickGroupUser(matchId, targetPlayerId, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.kickGroupUser
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // コンソールに登録されたmatchId
val targetPlayerId = 123456789 // 強制的にエクスポートするメンバープレイヤーID
MatchMaking.kickGroupUser(matchId, targetPlayerId, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .kickGroupUser
import com.hive.MatchMaking;
import com.hive.ResultAPI;
int matchId = 25; // コンソールに登録されたmatchId
long targetPlayerId = 123456789; // 強制的に追放するメンバープレイヤーID
MatchMaking.kickGroupUser(matchId, targetPlayerId, (result, data) -> {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMakingInterface.kickGroupUser
APIリファレンス: HIVEMatchMaking requestMatchMaking
#import "HIVEService.h"
NSInteger matchId = 25; // コンソールに登録されたmatchId
NSNumber *targetPlayerId = 123456789; // 強制的に追放するメンバーのプレイヤーID
[MatchMakingInterface kickGroupUserWithMatchId:matchId
targetPlayerId:targetPlayerId
completion:^(HIVEResult *result, id data) {
if ([result isSuccess]) {
// call successful
} else {
// Call failed. See error code below
}
}];
グループユーザーに基づくグループ情報クエリ¶
グループ内のユーザーに基づいてグループ情報を照会します。 これは、グループに参加している他のユーザーの情報を確認したり、マッチングリクエスト後のマッチング結果を確認するために使用されます。
グループユーザーの状態を定期的に確認することをお勧めします。
以下は、グループユーザーに基づいてグループ情報をクエリする例のコードです。
API リファレンス: MatchMaking .getGroupInfoByUser
APIリファレンス: MatchMaking ::getGroupInfoByUser
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // matchIdはコンソールに登録されています
MatchMaking::getGroupInfoByUser(matchId, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.getGroupInfoByUser
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // コンソールに登録されたmatchId
MatchMaking.getGroupInfoByUser(matchId, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// 成功した呼び出し
} else {
// 呼び出しに失敗しました。以下のエラーコードを参照してください
}
}
})
APIリファレンス: MatchMaking .getGroupInfoByUser
APIリファレンス: MatchMakingInterface.getGroupInfoByUser
API リファレンス: HIVEMatchMaking getGroupInfoByUser
グループコードに基づくグループ情報クエリ¶
グループコードに基づいてグループに関する情報を照会します。これは、グループが存在するかどうかを確認するために使用されます。
以下は、グループコードに基づいてグループ情報を取得する例のコードです。
APIリファレンス: MatchMaking .getGroupInfoByGroupCode
APIリファレンス: MatchMaking ::getGroupInfoByGroupCode
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
string groupCode = "5001789"; // group code
MatchMaking::getGroupInfoByGroupCode(groupCode, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.getGroupInfoByGroupCode
import com.hive.MatchMaking
import com.hive.ResultAPI
val groupCode = "5001789" // グループコード
MatchMaking.getGroupInfoByGroupCode(groupCode, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .getGroupInfoByGroupCode
APIリファレンス: MatchMakingInterface.getGroupInfoByGroupCode
APIリファレンス: HIVEMatchMaking getGroupInfoByGroupCode
メンバー情報の更新¶
グループ内のメンバーは、自分のステータスや情報を変更できます。
メンバー情報変更メソッドを呼び出す際、パラメータにはグループリーダーを除くメンバーの準備状況 ready
、マッチで使用するスコア point
(0から10^10未満の整数)、およびマッチで使用する追加情報 extraData
(ニックネーム、レベル、国などの情報、256文字以内)が含まれます。
Warning
グループ内のすべてのメンバーは、グループリーダーがマッチングリクエストを行うために準備完了の状態でなければなりません。
グループリーダーにとって、準備完了の値は常にtrueであり、これをfalseに変更するとエラーが発生します。
これはグループ参加のための例のコードです。
APIリファレンス: MatchMaking .updateGroupUser
using hive;
int matchId = 25; // コンソールに登録されたmatchId
bool ready = true; // 準備状況
int point = 300; // マッチに使用されるポイント
string extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking.updateGroupUser(matchId, ready, point, extraData, (ResultAPI result, MatchMaking.MatchMakingGroupData data) => {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking ::updateGroupUser
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // コンソールに登録されたmatchId
bool ready = true; // 準備状況
int point = 300; // マッチに使用されるポイント
string extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking::updateGroupUser(matchId, ready, point, extraData, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.updateGroupUser
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // matchId registered in the console
val ready = true // readiness status
val point = 300 // points used for the match
val extraData = "your extraData"; // additional information to be used for the match
MatchMaking.updateGroupUser(matchId, ready, point, extraData, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .updateGroupUser
import com.hive.MatchMaking;
import com.hive.ResultAPI;
int matchId = 25; // コンソールに登録されたmatchId
boolean ready = true; // 準備状況
int point = 300; // マッチに使用されるポイント
String extraData = "your extraData"; // マッチに使用される追加情報
MatchMaking.updateGroupUser(matchId, ready, point, extraData, (result, data) -> {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMakingInterface.updateGroupUser
import HIVEService
let matchId: Int = 25 // コンソールに登録されたmatchId
let ready: Bool = true // 準備完了ステータス
let point: Int = 300 // マッチ使用ポイント
let extraData: String? = "your extraData" // マッチに使用する追加情報
MatchMakingInterface.updateGroupUser(matchId: matchId, ready: ready, point: point, extraData: extraData) { result, data in
if result.isSuccess() {
// call successful
}
else {
// Call failed. See error code below
}
}
APIリファレンス: HIVEMatchMaking updateGroupUser
#import "HIVEService.h"
NSInteger matchId = 25; // matchId registered in the console
BOOL *ready = true; // group code
NSInteger point = 300; // points used for the match
NSString *extraData = @"your extraData"; // additional information to be used for the match
[MatchMakingInterface updateGroupUserWithMatchId:matchId
ready:ready
point:point
extraData:extraData
completion:^(HIVEResult *result, id data) {
if ([result isSuccess]) {
// call successful
} else {
// Call failed. See error code below
}
}];
一致するリクエスト¶
マッチをリクエストしています。グループ内のすべてのメンバーが準備完了の状態になると、グループリーダーがマッチリクエストを行うことができます。
マッチをリクエストする際の前提条件は以下の通りです。
- リクエスト時にグループメンバーが少なくとも2人必要です。
- グループリーダー(ルームリーダー)でないメンバーは、'Ready' ステータスを true に設定する必要があります。
- 既存のマッチがある場合は、リクエストを行う前に削除する必要があります。
- リクエストを行えるのはグループリーダー(ルームリーダー)のみです。
Warning
もしマッチングリクエストが進行中の際に再度マッチングをリクエストした場合、既存のマッチングは中断されず、コールバック関数はエラー値(MatchMakingResponseError
)を返します。 したがって、マッチングをリクエストする前に必ずマッチングステータスを確認するを通じてマッチングのステータスを確認してください。
これは一致リクエストのための例のコードです。
API リファレンス: MatchMaking .requestGroupMatching
APIリファレンス: MatchMaking ::requestGroupMatching
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // コンソールに登録された matchId
MatchMaking::requestGroupMatching(matchId, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
API リファレンス: MatchMaking.requestGroupMatching
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // コンソールに登録されたmatchId
MatchMaking.requestGroupMatching(matchId, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .requestGroupMatching
APIリファレンス: MatchMakingInterface.requestGroupMatching
APIリファレンス: HIVEMatchMaking requestGroupMatching
マッチングリクエストのキャンセル (削除)¶
試合をキャンセル(削除)しています。試合は、以下の1つまたはそれ以上の条件を満たす場合に削除されなければなりません。
- ユーザーがマッチをキャンセルした場合
- マッチのステータスがタイムアウトの場合
-
ユーザー間のゲームが正常に完了した場合
ゲームサーバー上でゲーム結果(ランキング、スコア、勝敗状況など)のデータを更新した後、マッチの削除をリクエストする必要があります。
以下は、マッチングリクエストをキャンセル(削除)するためのサンプルコードです。
API リファレンス: MatchMaking .deleteGroupMatching
APIリファレンス: MatchMaking ::deleteGroupMatching
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
int matchId = 25; // matchIdはコンソールに登録されています
MatchMaking::deleteGroupMatching(matchId, [=](ResultAPI const & result, MatchMakingGroupData data) {
if (result.isSuccess()) {
// call successful
} else {
// Call failed. See error code below
}
});
APIリファレンス: MatchMaking.deleteGroupMatching
import com.hive.MatchMaking
import com.hive.ResultAPI
val matchId = 25 // matchId registered in the console
MatchMaking.deleteGroupMatching(matchId, object : MatchMaking.MatchMakingGroupDataListener {
override fun onMatchMakingGroupData(result: ResultAPI, data: MatchMaking.MatchMakingGroupDataListener) {
if (result.isSuccess) {
// call successful
} else {
// Call failed. See error code below
}
}
})
APIリファレンス: MatchMaking .deleteGroupMatching
APIリファレンス: MatchMakingInterface.deleteGroupMatching
APIリファレンス: HIVEMatchMaking deleteGroupMatching
MatchMakingGroupDataオブジェクト構造¶
これは、グループマッチメイキングによって提供された主要な機能要求に応じて配信されるオブジェクトです。
- グループを作成
- グループに参加
- グループメンバーを強制削除
- ユーザーによるグループ情報の取得
- グループコードによるグループ情報の取得
- メンバー情報の更新
- マッチングリクエスト
- マッチングリクエストのキャンセル(削除)
レスポンスオブジェクトには、リクエスト中に入力された情報、グループコード、グループリーダー情報、チームメンバー情報、およびマッチング結果情報が含まれています。
フィールド名 | 説明 | タイプ |
---|---|---|
groupCode | グループ作成時に生成されるグループコード | 文字列 |
ownerPlayerId | グループ作成をリクエストしたプレイヤーID(グループリーダー) | 長整数 |
requestGameIndex | マッチゲームインデックス | 整数 |
requestMatchId | リクエストされたマッチID(Hiveコンソールに登録された形式) | 整数 |
requestStatus | マッチリクエストのステータス(requested : マッチがリクエストされた、notRequested : リクエストされていない(または、進行中のマッチがマッチングされていない)) | 文字列 |
requestTimeUtc | マッチリクエストの時間(例: 2025-01-02T11:13:50.96) | 文字列 |
matchingStatus | マッチ進行状況のステータス(matchingInProgress : マッチング進行中、timeout : 制限時間内にマッチングが発生しなかった、matched : マッチング成功) | 文字列 |
matchingType | チーム参加か個人参加か(matchingStatusがmatchedの場合に存在)(team : チーム、player : 個人、unknown : マッチング確認が利用できない場合) | 文字列 |
matchingId | 成功したマッチに割り当てられたID(matchingStatusがmatchedの場合に存在)(例: 539:21_2025-01-02T11:45:55.25_1) | 文字列 |
memberInfoList | 現在グループに所属しているメンバーのプレイヤー情報のリスト MatchMemberInfo | 配列 |
matchingTeamInfoList | マッチが成功した場合のチーム情報のリスト MatchingResultTeamInfo(matchingStatusがmatchedの場合に存在) | 配列 |
MatchMemberInfoオブジェクト構造¶
これはチームマッチに参加する際に渡されるオブジェクトです。これは同じチーム(グループ)に所属するチームメンバーのユーザー情報を含んでいます。
フィールド名 | 説明 | タイプ |
---|---|---|
playerId | グループメンバーのplayerId | Long |
ready | グループメンバーの準備状況 | Boolean |
point | グループメンバーのポイント | Int |
extraData | グループメンバーが提供するその他の情報(ユーザーがリクエスト時にextraDataを使用した場合に存在) | String |
MatchingResultTeamInfoオブジェクト構造¶
これは、チームが試合に参加し、マッチングが成功したとき(matchingStatusがmatchedのとき)に配信されるオブジェクトです。チームインデックスと、チームに属するユーザーに関する情報が含まれています。
フィールド名 | 説明 | タイプ |
---|---|---|
teamIndex | チームのユニークインデックス | Int |
playerInfos | チームに属するユーザー情報のリスト MatchingResultPlayerInfo | Array |
一致状況を確認¶
ユーザーのマッチングステータスを確認しています。
一致状況チェックメソッドを呼び出すと、以下の3つの一致状況のいずれかが返されます。
- マッチング中 (matchingStatus: matchingInProgress)
- マッチング成功 (matchingStatus: matched)
- タイムアウト (matchingStatus: timeout)
ユーザーによるグループ情報の取得 APIまたはグループコードによるグループ情報の取得 APIを使用して、一致状況を確認できます。
一致処理中¶
一致状況が進行中の場合は、一致状況が一致に達したかどうかを確認するために、メソッドを繰り返し呼び出す必要があります。
繰り返し呼び出しサイクルは3秒から10秒の間隔で呼び出すことを推奨します。アプリの実装特性に応じて、時間間隔をさらに延ばすことも可能です。
一致成功¶
マッチングステータスがマッチ成功の場合、開発者のゲームが起動します。これは、Hive SDKを通じて接続されたユーザーが一緒にゲームをプレイする状態にあり、マッチしたユーザーが開発者のゲームに参加できることを意味します。
タイムアウト¶
ステータスがタイムアウト(matchingStatus: timeout
)の場合、既存のマッチを削除し、再度マッチをリクエストする必要があります。
エラーコード¶
エラーコード | メッセージ | 説明 |
NEED_INITIALIZE | MatchMakingNotInitialized | SDKのセットアップが行われていない場合 (AuthV4.setup) |
INVALID_SESSION | MatchMakingNeedSignIn | AuthV4のサインインが行われていない場合 |
RESPONSE_FAIL | MatchMakingResponseError | API呼び出しが不正なパラメータ、ネットワークの問題、またはすでにマッチングリクエスト状態にあるときにマッチングリクエストが行われた場合に失敗する |