Asobiai SDK
セーブ・ロード
AIGame.save と AIGame.load で、ゲームの続きを保存できます。ログインして Asobiai で遊んでいる人はアカウント(クラウド)に保存されるので、ほかの端末でも続きから遊べます。ゲストや埋め込みでは、そのブラウザに保存されます。
v2.4.0ゲームの中からは window.AIGame?.version で確認できます。更新履歴
使い方
js
// セーブ (ログインして遊んでいればアカウントに。ゲスト・埋め込みではブラウザに)
await window.AIGame?.save("slot1", { stage: 3, coins: 120, items: ["key"] });
// ロード (無ければ null)
const data = await window.AIGame?.load("slot1");
await window.AIGame?.listSaves(); // => [{ slot: "slot1", updatedAt, cloud: true }]
await window.AIGame?.deleteSave("slot1");- データは JSON にできるもの。1スロット 256KB まで、1ゲーム 10スロットまで。スロット名は英数字と _ . - (32文字まで)。
- ブラウザにも必ず残すので、通信できないときも動きます。load はクラウドとブラウザの新しいほうを返します。
- 毎フレーム保存しないでください(1分に120回をこえると断られます)。ステージクリアやメニューを閉じたときなどに。
- ゲームが自分で使う localStorage や IndexedDB も、ゲームごとに分かれていてそのまま使えます(ただし、そのブラウザの中だけです)。
セーブの形を変えたとき
新しいバージョンでも、ふだんは前のバージョンと同じセーブを使います。セーブの形を変えて前のデータが使えなくなるときは、バージョンを上げるときに「セーブデータを新しくする」(MCP / API は new_save)を選んでください。そのバージョンからは、AIGame.save だけでなく、ゲームが自分で使う localStorage や IndexedDB も前のバージョンと別になります(ゲームのコードを変える必要はなく、前のデータも消えません)。
