Godot SDK
Godot 4.2 以降向けの GDScript アドオンです。Unity SDK と同じサービスを利用できます。
コードのコメントと API 名は、SDK と一致させるため英語のままにしています。
動作要件#
- Godot 4.2 以降、GDScript。デスクトップ、モバイル、Web へのエクスポートに対応しています。
- 依存関係はありません。Godot の
HTTPRequest、Crypto、FileAccessのみを使用します。
インストール#
- プロジェクトページまたはダウンロードページから、Godot SDK の
.zipをダウンロードします。 - フォルダーが
res://addons/majacloudになるように、プロジェクト内に解凍します(フォルダー名は変更しないでください)。 - Project ▸ Project Settings ▸ Plugins で Majacloud を有効にします。プラグインによって
Majacloudオートロードが追加されます。
プロジェクト設定#
プラグインは Project Settings ▸ General ▸ Majacloud に次の項目を追加します。
| 設定 | デフォルト | 意味 |
|---|---|---|
connection/base_url | このサーバーのアドレスです。 | |
connection/project_id | ダッシュボード ▸ API キー。 | |
connection/client_key | 公開キー pk_live_…。 | |
connection/config_public_key | Test connection で自動入力されます。リモートコンフィグの検証に使う鍵を固定します。 | |
advanced/timeout_seconds | 15 | リクエストが timeout で失敗するまでの秒数。 |
advanced/max_retries | 2 | ネットワークエラーやサーバーエラーの際に、安全なリクエストをリトライする回数。 |
advanced/fetch_config_on_start | true | ゲームの起動時にリモートコンフィグを取得します。 |
advanced/log_requests | false | すべてのリクエストを出力パネルに表示します。 |
接続テスト#
Project ▸ Tools ▸ Majacloud: Test connection は、現在の設定で API を呼び出してプロジェクト名とプランを表示し、リモートコンフィグの公開鍵を majacloud/connection/config_public_key に保存します。
コードから設定する#
コードから環境を切り替えるには configure() を呼び出します。セッションが終わるまで、設定が置き換えられます。
# Switch environments from code; the last argument pins the Remote Config key (PEM)
Majacloud.configure("https://staging.yourstudio.com", "<project id>", "pk_live_…", public_key_pem)MajacloudResult#
すべての呼び出しは await で待機でき、MajacloudResult を返します。ネットワークエラーやサーバーエラーでクラッシュすることはありません。
| フィールド | 意味 |
|---|---|
ok | 呼び出しが成功した場合は true。 |
value | Dictionary 形式の REST レスポンス(REST リファレンスを参照)。整数は int として渡されます。 |
error | 成功時は空。失敗時は conflict や network などの安定したコード(エラーを参照)。 |
message | 人が読める説明。 |
status | HTTP ステータス。サーバーに到達しなかった場合は 0。 |
request_id | ログページでこの ID を検索できます。 |
details | サーバーからの追加データ(例: next_claim_at)。 |
is_retryable() と is_not_found()。 |
シグナル#
UI を更新するには、次のシグナルに接続します。
func _ready() -> void:
Majacloud.auth.player_changed.connect(_on_player_changed)
Majacloud.auth.session_expired.connect(func(): show_sign_in_screen())
Majacloud.remote_config.updated.connect(func(): apply_balance())
func _on_player_changed(player: Dictionary) -> void:
$NameLabel.text = player.get("display_name", "")デバイス上の保存データ#
ゲストセッションは user://majacloud/<project id>.session に暗号化して保存され、次回の起動時に復元されます。検証済みのリモートコンフィグはオフラインプレイ用にその隣にキャッシュされ、user://majacloud/device.id にはランダムなインストール ID(ハードウェア情報に基づかないもの)が保存されます。
Web エクスポート#
- エクスポートしたゲームは HTTPS で配信してください。ブラウザに必要な CORS ヘッダーは API が送信します。
user://はブラウザのストレージに保持されるため、ページを再読み込みしてもセッションは維持されます。- ブラウザが新しいタブを開けるように、
link_account()は入力イベント(ボタンの押下など)から呼び出してください。