マガジン

アソバースSDKとは:できることと導入手順

遊びをつくる

執筆にClaudeを使用しています。

地形や橋のある小さなゲーム世界を箱に整理し、ブラウザ形のアーチへ運ぶ模型
記事のテーマをもとに制作したAI生成イラスト。

アソバースにゲームを投稿する方法は、HTMLファイルやZIPをアップロードするだけでも成立します。それでも「SDKを使う」という選択肢が存在するのは、プラットフォームとゲームを連携させる機能がSDK経由でしか使えないからです。 SDKを導入すると、アソバースのアカウントをゲーム内部から参照できるようになります。具体的には、ログイン済みのプレイヤーを識別し、プレイデータをクラウドに保存・復元するといった処理を、ゲーム側のサーバーを持たずに実装できます。逆に言えば、SDKを組み込んでいないゲームでは、アソバース上でプレイヤーがログインしていても、その情報はゲーム内部には届きません。 この記事では、SDKが何を提供するのか・どんなゲームに向いているかという判断基準を先に整理し、そのうえで実際の導入手順を示します。

この記事の目次
  1. SDKが提供する二つの主機能
  2. SDKを使うべきか、使わなくてもよいか
  3. 導入前に確認する前提条件
  4. 導入の基本手順
  5. 組み込み時に失敗しやすいポイント
  6. 次の行動
  7. 参考資料

SDKが提供する二つの主機能

アソバースSDKには大きく「共通ログイン連携」と「クラウドセーブ」という二本柱があります。

共通ログイン連携は、アソバースのアカウント情報をゲーム内から取得する仕組みです。プレイヤーが誰であるかを識別できるため、スコアをアカウントに紐付けたり、初回プレイの案内を出し分けたりといった処理が可能になります。ゲーム作者が独自の認証画面を作る必要はなく、プラットフォーム側のログイン状態をそのまま受け取る形になります。

クラウドセーブは、ゲームの進行データや設定をアソバースのサーバーに保存し、別のブラウザや端末からも引き継げるようにする機能です。ブラウザのローカルストレージに保存する方法と比べると、ブラウザのキャッシュ削除や端末の切り替えでデータが消えるリスクを避けられます。

なお、アソバースのトップページに表示されるプレイ履歴はプラットフォーム側が自動で記録するものであり、クラウドセーブとは別の仕組みです。クラウドセーブは「ゲームの内部状態を作者が設計して保存する」ものと理解してください。

SDKを使うべきか、使わなくてもよいか

SDKの導入には実装コストがかかるため、すべてのゲームに必須というわけではありません。次の基準で判断するとよいでしょう。

SDK導入が効果的なケース

  • セーブデータが重要なRPGや育成ゲームなど、途中再開を前提とした設計のとき
  • スコアやランクをアカウントに結びつけて表示したいとき
  • 複数のデバイスで同じ進行状況を使いたいユーザー体験を設計するとき

SDKなしでも問題ないケース

  • 短時間で完結するパズルや反射神経系ゲームなど、セーブが不要なとき
  • まず動くゲームを公開して反応を見たい、プロトタイプ段階のとき
  • ブラウザのローカルストレージで十分な保存量・用途のとき

単一HTMLで試作してフィードバックを得てからSDKを組み込む、という進め方も現実的な選択肢です。

導入前に確認する前提条件

SDKを組み込む前に、以下の点を整理しておくと作業がスムーズに進みます。

  1. アソバースの開発者アカウントを持っていること SDKの利用にはアカウントが必要です。まだ登録していない場合は先に済ませてください。
  2. ゲームがJavaScriptで動作するHTMLベースであること SDKはJavaScriptのライブラリとして提供されます。UnityのWebGL出力など、JavaScriptを直接書かない環境でも組み込めるケースはありますが、対応方法は環境ごとに異なります。
  3. ゲームをZIPまたは単一HTMLとしてアソバースに投稿できる状態にあること SDKのテストはアソバース上での実行が前提になるため、投稿の準備も並行して進めておくと効率的です。

SDKのバージョンや利用条件は変わる場合があるため、具体的な仕様は公式ドキュメントで最新の情報を確認してください。

導入の基本手順

以下はSDK組み込みの典型的な流れです。公式ドキュメントに記載された最新の手順を正とし、以下はその構造を理解するための参考としてください。

1. SDKスクリプトを読み込む

HTMLの<head>または<body>の末尾に、アソバースが提供するSDKのスクリプトタグを追加します。CDN(インターネット上の配信サーバー)経由で読み込む形が一般的です。スクリプトのURLは公式ドキュメントに記載されています。

2. 初期化処理を呼び出す

ゲームのJavaScriptコードの起動部分で、SDKの初期化関数を呼び出します。この時点でアソバース側との通信が始まり、ログイン状態の取得などが可能になります。初期化が完了する前にログイン情報を参照しようとすると取得できないため、非同期処理(async/awaitやPromise)で完了を待ってから次の処理を進めるよう設計します。

3. ログイン情報を取得する

初期化完了後、SDKが提供する関数でユーザー情報を取得できます。未ログインのプレイヤーにはnullや未定義値が返ってくる設計になっているため、ログイン済みかどうかを確認する分岐を必ず入れてください。ログインを強制したい場面では、SDKのログイン誘導関数を使います。

4. クラウドセーブを実装する

セーブのタイミング(ステージクリア時・一定時間ごとなど)を設計し、SDKの保存関数にオブジェクト形式のデータを渡します。読み込みはゲーム起動時に一度行い、データが存在すれば継続、なければ新規スタートという分岐を作るのが基本パターンです。保存できるデータの容量や構造に制限がある場合があるため、公式ドキュメントの制限値を事前に確認しておくことを勧めます。

5. ローカル環境でのテストと本番確認

SDKの一部機能はアソバースのドメイン上でのみ正常に動作します。ローカルのfile://環境では初期化が通らなかったり、ログイン取得が空になったりするケースを想定しておいてください。開発中はモック(仮の応答を返すコード)を用意して動作確認し、アソバースに投稿してから最終的な動作確認を行う流れを取ると、手戻りが少なくなります。

組み込み時に失敗しやすいポイント

非同期処理の待ち忘れが最も多い落とし穴です。SDKの初期化やデータ読み込みは通信を伴うため、完了を待たずに次の処理を進めると「データが空のまま新規スタートしてしまう」「ログイン状態が常にnullになる」といった症状が起きます。awaitやthenを使って処理の順序を明示的に制御してください。

保存データの設計を後回しにすることも問題になりがちです。「とりあえず全部保存する」という設計では、ゲームが大きくなるにつれてデータ構造が複雑になり、バージョンアップ時に古いデータとの互換性を保つのが困難になります。最初から「保存に必要な最小限の項目」を定義し、バージョン番号をデータに含めておくと後の修正が楽になります。

ログインしていないプレイヤーへの配慮も見落とされがちです。アソバースはログインなしでもゲームをプレイできます。SDKでユーザー情報が取得できなかった場合でもゲームが壊れないよう、セーブをスキップしてゲームだけを進められる経路を残しておくと、より多くのプレイヤーに対応できます。

次の行動

アソバースの公式ドキュメントでSDKのリファレンスと最新のスクリプトURLを確認し、まず初期化とログイン取得だけを実装したテストページを作ってみてください。クラウドセーブはその動作確認が取れてから追加する段階的な進め方が、全体の手戻りを減らします。ゲームが完成したらアソバース(https://aso-verse.com)に投稿して公開できます。

参考資料

  • アソバース 公式開発者ドキュメント(SDK リファレンス)