まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Steamでオンラインランキングを実装してみたので忘備録として書いておきます。
オンラインランキングを実装する流れとしては
①Steamworks管理画面にランキングを作成
②Steamworks.NETをUnityにインストール
③UnityにてオンラインランキングをC#で実装
といった感じになります。
実装にあたり
Steamのランキング(リーダーボード)をUnityで実装する【Unity】【Steam】
Unity製ゲームで、Steamのランキング実装をするには
コチラのサイトさんを参考にさせて頂きました。
①Steamworks管理画面にランキングを作成
Steamworks管理画面のテクニカルツールにあるSteamworks設定編集→データ&実績→ランキングを選択します。
ランキングを追加で任意の名前を付けて作成します。
パラメータの内容はSteamworksの説明から抜粋
書き込みと読み込みは特別な事をしない限りは設定する必要なさそうです。
並べ替え方法1位から順番に表示したい場合は降順にします。
実施したいランキングの数だけ作成します。
(例えばイージーとノーマルとハードに分けたかったら3個作る)
ランキングを作成したらココでの設定は終了です。
②Steamworks.NETをUnityにインストール
アセットストアにもあるみたいですが公式の?Githubからダウンロードするのが良さげ
Releases · rlabrecque/Steamworks.NET
ちょっと下にあるSteamworks.NET_20.1.0.unitypackageをダウンロードしてAssets→Import Package→Custom Packageでインストールします。
インストールしたらゲームプロジェクトフォルダの一番上の階層にsteam_appid.txtがあると思うので、それを開くのですがUnityからは見えないのでWindowsからテキストエディタで開きます。
初期は480?かと思いますので、自分のゲームのID(Steamworksに表示されているゲームタイトルの横にある数字)を入力して保存します。
保存したらココでの設定は終了です。
③UnityにてオンラインランキングをC#で実装
※オンラインランキングを使用するときはUnityと同時にSteamも立ち上げておかないとエラーが出るので注意が必要です。
ランキング送受信する時のC#スクリプトはこんな感じ
リーダーボードの取得
ランキングの取得
スコアの送信
流れとしてはリーダーボードを取得してランキング取得して表示もしくは送信を行うだけなので、ランキングの取得とスコアの送信が出来れば何とかなる感じです。
取得した順位はテキストなどに入れて表示すればランキング表が出来ます。
ただ、あまり頻繁に取得すると表示制限?が掛かるみたいで取得出来なくなるので、あまり更新頻度は上げない方が良さそうです。
オンラインランキングを実装する流れとしては
①Steamworks管理画面にランキングを作成
②Steamworks.NETをUnityにインストール
③UnityにてオンラインランキングをC#で実装
といった感じになります。
実装にあたり
Steamのランキング(リーダーボード)をUnityで実装する【Unity】【Steam】
Unity製ゲームで、Steamのランキング実装をするには
コチラのサイトさんを参考にさせて頂きました。
①Steamworks管理画面にランキングを作成
Steamworks管理画面のテクニカルツールにあるSteamworks設定編集→データ&実績→ランキングを選択します。
ランキングを追加で任意の名前を付けて作成します。
パラメータの内容はSteamworksの説明から抜粋
*********************************************************************
名前-ここには、内部開発用に意味のある名前を設定します。
コミュニティ名-ランキングをコミュニティハブに表示する場合は、ここに一般公開用の名前を設定します。 名前が入力されていない場合は、ランキングは表示されません。
並べ替え方法-ランキングの並べ替え順序を設定します。 順位が基準のランキングでは昇順を使用し、 ハイスコアが基準の場合は、降順を使用してください。
表示タイプ-ランキングで表示するデータのタイプを決定します。 数値、秒またはミリ秒から選択します。
書き込み-これが「信頼済み」に設定されている場合、クライアントによってランキングスコアを設定することはできず、SetLeaderboardScore WebAPIによってのみ設定できます。 デフォルトでは設定されていません。
読み取り-これが「フレンド」に設定されている場合、ゲームはユーザーのフレンドのランキングスコアのみを読み取ることができます。すべてのスコアはWebAPIによって常に読み取り可能です。 デフォルトでは設定されていません。
*********************************************************************書き込みと読み込みは特別な事をしない限りは設定する必要なさそうです。
並べ替え方法1位から順番に表示したい場合は降順にします。
実施したいランキングの数だけ作成します。
(例えばイージーとノーマルとハードに分けたかったら3個作る)
ランキングを作成したらココでの設定は終了です。
②Steamworks.NETをUnityにインストール
アセットストアにもあるみたいですが公式の?Githubからダウンロードするのが良さげ
Releases · rlabrecque/Steamworks.NET
ちょっと下にあるSteamworks.NET_20.1.0.unitypackageをダウンロードしてAssets→Import Package→Custom Packageでインストールします。
インストールしたらゲームプロジェクトフォルダの一番上の階層にsteam_appid.txtがあると思うので、それを開くのですがUnityからは見えないのでWindowsからテキストエディタで開きます。
初期は480?かと思いますので、自分のゲームのID(Steamworksに表示されているゲームタイトルの横にある数字)を入力して保存します。
保存したらココでの設定は終了です。
③UnityにてオンラインランキングをC#で実装
※オンラインランキングを使用するときはUnityと同時にSteamも立ち上げておかないとエラーが出るので注意が必要です。
ランキングを使用するスクリプトには一番初めに
using Steamworks;
を記述する必要があります。ランキング送受信する時のC#スクリプトはこんな感じ
リーダーボードの取得
ランキングの取得
スコアの送信
流れとしてはリーダーボードを取得してランキング取得して表示もしくは送信を行うだけなので、ランキングの取得とスコアの送信が出来れば何とかなる感じです。
取得した順位はテキストなどに入れて表示すればランキング表が出来ます。
ただ、あまり頻繁に取得すると表示制限?が掛かるみたいで取得出来なくなるので、あまり更新頻度は上げない方が良さそうです。
PR
この記事にコメントする
カレンダー
12 | 2025/01 | 02 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事