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 も前のバージョンと別になります(ゲームのコードを変える必要はなく、前のデータも消えません)。