🌟
GodotSteamの初期化でハマったのでめも
GodotSteamとは
- GodotのAssetLibで公開されてる、SteamWorksSDKラッパー
- サードパーティーツールは避けたい気持ちもあったが、自前でGDNative用意してC++のラッパー書くのに比べたら全然マシ
- リーダーボード、インベントリ機能、マルチとか欲しい機能は一通り揃ってそう
1. 本当のgetting started
4.x系なら Godotエディター上でAssetLib→ GodotSteam 検索、バージョンに合うものを入れれば完了。
・・・のはずだったが、エラーで若干はまった。
まずは以下コードを適当なNodeにつける
extends Node
func _ready() -> void:
initialize_steam()
func initialize_steam() -> void:
var initialize_response: Dictionary = Steam.steamInitEx(480, false)
print("Did Steam initialize?: %s " % initialize_response)
その後以下に注意
- Steamクライアントを起動しておく
- devクライアントから本番環境へ繋ぐみたいな気持ちの悪さがあって最初は半信半疑だった(w
- Getting Startedの例では
Steam.steamInitEx()の引数順が間違っていて動かない(!?- 1つ目にappIdを指定する。
Steam.steamInitEx(480, false)
- 1つ目にappIdを指定する。
- また ログイン中のSteamアカウントで AppID 480のSpacewarをインストールする
- Steam クライアントまたはブラウザで
steam://install/480を開く。- 普通のゲーム買う感じでライブラリに保存しないといけない。
- 本番では2万払ってAppIDを作らないといけないのだけど、Steamが開発用のAppIDを用意してくれてる。
- 海賊版アプリに悪用されてる説があるw https://news.yahoo.co.jp/articles/1683e0011bf4facb0ddddea2b906c90156a36d13
- Steam クライアントまたはブラウザで
にしても、サンプルコードが間違ってる+構文エラー出ないのはビビったw
↓ドキュメント

↓以下、実は間違い

2. Steamオーバーレイで動作確認
- ゲーム起動したらShift + Tab で表示されるのを確認しよう。
- ビルド(エクスポート)しなくてもOK
- ショートカットキーはSteam クライアントが injectしてくれるので、追加実装は不要
- むしろゲーム側でキーを奪わないこと。InputMap で Shift+Tab をバインドしている場合は削除する。
以上
Discussion