マガジン

プレイ履歴とセーブデータは何が違う?アソバースで残る情報

遊びを届ける

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

遊んだ記録を示すカード列と、途中の位置を残した迷路盤を並べた写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

「ライブラリに遊んだ記録が残っているのに、ゲームを開くと最初から始まってしまう」——そんな状況を経験したことはないでしょうか。アソバースには「プレイ履歴」と「セーブデータ」という二種類の記録があり、それぞれ別の仕組みで管理されています。どちらが残っていて、どちらが残っていないかを知ると、なぜ続きから遊べないのかが分かります。

この記事の目次
  1. 「履歴」と「セーブデータ」は別の記録
  2. 履歴はいつ記録されるか
  3. 続きから遊べないのはセーブ未対応のケースが多い
  4. ゲストと会員でセーブはどう違うか
  5. 外部ゲームのログインとアソバースの関係
  6. 自分の履歴と作品の保存対応を確認する

「履歴」と「セーブデータ」は別の記録

プレイ履歴とは、「このゲームをいつ、何回起動したか」をアソバースのサーバーが記録したものです。アカウントにひもづいた情報として、初回の起動日時・最終起動日時・セッション数が保存されます。ログイン中にゲームを開くと自動的に記録されるため、プレイヤー側に特別な操作は必要ありません。

一方のセーブデータは、「どこまで進んだか・スコアはいくつか・どの設定を選んだか」といったゲーム内の進行状況です。こちらはアソバースが自動で記録するのではなく、ゲームの作者がSDKを使って保存・読み込みを実装した場合だけ機能します。履歴は「遊んだこと」を示し、セーブデータは「ゲームの中身の記録」です。この二つは独立して管理されており、どちらかがあっても、もう一方が存在するとは限りません。

セーブデータはゲームごとの名前空間(users/{uid}/saves/{gameId})に分けられており、あるゲームの進行が他のゲームに影響することはありません。容量は最大128KiB(約131,072バイト)のJSONです。

履歴はいつ記録されるか

アソバース内に埋め込まれて動作するゲーム(公式ゲームやアップロードされたゲーム)は、ログイン中に `/play/:id` でゲームを開くと、その起動が履歴に加算されます。詳細ページを閲覧するだけでは記録されません。

外部サイトで公開されているゲームは、作品ページの「起動リンク」を実際に押したときに記録されます。詳細ページや起動案内の画面を表示しただけでは加算されません。この記録はあくまで「起動操作をした」という記録であり、外部ゲームのログイン成功・プレイ時間・進行状況とは別物です。外部ゲームにアカウントが必要な場合は、そのゲームのサイト上でログインする必要があります。アソバースへのログインが外部ゲームに自動で引き継がれるわけではありません。

続きから遊べないのはセーブ未対応のケースが多い

「履歴にあるのに続きから遊べない」という状況の多くは、そのゲームがセーブ機能をアソバースのSDKと連携していないことが原因です。SDKを使ったゲームでは、`Asoverse.ready()` でプレイヤー情報とゲームIDを受け取り、`load()` で前回の進行を読み込み、`save(value)` でゲーム中のデータを保存します。作者がこの連携を実装していない場合、ゲームを閉じると進行は失われます。

SDK対応のゲームでも、`save()` が返す `pending` は「クラウドへの書き込みが完了した」という意味ではありません。ローカルのキューに受け付けられた状態を示し、実際の同期は `on('sync', callback)` で `state: 'saved'` が届いたときに確認できます。通信が不安定な状態でゲームを終了した場合、次回起動時に再試行が行われますが、完了前に終了すると最新の状態が残らない可能性があります。

ゲームが対応しているかどうかは、作品ページの情報か実際に遊んで確認するしかありません。「保存に対応」という記載がない場合は、ゲーム内のデータが残らないと想定して遊ぶのが確実です。

ゲストと会員でセーブはどう違うか

アソバースにはゲスト状態でも対応ゲームを遊べますが、セーブの保存先が異なります。ゲスト時のセーブキーはそのゲームとデバイスに固有のものになり、ログイン後のアカウントとは別に管理されます。ゲスト中の進行は、ログイン後のアカウントに自動で引き継がれません。

同様に、ログインしたまま別のアカウントに切り替えた場合も、前のアカウントのセーブが新しいアカウントに持ち込まれることはありません。それぞれのアカウントはゲームごとに独立したセーブを持ちます。プレイ履歴はアカウントを削除すると一緒に削除されます。

外部ゲームのログインとアソバースの関係

一部の外部ゲームは、作者のサイトに遷移してから別途ログインが必要な場合があります。アソバースが外部ゲームに渡すのは、そのゲームとプレイヤーのペアに固有のランダムなIDだけです。FirebaseのUID・メールアドレス・パスワード・他のゲームのデータは共有されません。このIDはゲーム側でプレイヤーを識別するためのヒントとして使えますが、そのままサーバーサイドの認証に使うことは想定されていません。

iframeで埋め込めないゲーム(`X-Frame-Options` の制約があるものや、埋め込み内でのGoogleログインが通らないもの)は、作者のサイトを別タブで開く形で案内されます。この場合のセーブやログインは完全に外部サイト側で完結し、アソバースは関知しません。アソバースの履歴には「起動リンクを押した」という記録だけが残ります。

自分の履歴と作品の保存対応を確認する

ライブラリ(/library)では、ログイン中に遊んだ作品の履歴を新しい順に確認できます。最大100件の履歴が表示され、初回・最終のプレイ日時が記録されています。ここに表示される記録はあくまで「起動した日時」であり、ゲーム内の進行とは独立しています。

  1. ライブラリを開き、続きから遊びたい作品を見つける
  2. 作品ページでゲームを開き、「続きから」「ロード」などのメニューが存在するか確認する
  3. そのような選択肢がない場合、そのゲームはセーブ機能を実装していない可能性がある
  4. 外部ゲームの場合は、作者のサイト上でログインや進行の保存に対応しているか確認する

作者の立場からは、公式ドキュメント(/game-integration.html)のSDKガイドで保存の実装方法を確認できます。`ready()`・`load()`・`save()` の三つのAPIを使えば、アカウントに連携したクラウドセーブを組み込めます。実装の有無がプレイヤー体験に直結するため、履歴機能がある作品でも、進行を残したい場合は保存の対応を検討する価値があります。

出典・参考資料