GameMaker デバッグ
このページでは、現在利用可能な最初の GameMaker 機能 のデバッグだけを扱います。
- ゲーム認可
- 実績解除
- 実績進捗報告
シナリオ A: 公式サンプルをそのままデバッグする
Section titled “シナリオ A: 公式サンプルをそのままデバッグする”まず SDK の主要フロー自体が通っているかだけ確認したいなら、リリースパッケージ同梱のサンプルから始めてください。
samples/gamemaker/windows-auth-achievements/project/IGP.WindowsAuthAchievements.yypを開く- F5 で実行する
- 画面上では次の項目を重点的に見る
InitializedConnectionAuthorizationPending eventsLatest resultLatest errorLatest event
- F1 で実績解除を実行する
- F2 で進捗報告を実行する
サンプルは動くのに自分のゲームでは成功結果が出ない場合は、まずデモ用の appId = 10 やデモ用実績 key のままになっていないか確認してください。
シナリオ B: 自分のプロジェクト内でデバッグする
Section titled “シナリオ B: 自分のプロジェクト内でデバッグする”自分のプロジェクトで一番大事なのは UI ではなく、次の呼び出し順が本当に守られているかです。
igp_init(app_id, options)が起動時に 1 回だけ呼ばれるigp_update()が Step などで継続的に呼ばれるigp_poll_event()でイベントキューを継続的に空にしている- 終了時に
igp_shutdown()が呼ばれる
このどれかが欠けると、状態が「少し動いているように見えるのに本当に準備完了にならない」という挙動になりやすいです。
特に見るべき状態
Section titled “特に見るべき状態”自分のプロジェクトを切り分けるときは、igp_get_state_snapshot() が返す次の項目を見るのがいちばん有効です。
connection_statedesktop_channel_statedesktop_attach_statedesktop_attach_sourceauthorization_stateauthorization_requiredbridge_loadedbridge_errorlast_errorlast_resultpending_events
とくに有用なのは次の 2 つです。
bridge_loaded: ネイティブブリッジ DLL が本当に読み込まれたかbridge_error: DLL 読み込み失敗時の、もっとも直接的な理由
能動的に確認したいとき
Section titled “能動的に確認したいとき”状態変化を待つだけでなく、次の 2 つの確認も有効です。
1. 明示的にゲーム認可を要求する
Section titled “1. 明示的にゲーム認可を要求する”var result = igp_request_game_authorization(global.igp_app_id);show_debug_message(json_stringify(result));この呼び出しで得られるのはリクエスト結果であり、最終状態は引き続き authorization_state を見てください。
2. デスクトップ機能一覧を取得する
Section titled “2. デスクトップ機能一覧を取得する”var capabilities = igp_get_desktop_capabilities();show_debug_message(json_stringify(capabilities));ここで結果が取れないなら、先に実績ロジックではなくデスクトップ接続自体を疑ってください。
よくある落とし穴
Section titled “よくある落とし穴”APP_ID_REQUIRED:app_idが空、正数ではない、または初期化自体が成立していないbridge_loaded = false: DLL を Included File に入れていない、または入れたが runtime で読み込みに失敗しているbridge_errorに値がある: まずそこを読む。推測よりも直接的な理由が出ていることが多いConnectionが長くconnectingのまま: デスクトップクライアントが起動していない、attach に失敗している、または自動起動待ちの途中Authorizationがpendingのまま: 認可ロジックの問題よりも、前段の接続が終わっていない、またはigp_update()を継続的に呼んでいないケースが多い- F1 / F2 を押しても成功結果が出ない: 実績 key がまだサンプル値のまま、またはバックエンド側にその実績が未設定
インストールに戻るべきケース
Section titled “インストールに戻るべきケース”次のいずれかに当てはまるなら、業務ロジック側を追い続けるより先に GameMaker インストール に戻ってください。
- プロジェクト内に
igp_gms2_windows_runtimeが存在しない - Included Files に
IGP.GamemakerDesktopBridge.Native.dllがない - 起動直後にスクリプトまたは DLL 欠落で落ちる