マガジン

作品を非公開にするとき、遊んでいた人へ何を残すか

遊びを見つける

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

元のゲーム模型と紹介カードの展示台を鎖でつなぎ、URL投稿を表した写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

小さなパズルゲームを公開していた作者が、続けられなくなって非公開にしようと考える場面を仮定します。管理画面のボタンを押せば、操作自体は数秒で終わります。ところが、その作品を毎週のように開いていた人にとっては、あるはずの入口が突然なくなる出来事です。進めていたステージも、あとで遊ぶに入れていた印も、それまでの場所には戻ってこないかもしれません。 この記事で確かめたいのは、「非公開にする」という作者の操作の前に、遊んでいた人へ何を残せるかです。残せるものは二つに分けられます。一つは公開停止の伝え方、もう一つは進行や履歴の扱いです。どちらも、アソバースで確認済みの機能の範囲で考えます。非公開後に履歴や保存データが具体的にどう見えるかは、案内に書かれていない部分があります。そこは断定せず、作者が自分で確かめる手順にします。

この記事の目次
  1. 「非公開」の前に、選べる手段を並べる
  2. 遊んでいた人が失いうるものを棚卸しする
  3. 伝え方を設計する
  4. 履歴を作者が操作できるわけではない、という線引き
  5. 非公開の前に、自分で確かめる手順
  6. 次の行動

「非公開」の前に、選べる手段を並べる

アソバースでは、投稿した作品に対して、下書き保存、公開内容の更新、非公開化、削除ができます。止める理由がなんであれ、非公開が唯一の選択肢とは限りません。

たとえば、遊びにくい箇所があって恥ずかしいという理由なら、公開内容の更新で直せる可能性があります。更新が追いつかないので静かにしたいという理由なら、紹介文に「更新を止めています」と書いて公開を続ける手もあります。権利や安全の問題が見つかったときのように、すぐ止めるべき理由なら、非公開が合っています。

非公開と削除の違い、つまりどこまで見えなくなり、あとで戻せるのかは、投稿画面の案内で確認します。この記事では細部を決めつけません。「戻せるかどうか」で、伝え方が変わるからです。戻せるなら「いったんお休みします」と書けますが、戻せないなら「終了します」と書くほうが誠実です。

判断の目安を整理します。

  1. 直せば続けられる問題ですか。続けられるなら、更新を先に検討します。
  2. 公開を続けたまま、紹介文で状況を知らせれば足りますか。
  3. 止めるべき理由が先にありますか。あるなら、告知は短くして、先に非公開にします。
  4. 戻す可能性はありますか。あるなら、その見込みを告知にどう書くかも決めておきます。

遊んでいた人が失いうるものを棚卸しする

非公開にする前に、遊ぶ側から見て「何があったか」を書き出します。アソバースで確認済みの機能から、次の項目が挙がります。

  • 作品の入口、遊ぶ側にとっての意味:検索やランキングからたどる道、作者が事前に確認すること:非公開後の表示を案内で確認
  • あとで遊ぶ・好きな作品、遊ぶ側にとっての意味:ログイン中の人が残した印、作者が事前に確認すること:非公開後も一覧に残るかを案内で確認
  • プレイ履歴、遊ぶ側にとっての意味:ログイン中は作品ごとに残る、作者が事前に確認すること:非公開後の扱いを案内で確認
  • クラウドセーブ、遊ぶ側にとっての意味:SDK利用作品で、作品ごとにJSON 128KiBまで、作者が事前に確認すること:非公開後に読み出せるかを案内で確認
  • ゲストの履歴・進行、遊ぶ側にとっての意味:端末内にあり、ログイン後に自動では混ざらない、作者が事前に確認すること:ゲストで遊んだ人の分は作者から見えない前提で考える
  • レビュー、遊ぶ側にとっての意味:1〜5点と文章。本人が編集・削除できる、作者が事前に確認すること:非公開後の表示を案内で確認

表の右列に「案内で確認」が並ぶのは、確認済み事項がそこまで書いていないからです。その部分を推測で告知に書くと、遊んでいた人に誤った約束をしてしまいます。「進行は消えません」とも「消えます」とも、確かめる前には書かないことが最低ラインです。

もう一つ見落としやすいのが、アップロード作品の中のlocalStorageとsessionStorageです。これらは一時メモリーとしての互換処理で、ブラウザの通常の保存とは違います。作品が独自に端末へ保存していたつもりでも、進行を長く持ち越せる前提には立てません。この前提は、後で触れる「進行コード」の話につながります。

伝え方を設計する

アソバースにはフレンドもチャットも、投稿者から遊んだ人へ送る共通のお知らせ機能もありません。確認済みの範囲で作者が使えるのは、主に二つの場所です。作品の紹介文(公開内容の更新で書き換えられます)と、本人が公開を選んだ場合の公開プロフィールです。プロフィールには紹介文と、SNSや問い合わせページのHTTPS URLを載せられます。

つまり告知は、非公開にする前に紹介文へ書くのが基本になります。非公開にしてからでは、作品ページを開く人に届かないかもしれません。作品ページの非公開後の見え方は案内で確認します。

告知に入れる項目は、次の五つです。

  • 何が起きるか(いつ非公開にするか)
  • 理由(言える範囲で。言えなければ「事情により」で足ります)
  • 何が残り、何が消えるか(確認できた範囲だけ)
  • 代わりに遊べる場所や、再公開の予定(決まっている場合だけ)
  • 連絡先(公開してよい場合のみ)

仮定の例文を置きます。

〇月〇日をもって、この作品を非公開にします。続きの更新が難しくなったためです。ログインして遊んでいた方のセーブや履歴の扱いは、アソバースの案内で確認できた内容を下に書きます。ゲームを閉じる前に、画面の「進行コード」を控えておくと、再公開したときに続きから遊べる可能性があります。長く遊んでくださり、ありがとうございました。

この例文にも、書いてはいけないことがあります。日付が確定していないなら、日付は入れません。「必ず再公開します」のように、守れるか分からない約束も入れません。また、プレイ回数は作品を起動した回数で、人数ではないので、「〇人が遊んでくれました」のようにプレイ回数を人数として書く言い方は避けます。

遊んでいた人の側にも違いがあります。ログイン中に遊んでいた人は、履歴やセーブがアカウントに残っている可能性があります。ゲストで遊んでいた人の履歴は端末内にあり、ログインしても自動では混ざりません。告知文は、どちらの人が読んでも誤解しないように、「ログインして遊んでいた方」「ゲストで遊んでいた方」を分けて書くと伝わりやすくなります。

履歴を作者が操作できるわけではない、という線引き

ここまで読んで、「遊んだ人の履歴を作者が引き継いでおく」と考えた人もいるかもしれません。確認済みの機能で、作者が遊んだ人のプレイ履歴やクラウドセーブを一覧したり、書き換えたりできる仕組みは示されていません。作者が確かめられるのは、自分の作品の中で何を保存しているかだけです。

この線引きは、プライバシーの面からも自然です。作品ごとの専用プレイヤーIDとクラウドセーブは、ゲーム側にFirebaseのUID、認証トークン、メールアドレスを渡さない設計になっています。作者から見えるのは、ゲームが自分で書いたセーブの中身までです。

そこで、作者が自分の作品の中で用意できる備えが、「進行コード」です。遊んでいる人が自分で進行を文字列として控えられるようにしておけば、作品が非公開になっても、再公開や別の作品への移行のときに、持ち越しの道が残ります。ゲーム側の保存は一時メモリーに頼れないため、遊ぶ人の手元に残す形のほうが確実です。

次は、HTML一枚で動く最小の例です。進行を表すオブジェクトを文字列にして表示し、貼り付けた文字列から復元します。作品の進行データに合わせて書き換えます。

html
<textarea id="box" rows="4" cols="40"></textarea>
<button id="out">進行コードを出す</button>
<button id="in">進行コードを読み込む</button>
<p id="msg"></p>
<script>
let state = { stage: 3, items: ["lamp"] };
const box = document.getElementById("box");
const msg = document.getElementById("msg");
document.getElementById("out").onclick = () => {
  box.value = JSON.stringify({ v: 1, state });
  msg.textContent = "この文字列を控えてください。";
};
document.getElementById("in").onclick = () => {
  try {
    const data = JSON.parse(box.value.trim());
    if (data.v !== 1) throw new Error("version");
    state = data.state;
    msg.textContent = "読み込みました。ステージ " + state.stage;
  } catch (e) {
    msg.textContent = "読み込めませんでした。";
  }
};
</script>

文字列に v(形式の版)を持たせているのは、あとで進行の形を変えても古いコードを読み分けられるようにするためです。クリップボードへの自動コピーは、実行環境が制限されているかもしれないので使わず、テキスト欄に表示して手でコピーする形にしています。この例が自分の作品の実行環境で動くかは、作品を開いて確かめます。

非公開の前に、自分で確かめる手順

非公開後の見え方は、読むだけでは分かりません。次の手順で、自分の目で確かめられます。公開済みの大切な作品で試すのは避け、公開してよい小さな作品で行います。

  1. 小さな作品を一つ公開し、ログインした状態と、ゲストの状態の両方で一度ずつ遊びます。
  2. 遊んだあと、プレイ履歴、あとで遊ぶ、好きな作品に、その作品がどう並ぶかをメモします。
  3. 作品を非公開にします。非公開と削除の案内文を、操作の前に読みます。
  4. 非公開にしたあと、ログイン中・ログアウト中の両方で、作品ページ、履歴、あとで遊ぶ、好きな作品がどう見えるかを、手順2と同じ項目でメモします。
  5. 手順2と4の差を、「見え方が変わったもの」「変わらなかったもの」に分けて並べます。

記録するのは、画面ごとの「あった・なかった・表示が変わった」の三択で十分です。同じ手順を二度行い、結果が一致するかを見ておくと、たまたまの表示の揺れを見分けられます。メモの内容がそのまま告知文の「何が残り、何が消えるか」の根拠になります。メモにないことは、告知に書きません。

起こりやすい誤りは二つあります。一つは、自分のアカウントだけで確かめて、ゲストの見え方を確かめないことです。もう一つは、確かめた結果を「いつでも同じ」と書いてしまうことです。仕様は変わる可能性があるので、告知には「確認した時点では」と添えるほうが安全です。

次の行動

非公開にしたい作品があるなら、まず投稿画面で非公開と削除の案内を読み、更新で済まないかを検討します。止めると決めたら、紹介文に告知を書き、手元で確かめられた範囲だけを残すと決めます。ゲームの進行を保存している作品は、進行コードの追加を一度試し、作品を開いて動作を確認します。