マガジン

もしゲームの終わりをプレイヤーが決められたら

遊びを見つける

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

迷路の一角から出口までを段階的に照らす三つの灯りと、小さな旅人の駒
記事のテーマをもとに制作したAI生成イラスト。

夜に庭づくりのゲームを開き、木を置き、石を置き、池を足す場面を考えてみます。スコアも制限時間もなく、「ここまでやったらおしまい」という線は画面のどこにも引かれていません。それでも、ある時点で手が止まります。画面を眺めてから、アプリを閉じる。この「もう終わりでいい」という判断は、いつ、何をきっかけに生まれるのでしょうか。 多くのゲームは、終わりを先に決めて用意しています。ゴールに着く、制限時間が尽きる、ミスが上限に達する、といった具合です。終了条件をプレイヤーに委ねると、この用意が消えます。残るのは、遊んでいる本人が「終わった」と感じる瞬間だけです。その瞬間が何で決まるのかを、場面の想定と、自分で行える小さな観察の設計の両方から考えます。

この記事の目次
  1. 終わりを決めているのは誰か
  2. 「終わった」と感じる瞬間の候補
  3. 自分で確かめる観察の設計
  4. 最小のコードで終わりの前後を記録する
  5. 作る人が考えたい設計の分かれ道
  6. 起こりやすい誤り
  7. 次の行動

終わりを決めているのは誰か

まず、ゲームの終わりを誰が決めているかを整理します。公式作品の仕様から読み取れる範囲で見ると、次のように分かれます。

  • 時間、作品の例:紙ひこうき郵便、設計から読み取れること:海辺36秒・丘40秒・山44秒と、ルートごとに長さが決まっています
  • 失敗の回数、作品の例:時計じかけの台所、こだまの森、設計から読み取れること:本番はミス3回まで、こだまの森は間違い3回で終了です
  • 量・目標、作品の例:こだまの森、かたちのあいだ、設計から読み取れること:6・8・10ラウンドのコース、数字をそろえる完成形があります
  • 本人の気持ち、作品の例:余白の庭、設計から読み取れること:時間制限なしの庭づくりで、置ける数の上限は80個です

表で注目したいのは、こだまの森です。ラウンド数のコースを選ぶのはプレイヤーなので、終わりの長さは遊び始める前に本人が選びます。時計じかけの台所には、時間制限なしの見習いと、1皿28秒の本番があります。これも、終わりの圧力を本人が選べる設計と読めます。

ただし、これらは終わりを「選ぶ」仕組みであって、遊びの途中で終わりを「宣言する」仕組みとは限りません。余白の庭に終了を告げる操作があるのか、画面を閉じることが終わりなのかといった細部は、作品を開いて確かめてください。

「終わった」と感じる瞬間の候補

終わりの宣言を本人に任せたとき、判断のきっかけには、たとえば次のようなものが考えられます。ここでは仮説として並べます。

  1. 目的を満たしたと感じる。思い描いた庭の形になった、という場合です。
  2. 足す意味がなくなる。何を置いても、今より良くならない気がする場合です。
  3. 疲れや時間切れなど、ゲームの外の事情が割り込む。
  4. 飽きる。新しい反応が返ってこなくなる場合です。
  5. 区切りがつく。季節や昼夜を切り替え終えたなど、小さな一巡が済んだ場合です。

これらは互いに混ざります。同じ人でも、日によって決め手が変わるかもしれません。大事なのは、ゲームの側が与えた終了条件では「達成したか」しか測れませんが、委ねられた終わりでは「本人が足りたと感じたか」が見えてくる、という違いです。

自分で確かめる観察の設計

では、自分の「終わった」はどの型なのか。次の手順で確かめられます。結果は書きません。皆さんが行って初めて答えが出ます。

準備するもの

  • 時間制限のない作品を一つ選びます。余白の庭、潮だまり、WAVE / WAVE のように、本人のペースで進められる作品が向いています。
  • メモ用紙か、メモアプリを使います。
  • 「終わりにする」を自分で宣言できる状態にします。後述の最小コードを使うと、操作の記録を自動で取れます。

手順

  1. 「終わりにしたくなったら、その場で手を止めて下の項目を書く」とだけ決めて、遊び始めます。時間は決めません。
  2. 手が止まったら、次の4点を書きます。直前に何をしていたか。最後の操作から何秒くらい経っていたか。画面のどこを見ていたか。「終わりでいい」と思った理由を一言で書きます。
  3. 同じ作品で3回行います。日を変えても構いません。
  4. 別の作品でも同じことを行い、比べます。

記録の取り方

1回の記録は、次の5項目に絞ります。

  • 総操作数(置いた数、押した回数など)
  • 最後の操作から宣言までの秒数
  • 直前10秒の操作数
  • 所要時間
  • 終わりの理由の一言(自分の言葉で)

結果の読み方

  • 最後の操作から宣言までに間が空いていることが多ければ、判断は操作の外、つまり眺めている間に生まれている可能性があります。「目的を満たした」型か「足す意味がなくなる」型かが候補です。理由の一言で見分けられます。
  • 直前まで操作が続いていたなら、疲れや時間など外の事情で切った可能性があります。「区切りを自分で作った」場合も同じ形になるので、理由の一言を手がかりにしてください。
  • 回ごとに総操作数が大きく違うなら、量は基準になっていません。時間や気分が基準かもしれません。
  • 総操作数や所要時間が毎回近いなら、本人の中に見えない目標量がある可能性があります。

得られるのは自分の傾向であり、他の人にそのまま当てはまる一般則ではありません。

最小のコードで終わりの前後を記録する

作品に手を加えず観察するには、終わりの直前の様子を記録するだけの小さな道具があると便利です。次のコードは単独で動きます。HTMLファイルとして保存し、ブラウザで開いてください。キャンバスに点を置き、好きなときに「終わりにする」を押すと、記録が出ます。

html
<!doctype html>
<meta charset="utf-8">
<title>終わりを決める</title>
<canvas id="c" width="320" height="200"
  style="border:1px solid #888;touch-action:none"></canvas>
<p><button id="end">終わりにする</button>
<button id="re">もう一度</button></p>
<pre id="out"></pre>
<script>
const c = document.getElementById('c');
const g = c.getContext('2d');
const out = document.getElementById('out');
let log, startT, over;
function reset() {
  log = []; startT = performance.now(); over = false;
  g.clearRect(0, 0, 320, 200);
  out.textContent = '好きな場所をクリックして点を置いてください。';
}
c.addEventListener('pointerdown', e => {
  if (over) return;
  const r = c.getBoundingClientRect();
  g.beginPath();
  g.arc(e.clientX - r.left, e.clientY - r.top, 6, 0, 7);
  g.fill();
  log.push(performance.now());
});
document.getElementById('end').onclick = () => {
  if (over) return;
  over = true;
  const now = performance.now();
  const last = log.length ? log[log.length - 1] : startT;
  const recent = log.filter(t => now - t <= 10000).length;
  out.textContent =
    '総操作数: ' + log.length + '\n' +
    '所要時間: ' + ((now - startT) / 1000).toFixed(1) + '秒\n' +
    '最後の操作から: ' + ((now - last) / 1000).toFixed(1) + '秒\n' +
    '直前10秒の操作数: ' + recent;
};
document.getElementById('re').onclick = reset;
reset();
</script>

点を置くだけの題材ですが、「何個置いたら終わりにしたくなるか」「置き終えてからどれくらい眺めたか」は十分に観察できます。表示された数値を、先ほどの5項目の記録に写してください。

作る人が考えたい設計の分かれ道

遊ぶ側の観察ができたら、作る側として終わりの委ね方を考えてみます。

一つ目は、終了ボタンをいつ見せるかです。常に見えていれば、気軽に押せます。一定の条件を満たしてから現れる形にすると、「達成して終わる」感覚が強まります。どちらが良いかは作品の狙い次第です。観察の際も、ボタンの出し方で結果が変わる点に注意してください。

二つ目は、終わりのあとの扱いです。終了を宣言した後に「続ける」を残すか、宣言で確定させるかで、宣言の重さが変わります。保存のある作品(余白の庭、WAVE / WAVE、かたちのあいだ)は、続きから再開できるため、「終わり」が「今日はここまで」という意味に寄ります。保存のない作品では、画面を閉じれば記録も消えるため、終わりの意味がより強くなります。

三つ目は、記録の見せ方です。アソバースへの投稿作品でプレイヤーの終わり方を残したい場合、クラウドセーブ(作品ごとにJSONで128KiBまで)にまとめる方法があります。ただしゲームにFirebaseのUIDや認証トークン、メールアドレスは渡さないでください。残すのは、操作回数や所要時間のような、遊びの内容に関する数値にとどめるのが安全です。

起こりやすい誤り

観察を行うときに、結果をゆがめやすい点を挙げます。

  • 回数が少ないまま結論を出す。1回では、その日の気分を見ているだけかもしれません。最低3回は取ってください。
  • 記録を後から思い出して書く。理由の一言は、手を止めた直後に書いてください。時間が経つと、もっともらしい理由に置き換わります。
  • 時間を決めて始める。「30分遊ぶ」と決めると、外の条件が終わりを決めます。委ねる観察では、時間を決めないでください。
  • 一人の結果を一般化する。他の人も同じだろうと考えるのは、根拠がありません。
  • 作品の違いを無視する。保存がある作品とない作品、制限がある作品とない作品では、終わりの意味が異なります。比べるときは条件をそろえて書き添えてください。

次の行動

まず、時間制限のない作品を一つ選び、終わりにしたくなったところで手を止めて、直前の様子と理由の一言をメモしてください。3回分たまったら、「間が空いていたか」「量はそろっていたか」の二点だけを見比べます。作る側の方は、上のコードを自作ゲームの終了ボタンの前後に応用し、終わりを委ねたときの数値を取ってみてください。