ゲーム認可
ゲーム認可は、現在のプレイヤーが IGP 上でそのゲームを正しく所有しているか確認します。プレイヤーが主要なゲームプレイに入った後で失敗結果を処理することを避けるため、起動フローのできるだけ早い段階で導入することを推奨します。
サポートしているエンジン
Section titled “サポートしているエンジン”| エンジン | 状態 | 説明 |
|---|---|---|
| Unity | Preview | IGPRuntimeManager を通じてデスクトップクライアント認可フローを自動的に導入します。 |
| GameMaker | Preview | Windows runtime とローカルデスクトップクライアントを通じて認可を完了します。 |
| Godot | 独立した入口は未公開 | 現在の Godot 側は起動チケット、ルーム、実績が中心で、独立したゲーム認可 API はまだ提供していません。 |
- 起動と接続 が完了している。
- IGP から割り当てられた
appIdが設定されている。 - ローカル IGP デスクトップクライアントが利用できる。
- 正式なゲーム検証を行う場合、バックエンド認可設定が現在の
appIdと一致している。
Unity プロジェクトでは通常 appId を設定するだけで、runtime が認可フローを処理します。ビジネス側は主に状態変化を監視します。
using UnityEngine;using IGP.UnitySDK;
public sealed class IGPAuthorizationView : MonoBehaviour{ [SerializeField] private IGPRuntimeManager runtimeManager;
private void OnEnable() { runtimeManager.onAuthorizationStateChanged.AddListener(OnAuthorizationChanged); runtimeManager.onAuthorizationFailed.AddListener(OnAuthorizationFailed); }
private void OnDisable() { runtimeManager.onAuthorizationStateChanged.RemoveListener(OnAuthorizationChanged); runtimeManager.onAuthorizationFailed.RemoveListener(OnAuthorizationFailed); }
private void OnAuthorizationChanged(IGPAuthorizationState state) { Debug.Log($"IGP authorization: {state}");
if (runtimeManager.IsAuthorized) { // メインメニューに入る、またはゲームを続行する。 } }
private void OnAuthorizationFailed(string message) { Debug.LogError($"IGP authorization failed: {message}"); }}最小検証を行う場合は、まず Unity Quick Start を実行してください。
GameMaker では、まず runtime を初期化し、その後毎フレーム更新して認可状態を読み取ります。
// Createglobal.igp_app_id = YOUR_APP_ID;igp_init(global.igp_app_id, { desktop_auto_attach: true});// Stepigp_update();
var state = igp_get_authorization_state();if (state == "authorized_online" || state == "authorized_offline"){ // ゲームへの進入を許可する。}
var evt = igp_poll_event();while (!is_undefined(evt)){ if (evt.type == "authorization_state_changed") { show_debug_message("IGP authorization: " + string(evt.state)); }
evt = igp_poll_event();}完全な導入順は GameMaker Quick Start を参照してください。
Godot には現在、独立したゲーム認可入口はありません。開発中バージョンではコマンドラインから起動チケットを読み取り、マルチプレイヤーフローへ入れますが、正式なゲーム認可 API として扱うべきではありません。
セルフテスト
Section titled “セルフテスト”| エンジン | 確認項目 |
|---|---|
| Unity | AuthorizedOnline または AuthorizedOffline を監視でき、失敗時には失敗理由を確認できる。 |
| GameMaker | igp_get_authorization_state() が pending から authorized_online、authorized_offline、または failed に移る。 |
| Godot | 現時点では独立したゲーム認可の検証は行いません。 |
よくある問題
Section titled “よくある問題”- 認可が
pendingのままになる: デスクトップクライアント接続が成功しているか確認してください。 - 接続は正常だが認可に失敗する:
appIdとバックエンド設定が一致しているか確認してください。 - Unity Editor でデスクトップ機能の検証に失敗する: Unity デバッグ に従って Editor デバッグ項目を設定してください。
- GameMaker でイベントがない: 毎フレーム
igp_update()を呼び、igp_poll_event()を継続的にポーリングしているか確認してください。