新しいリーダーボードサービスを使用してプレイヤーのランキングを表示する
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) リーダーボードサービスを使用すると、リーダーボードを表示し、プレイヤーのランキングに関する情報を提供することで、プレイヤー間に競争的な雰囲気を作り出すことができます。
目標
- SDK を使用してリーダーボードを取得する方法、または特定のプレイヤーのランキングを取得する方法を説明します。
- リーダーボードの表示方法の概要を提供します。
- 全期間および特定の時間枠のリーダーボードを表示する方法を説明します。
- AGS SDK を使用してリーダーボードを使用する方法を説明します。
前提条件
- AGS 管理者ポータルへのアクセス。
- AccelByte Unreal、Unity、または Extend SDK へのアクセス。
- AGS リーダーボードへのアクセス。詳細については、API ドキュメントを参照してください。
- 表示したいリーダーボード設定。新しい周期リーダーボードのガイドを使用してリーダーボード設定を作成できます。
リーダーボードランキングの表示
リーダーボードランキングを表示するには、目的のリーダーボードコードとリーダーボードの時間枠/サイクルを使用してリーダーボードデータを取得する必要があります。リーダーボードから表示したいプレイヤーの総数も、ゲームのニーズに基づいて設定できます。
次の関数を使用してリーダーボードランキングを取得できます:
リーダーボードランキングの取得
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
const FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient("Client1");
ApiClient->Leaderboard.GetRankingsV3(LeaderboardCode,Offset, Limit,
THandler<FAccelByteModelsLeaderboardRankingResultV3>::CreateLambda(
[&](const FAccelByteModelsLeaderboardRankingResultV3& Response)
{
// Handle response data here
}),
FErrorHandler::CreateLambda(
[&](const int32 Code, const FString& Message)
{
// Handle error here
}));
var leaderboard = AccelByteSDK.GetClientRegistry().GetApi().GetLeaderboard();
var leaderboardCode = "leaderboardCode";
leaderboard.GetRankingsV3(leaderboardCode, result =>
{
if (result.IsError)
{
// Do something if GetRankingsV3 has an error
Debug.Log($"Error GetRankingsV3, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
return;
}
foreach(var data in result.Value.data)
{
// Do something with the ranking data
}
});
string leaderboardCode = "<my-leaderboard-code>";
var response = sdk.Leaderboard.LeaderboardDataV3.GetAllTimeLeaderboardRankingPublicV3Op
.SetOffset(0)
.SetLimit(50)
.Execute(leaderboardCode, sdk.Namespace);
if (response != null)
{
//do something when success
}
leaderboardDataV3Service := &leaderboard.LeaderboardDataV3Service{
Client: factory.NewLeaderboardClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
leaderboardCode := "myleaderboardcode"
namespace := "mygame"
limit := int64(50)
offset := int64(0)
input := &leaderboard_data_v3.GetAllTimeLeaderboardRankingPublicV3Params{
LeaderboardCode: leaderboardCode,
Namespace: namespace,
Limit: &limit,
Offset: &offset,
}
result, err := leaderboardDataV3Service.GetAllTimeLeaderboardRankingPublicV3Short(input)
final LeaderboardDataV3 leaderboardDataV3Wrapper = new LeaderboardDataV3(sdk);
String leaderboardCode = "<my-leaderboard-code>";
ModelsGetLeaderboardRankingResp response;
try {
response = leaderboardDataV3Wrapper.getAllTimeLeaderboardRankingPublicV3(GetAllTimeLeaderboardRankingPublicV3.builder()
.namespace("<namespace>")
.leaderboardCode(leaderboardCode)
.offset(0)
.limit(50)
.build());
} catch (Exception e) {
// Do something when failed
return;
}
if (response == null) {
// Null response from server
} else {
// Do something when success
}
import accelbyte_py_sdk.api.leaderboard as leaderboard_service
result, error = leaderboard_service.get_all_time_leaderboard_ranking_public_v3(
leaderboard_code="SomeLeaderboardCode",
limit=99,
offset=0,
namespace=namespace, # optional, gets the value from the global instance if unspecified
sdk=sdk, # optional, gets the global instance if unspecified
)
if error:
exit(error)
特定のプレイヤーのランキングの表示
特定のプレイヤーのランキングを表示またはハイライトできます。
次の関数を使用して、ユーザー ID を使用して特定のプレイヤーのランキングを取得できます:
特定のプレイヤーのランキングの取得
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
const FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient("Client1");
ApiClient->Leaderboard.GetUserRankingV3("UserId",LeaderboardCode,
THandler<FAccelByteModelsUserRankingDataV3>::CreateLambda([&](const FAccelByteModelsUserRankingDataV3& Response)
{
// Handle response data here
}), FErrorHandler::CreateLambda([&](const int32 Code, const FString& Message)
{
// Handle error here
}));
var leaderboard = AccelByteSDK.GetClientRegistry().GetApi().GetLeaderboard();;
var userId = "userId";
var leaderboardCode = "leaderboardCode";
leaderboard.GetUserRankingV3(userId, leaderboardCode, result =>
{
if (result.IsError)
{
// Do something if GetUserRankingV3 has an error
Debug.Log($"Error GetUserRankingV3, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
return;
}
// Do something with user data
// result.Value.AllTime;
// result.Value.Cycles;
});
string leaderboardCode = "<my-leaderboard-code>";
string userId = "<user-id>";
var response = sdk.Leaderboard.LeaderboardDataV3.GetUserRankingPublicV3Op
.Execute(leaderboardCode, sdk.Namespace, userId);
if (response != null)
{
//do something when success
}
leaderboardDataV3Service := &leaderboard.LeaderboardDataV3Service{
Client: factory.NewLeaderboardClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
leaderboardCode := "myleaderboardcode"
namespace := "mygame"
userId := "myuserid"
input := &leaderboard_data_v3.GetUserRankingPublicV3Params{
LeaderboardCode: leaderboardCode,
Namespace: namespace,
UserID: userId,
}
result, err := leaderboardDataV3Service.GetUserRankingPublicV3Short(input)
final LeaderboardDataV3 leaderboardDataV3Wrapper = new LeaderboardDataV3(sdk);
String leaderboardCode = "<my-leaderboard-code>";
String userId = "<user-id>";
ModelsUserRankingResponseV3 response;
try {
response = leaderboardDataV3Wrapper.getUserRankingPublicV3(GetUserRankingPublicV3.builder()
.namespace("<namespace>")
.userId(userId)
.leaderboardCode(leaderboardCode)
.build());
} catch (Exception e) {
// Do something when failed
return;
}
if (response == null) {
// Null response from server
} else {
// Do something when success
}
result, error = leaderboard_service.get_user_ranking_public_v3(
leaderboard_code="SomeLeaderboardCode",
user_id="********************************",
namespace=namespace, # optional, gets the value from the global instance if unspecified
sdk=sdk, # optional, gets the global instance if unspecified
)
if error:
exit(error)