002.GamemakerでSteamAPIを使う(Steam実績の実装)~実装編~
●はじめに
実際に自分が”Steam内実績を実装したゲーム”をリリースした時にした事を書いていきます。”導入編”をお読みでない方はそちらを先にご覧ください。
↓導入編
https://note.com/menbounote91/n/n82976b23aa9e?sub_rt=share_pb
●必要な事
やる事は大まかに分けて5つです。
1.Steamに出すゲームの”ApplicationID”を控えておく
2."Steam SDK"をダウンロード
3."GMEXT-Steamworks"をダウンロード
●4.SteamworksにてSteam内実績を作る
●5.Gamemakerにてコーディング
1~3は”導入編”で解説しています。4~5を本記事で解説予定です。
4.SteamworksにてSteam内実績を作る
Steamworksのアプリ管理画面から、”Steamworks設定を編集”を選ぶ
データ&実績タブ→実績
”新しい実績”ボタンを押すと、実績を追加できます。
①:実績のID。コーディング時に使う。
②:表示実績タイトル、表示実績文言。Steamゲームで実績を満たすと右下にニョキッと出てくるやつ。※言語が複数対応のゲームの場合、対応する言語ごとに設定が必要。
③:実績を隠すかどうか。チェックを入れると、プレイヤーは実績の解除条件が見えない。
④:達成アイコン。Steamゲームで実績を満たすと右下にニョキッと出てくるやつ。※⑥で保存してからでないと追加できない。
⑤:未達成アイコン。達成アイコンを灰色にするとそれっぽい。※⑥で保存してからでないと追加できない。
⑥:保存ボタン。Steam実績が追加されるが、その後達成アイコンと未達成アイコンを設定する必要がある。
一度保存した後、”Edit"ボタン押下でアイコンのアップロードができる。最後に保存ボタン押下を忘れずに。
これでSteam実績が1個追加されました。複数作りたい場合は上記作業を繰り返します。
※2024/11/29追記:
Steam実績を追加後さらに、変更を公開する必要があります。
5.Gamemakerにてコーディング
必要なコーディングは下記の3つです。
ゲーム開始時、”おまじない1”を実行する
ゲーム中、常に”おまじない2”を実行する
実績を解放したい箇所で”おまじない3”を実行する
私の場合は、1と2を実行するためSteam専用オブジェクトを作成しました。Steamに関する事は全て彼(?)にやってもらいました。
おまじない1。Steamが有効かどうかを調べて、有効ならフラグをtrueに設定しています。Steamが無効なら実績関連の操作は行いません。
//作成時
flg_steam_api = false;
if (steam_initialised()){
if (steam_stats_ready() && steam_is_overlay_enabled()){
flg_steam_api = true;
}
}
function steam_jisseki_kaihou(_steam_jisseki_name){ //STEAM実績を解放する
if flg_steam_api {
steam_set_achievement(_steam_jisseki_name);
}
}
おまじない2。1行だけです。
//ステップ時
steam_update();
おまじない3。実績解放条件はゲームによりけりです。実績名はSteamworksにて作った実績のIDを文字列で指定します。
if (実績解放条件を満たした時){
obj_g_steam.steam_jisseki_kaihou("実績名");
}
以上、Steam実績の実装でした。
記事へのご質問等あれば気軽にコメント下さい。(下記Discordで聞いてもらえるのが一番早いと思います)
●参考URL
GMEXT-Steamworksの使用ガイド
沢山関数があります。Steamユーザー名の取得やスコアボードの実装なども可能なようです。
・管理関数
https://github.com/YoYoGames/GMEXT-Steamworks/wiki/management
・一般関数
https://github.com/YoYoGames/GMEXT-Steamworks/wiki/general
・統計・実績関数
https://github.com/YoYoGames/GMEXT-Steamworks/wiki/achievements#steam_set_achievement
Gamemaker日本語Discord
https://discord.gg/FXuHCM9QCD
詳しい方々が質問に優しく答えてくださいます。自分も何度もお世話になっています。
Gamemaker日本語掲示板
https://zawazawa.jp/gamemaker_jp/
こちらも詳しい方々が優しく教えてくださいます。メンバーはDiscordと大差ないかもしれません?
GMEXT-Steamworks導入方法
本記事より詳しく書かれています。英語が読めるならこちらへ。
https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Guides#setup-guide-ideruntime-20226
(宣伝)
(アクションとシミュレーションを組み合わせた拙作「Simuaction -シミュアクション-」、Steamにて販売中です)