リーダーボード v1 (レガシー) を使用してプレイヤーのランキングを表示する
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) リーダーボードサービスを使用すると、リーダーボードを表示し、プレイヤーのランキングに関する情報を提供することで、プレイヤー間に競争的な雰囲気を作り出すことができます。
この記事では、SDK を使用してリーダーボードと特定のプレイヤーのランキングを取得する方法について説明します。
前提条件
- AGS 管理者ポータルへのアクセス。
- Unreal または Unity 用の AGS SDK へのアクセス。
- 参照用の AGS リーダーボード API ドキュメントへのアクセス。
リーダーボードランキングの表示
リーダーボードランキングを表示するには、リーダーボードデータを取得する必要があります。データは、リーダーボードの指定されたライフサイクル(日次、週次、月次など)に対して返されます。また、取得したいプレイヤー数の制限を指定することもできます(例: トップ10、トップ50)。さらに、オフセットを指定して、リーダーボードをページで表示したい場合は、次の10、次の50などを取得できます。
次の関数を使用してリーダーボードランキングを取得できます:
リーダーボードランキングの取得
- Unreal Engine
- Unity
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
FString LeaderboardCode = FString("SomeLeaderboardCode");
EAccelByteLeaderboardTimeFrame TimeFrame = EAccelByteLeaderboardTimeFrame::ALL_TIME;
int32 Offset = 0;
int32 Limit = 99;
auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
auto LeaderboardApi = ApiClient->GetLeaderboardApi().Pin();
LeaderboardApi->GetRankings(LeaderboardCode, TimeFrame, Offset, Limit, THandler<FAccelByteModelsLeaderboardRankingResult>::CreateLambda([](const FAccelByteModelsLeaderboardRankingResult& Result)
{
// Do something if GetRankings succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetRankings fails
}));
var leaderboard = AccelByteSDK.GetClientRegistry().GetApi().GetLeaderboard();
string leaderboardCode = "SomeLeaderboardCode";
LeaderboardTimeFrame timeFrame= LeaderboardTimeFrame.ALL_TIME;
int offset = 0;
int limit = 99;
leaderboard.GetRankings(leaderboardCode, timeFrame, offset, limit, result =>
{
if (result.IsError)
{
// Do something if GetRankings fails
Debug.Log($"Error GetRankings, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
return;
}
// Do something if GetRankings is successful
});
string leaderboardCode = "<my-leaderboard-code>";
var response = sdk.Leaderboard.LeaderboardData.GetAllTimeLeaderboardRankingPublicV1Op
.SetOffset(0)
.SetLimit(50)
.Execute(leaderboardCode, sdk.Namespace);
if (response != null)
{
// Do something if successful
}
leaderboardDataService := &leaderboard.LeaderboardDataService{
Client: factory.NewLeaderboardClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
leaderboardCode := "myleaderboardcode"
namespace := "mygame"
limit := int64(50)
offset := int64(0)
input := &leaderboard_data.GetAllTimeLeaderboardRankingPublicV1Params{
LeaderboardCode: leaderboardCode,
Namespace: namespace,
Limit: &limit,
Offset: &offset,
}
result, err := leaderboardDataService.GetAllTimeLeaderboardRankingPublicV1Short(input)
final LeaderboardData leaderboardDataWrapper = new LeaderboardData(sdk);
String leaderboardCode = "<my-leaderboard-code>";
ModelsGetLeaderboardRankingResp response;
try {
response = leaderboardDataWrapper.getAllTimeLeaderboardRankingPublicV1(GetAllTimeLeaderboardRankingPublicV1.builder()
.namespace("<namespace>")
.leaderboardCode(leaderboardCode)
.offset(0)
.limit(50)
.build());
} catch (Exception e) {
// Do something if an error occurs
return;
}
if (response == null) {
// Null response from server
} else {
// Do something if successful
}
import accelbyte_py_sdk.api.leaderboard as leaderboard_service
# all_time: get_all_time_leaderboard_ranking_public_v3 (GET /leaderboard/v1/public/namespaces/{namespace}/leaderboards/{leaderboardCode}/alltime)
# season: get_current_season_leaderboard_ranking_public_v1 (GET /leaderboard/v1/public/namespaces/{namespace}/leaderboards/{leaderboardCode}/season)
# month: get_current_month_leaderboard_ranking_public_v1 (GET /leaderboard/v1/public/namespaces/{namespace}/leaderboards/{leaderboardCode}/month)
# week: get_current_week_leaderboard_ranking_public_v1 (GET /leaderboard/v1/public/namespaces/{namespace}/leaderboards/{leaderboardCode}/week)
# today: get_today_leaderboard_ranking_public_v1 (GET /leaderboard/v1/public/namespaces/{namespace}/leaderboards/{leaderboardCode}/today)
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
FString UserId = FString("SomeUserId");
FString LeaderboardCode = FString("SomeLeaderboardCode");
auto ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
auto LeaderboardApi = ApiClient->GetLeaderboardApi().Pin();
LeaderboardApi->GetUserRanking(UserId, LeaderboardCode, THandler<FAccelByteModelsUserRankingData>::CreateLambda([](const FAccelByteModelsUserRankingData& Result)
{
// Do something if GetUserRanking succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetUserRanking fails
}));
var leaderboard = AccelByteSDK.GetClientRegistry().GetApi().GetLeaderboard();
string userId = "SomeUserId";
string leaderboardCode = "SomeLeaderboardCode";
leaderboard.GetUserRanking(userId, leaderboardCode, result =>
{
if (result.IsError)
{
// Do something if GetUserRanking fails
Debug.Log($"Error GetUserRanking, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
return;
}
// Do something if GetUserRanking is successful
});
string leaderboardCode = "<my-leaderboard-code>";
string userId = "<user-id>";
var response = sdk.Leaderboard.LeaderboardData.GetUserRankingPublicV1Op
.Execute(leaderboardCode, sdk.Namespace, userId);
if (response != null)
{
// Do something if successful
}
leaderboardDataService := &leaderboard.LeaderboardDataService{
Client: factory.NewLeaderboardClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}
leaderboardCode := "myleaderboardcode"
namespace := "mygame"
userId := "myuserid"
input := &leaderboard_data.GetUserRankingPublicV1Params{
LeaderboardCode: leaderboardCode,
Namespace: namespace,
UserID: userId,
}
result, err := leaderboardDataService.GetUserRankingPublicV1Short(input)
final LeaderboardData leaderboardDataWrapper = new LeaderboardData(sdk);
String leaderboardCode = "<my-leaderboard-code>";
String userId = "<user-id>";
ModelsUserRankingResponse response;
try {
response = leaderboardDataWrapper.getUserRankingPublicV1(GetUserRankingPublicV1.builder()
.namespace("<namespace>")
.userId(userId)
.leaderboardCode(leaderboardCode)
.build());
} catch (Exception e) {
// Do something if an error occurs
return;
}
if (response == null) {
// Null response from server
} else {
// Do something if successful
}
import accelbyte_py_sdk.api.leaderboard as leaderboard_service
result, error = leaderboard_service.get_user_ranking_public_v1(
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)