見出し画像

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個追加されました。複数作りたい場合は上記作業を繰り返します。

Steam実績完成!

※2024/11/29追記:
Steam実績を追加後さらに、変更を公開する必要があります。

実績を追加後、公開が必要

5.Gamemakerにてコーディング

必要なコーディングは下記の3つです。

  1. ゲーム開始時、”おまじない1”を実行する

  2. ゲーム中、常に”おまじない2”を実行する

  3. 実績を解放したい箇所で”おまじない3”を実行する

私の場合は、1と2を実行するためSteam専用オブジェクトを作成しました。Steamに関する事は全て彼(?)にやってもらいました。

Steam専用オブジェクト、”obj_g_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にて販売中です)




いいなと思ったら応援しよう!