作者向けガイド / Creator guide
一度のログインで、
ゲームの続きまで。
アソバースの中で遊ぶゲームは、プレイ履歴がログイン中のアカウントに記録されます。ゲームから共通のアカウント・セーブ機能を使うと、プレイヤーにもう一度ログインしてもらう必要がなくなります。
投稿するだけで使えること
Webゲームの HTML ファイル、または index.html を含む ZIP ファイルを投稿できます。自分でサーバーを用意したり、先にデプロイする必要はありません。公開済みのゲームは URL で投稿できます。
ZIP は 20 MiB 以内、展開後は合計 100 MiB・1,000 ファイル以内、各ファイルは 30 MiB 以内です。HTML・JavaScript・画像・音声など、ブラウザで動く完成済みのファイルをまとめます。Unity などは WebGL 向けに書き出してください。サーバー用プログラムやパソコン向け実行ファイルは動きません。
画像やプログラムの参照先には ./assets/… などの相対パスを使います。Vite で作っている場合は vite.config.js を次のように設定し、ビルド後の dist の中身を ZIP にしてください。マルチスレッド用の SharedArrayBuffer やサービスワーカーは利用できません。
export default {
base: './',
// ほかの設定はそのまま
};
アップロードしたゲームには、アソバース連携用の小さなプログラム(SDK)が自動で追加されます。公開済み URL のゲームは、次の1行を HTML のゲーム用スクリプトより前に追加してください。
<script src="https://asoverse-f8998.web.app/sdk/asoverse.js"></script>
制作に使っている AI に、この依頼を渡す
このWebゲームをアソバースのアカウント・セーブに対応させてください。
1. アソバースで開かれたときは Asoverse.ready() を待ちます。
2. 返り値の player.authenticated が true なら追加ログインは表示しません。
player.id はこのゲームだけで使うプレイヤーIDです。
3. 開始時に await Asoverse.load() で続きを読み込みます。
4. 進行が変わったときは await Asoverse.save(データ) で保存します。
JSON形式で128 KiB以内にします。毎フレーム保存はしません。
5. 保存エラーを画面で知らせ、失敗したデータは捨てないでください。
6. アソバース以外で直接開いた場合も、ゲストとして遊べるようにします。
既存のログインや localStorage の読み書きは、必要に応じて上記に接続します。
アソバースのログイン用メールアドレスや認証トークンは要求しません。
最小のコード例
const session = await Asoverse.ready();
const player = session.player; // { id, authenticated }
const progress = await Asoverse.load(); // 初回は null
// 自分のゲームの状態を復元
let level = progress?.level ?? 1;
// ステージクリアなど、進行が変わったタイミングで保存
const result = await Asoverse.save({ version: 1, level });
// クラウドへの保存が完了したことを表示する場合
Asoverse.on('sync', ({ state }) => {
if (state === 'saved') showSavedMessage();
});
連携済み HTML のサンプルをダウンロードゲームを投稿する
サンプルをそのまま HTML として投稿し、カウンターの保存・再読み込みを試せます。
保存とプライバシー
- ログイン中は、そのアカウントの作品ごとの領域に保存します。別の端末でも同じアカウントで続きから遊べます。
- ゲストの進行はアソバースを開いている端末に保存します。あとからログインしたアカウントに自動で混ぜることはありません。
save()のpending: trueはクラウドに送信中です。通信に失敗した場合は端末に残したデータを再送します。localCopy: falseの場合は端末への退避もできていないため、ページを閉じる前に保存完了を待ってください。- ゲームに渡るのは作品専用のプレイヤーIDと、その作品のセーブデータです。メールアドレス、パスワード、Firebase 認証トークン、別のゲームのデータは渡りません。
- ゲームをアソバースの外のタブで直接開く場合、この連携は使えません。外部サイトでのアカウントの扱いは作者側で設計してください。
すでに作られているゲームの独自ログインや独自のセーブ処理は、自動では置き換わりません。上のコードを使って接続してください。アップロードしたゲーム内の localStorage・sessionStorage は一時的なメモリー保存です。ページを閉じたり読み込み直すと消えるため、続きの保存には Asoverse.save() を使います。
English quick reference
Upload an HTML file or a ZIP containing index.html; no prior deployment is required. Limits: 20 MiB upload, 100 MiB expanded, 30 MiB per file, and 1,000 files. Use relative asset paths; Vite builds should set base: './'. Unity games require a browser/WebGL export. Server programs, desktop executables, service workers, and SharedArrayBuffer-based multithreading are unsupported. The SDK is inserted automatically for uploaded games. External URL games should include the script above and permit embedding by Asoverse.
await Asoverse.ready() returns a game-scoped player ID, authenticated status, locale and capabilities. Use await Asoverse.load() and await Asoverse.save(json) for progress up to 128 KiB. Listen to sync for cloud completion. History is recorded automatically in the player’s account. Existing custom login and persistence must be connected by the creator; browser storage inside uploaded games is temporary.
SDK v1 · プライバシーポリシー