ポータルで stat / リーダーボードを作成する
Steamworks
Steamworks 管理ポータルで、Stats & Achievements > Leaderboards に移動します。次のスクリーンショット(Steamworks ドキュメントから)に示すようにフォームを入力します。XBOX Game Development Kit (GDK)(event-based)
Partner Center でゲームに移動し、XBOX services > Gameplay settings を選択します。右ペインのナビゲーション バーで、Player Stats > Stat Rules を選択し、stat の要件に合わせて構成した Show として stat ルールを追加します。stat の更新には、プレイヤー(ユーザー)が前回の更新以来どれだけ移動したかの計算値が含まれるため、サービスがこの値を取得する測定フィールドを指定します。イベントを更新するデータを、イベントの Measurements または Dimensions フィールドに保存しても機能的な違いはありません。2 つのフィールドは Application Insights で使用するために存在します。この詳細については、[Application Insights API for custom events and
スコアをアップロードする
Steamworks
Steamworks では、移動したフィートの新しい合計値を計算し、ISteamUserStats::UploaderLeaderboardScore メソッドを使用して API に送信する必要があります。
XBOX Game Development Kit (GDK)(event-based)
XBOX Game Development Kit (GDK) のイベントベース stats では、イベント受信時にこの stat をインクリメントすることを指定し、このdiff 値を measurements JSON 文字列のどこに見つけるかを指定しているため、移動したフィートの差分を XblEventsWriteInGameEvent に渡すだけです。以下に示します。
グローバル リーダーボードを取得する
Steamworks SDK では、ISteamUserStats::GetLeaderboardEntries を呼び出し、callback 関数内で ISteamUserStats::GetDownloadedLeaderboardEntry を呼び出してリーダーボードの各エントリ、つまり「行」を取得することで、グローバル リーダーボードを取得できます。
Steamworks
XBOX Game Development Kit (GDK)(event-based)
XBOX Game Development Kit (GDK) API は類似のパターンに従います。どのリーダーボードが必要か、どのスコープをカバーするか、どう並べ替えるか、含める追加フィールド(ある場合)などを指定するクエリを構築します。クエリでXblLeaderboardGetLeaderboardAsync を呼び出した後、XblLeaderboardGetLeaderboardResultSize と XblLeaderboardGetLeaderboardResult を使用して、指定されたバッファに結果を入れ、次のコード例に示すようにそれらを反復処理できます。
ソーシャル リーダーボードを取得する
Steamworks では、ELeaderboardDataRequest::k_ELeaderboardDataRequestFriends 列挙型を使用してリーダーボードを現在のユーザーのフレンドにスコープできます。
XBOX Game Development Kit (GDK) では、これは ソーシャル リーダーボード として知られています。XBOX services からソーシャル リーダーボードを取得するには、XblLeaderboardQuery 構造体で xboxIUserId を XBOX services にサインインしている現在のユーザーの XBOX User ID (XUID) に、leaderboardName を nullptr に、socialGroup を XblSocialGroupType::People または XblSocialGroupType::Favorites に設定します。前述のように XblLeaderboardGetLeaderboardAsync を呼び出します。
詳細については、XblSocialGroupType を参照してください。
