紙の試作で決めた数値は、画面でも通用するか
遊びをつくる執筆にClaudeを使用しています。

カードとサイコロと消しゴムで、1対1の小さな対戦ゲームを作った場面を考えてみます。体力は10、攻撃は3、回復は2、敵の反撃は2と決めて、紙の上では何度か遊んで「ちょうどいい」と感じました。そこでブラウザに実装し、同じ数値をそのまま入れて動かします。すると、紙では緊張感のあった数値が、画面では妙に単調だったり、逆に慌ただしかったりすることがあります。数値は同じなのに、遊び心地が変わるわけです。 この記事で確かめるのは、「紙で決めた数値のうち、どれがそのまま通用し、どれが調整を要するか」です。結論を先に言うことはしません。ここで示すのは、読者が自分の試作で答えを出すための実験の設計書です。何を固定し、何を記録し、どう読めばよいかを順に説明します。 面白さの核は、実装してみて初めて見える「調整が必要になった点」にあります。調整点は感覚で探すより、数値の種類ごとに疑う順番を決めておくほうが、早く見つかります。
問いを分解する:数値を3種類に分ける
「数値が通用するか」という問いは大きすぎます。まず、手元の数値を性質で3つに分けてみます。
- 比率の数値:攻撃と回復の大小関係、コストと効果の釣り合いなど、数値同士の関係が意味を持つもの。
- 回数の数値:体力、手札の枚数、ターン上限など、数えられる離散的なもの。
- 時間・手間に依存する数値:制限時間、待ち時間、1手にかかる操作の量など、人間の動作が暗黙に入っているもの。
紙の試作では、3つ目がほとんど見えません。カードを配る、駒を動かす、計算する、といった作業に毎回数秒かかります。この作業時間が、そのまま「考える間」や「次の手を読む間」になっています。画面では計算が一瞬で終わるので、この間が消えます。一方で、アニメーションや読み込み、クリックの手数が新しく加わり、別の間が生まれます。
そのため、比率の数値は比較的そのまま通用しやすく、時間・手間に依存する数値はずれやすい、という見立てを持てます。ただしこれは仮説にすぎません。実験で確かめるのは、この仮説が自分の作品で当たるかどうかです。
準備するもの
次の4つを用意します。
- 凍結した数値表:紙の試作で最後に使った数値を、一覧にして変更不可にします。実装中に「ここだけ少し変えよう」と手を入れないための基準です。
- 最小実装:見た目を整える前の、ルールだけが動くブラウザ版です。HTML1ファイルで十分です。
- 記録シート:紙でも表計算でもかまいません。列は後述します。
- 試遊者:自分以外の人を少なくとも2〜3人お願いします。人数と回数は作品の規模に合わせて自分で決めます。ここでの数は目安であり、統計的な根拠があるわけではありません。
数値は、コードのなかでも一か所にまとめます。後から「どの数値を触ったか」を追えるようにするためです。次のコードは、小さなターン制の対戦を想定した最小構成です。ボタンを押すとログを集計し、決着時にまとめを表示します。
<!doctype html>
<meta charset="utf-8">
<button id="a">攻撃</button> <button id="h">回復</button>
<pre id="log"></pre>
<script>
const CONFIG = { playerHp: 10, enemyHp: 10, attack: 3,
heal: 2, enemyAttack: 2, turnLimit: 12 };
const s = { p: CONFIG.playerHp, e: CONFIG.enemyHp,
turn: 0, t0: Date.now(), moves: [] };
const isDone = () => s.p <= 0 || s.e <= 0 || s.turn >= CONFIG.turnLimit;
function step(move) {
if (isDone()) return;
s.turn++;
s.moves.push(move);
if (move === "attack") s.e -= CONFIG.attack;
else s.p += CONFIG.heal;
if (s.e > 0) s.p -= CONFIG.enemyAttack;
show();
}
function show() {
let text = `ターン ${s.turn} 自分 ${s.p} 敵 ${s.e}`;
if (isDone()) {
const n = s.moves.length;
const atk = s.moves.filter(m => m === "attack").length;
text += "\n" + JSON.stringify({
turns: s.turn,
seconds: Math.round((Date.now() - s.t0) / 1000),
hpDiff: s.p - s.e,
attackRate: atk / n
});
}
document.getElementById("log").textContent = text;
}
document.getElementById("a").onclick = () => step("attack");
document.getElementById("h").onclick = () => step("heal");
show();
</script>表示されるまとめには、決着までのターン数、経過秒数、最終的な体力差、攻撃を選んだ割合が入ります。この4つを、紙の試遊でも同じ形で取ります。
手順
1. 数値を変えずに実装する
最初の実装では、凍結した数値表をそのまま CONFIG に写します。「画面ではこのほうが良さそう」という直感は、いったん脇に置きます。ここで数値を変えると、紙との比較ができなくなるからです。
2. 同じ条件で紙と画面を遊ぶ
同じ人に、紙版と画面版を両方遊んでもらいます。順序は人によって入れ替えます。紙を先にした人と画面を先にした人の両方がいれば、慣れの影響を見分けやすくなります。回数は各版で同じにし、たとえば各5回のように決めます。
3. 1プレイごとに記録する
記録の単位は「1プレイ」です。列は次のとおりです。
- 版、内容:紙/画面、取り方:手書き
- 決着ターン数、内容:勝敗がつくまでのターン数、取り方:画面はまとめ表示、紙は数える
- 所要秒数、内容:開始から決着までの時間、取り方:ストップウォッチ
- 体力差、内容:決着時の自分と敵の差、取り方:読み取り
- 選択割合、内容:攻撃を選んだ割合など、取り方:画面はまとめ表示、紙は手の記録から
- 詰まった箇所、内容:迷った・操作に困った場面、取り方:観察して一行メモ
- 試遊者の言葉、内容:感想を、聞こえたとおりに、取り方:そのまま書く
紙の側にも、手の記録を残してください。1手ごとに「攻撃」「回復」と書き足すだけで十分です。後で選択割合が出せます。所要秒数は、紙では計算や配置換えの時間が含まれます。含めたまま記録し、別欄に「作業時間の目安」を書き添えると、後の考察に役立ちます。
4. 変更は一度に一つだけ
差が見つかったら、数値を直します。ただし直すのは一度に一つ、変更したら同じ条件でもう一度遊びます。二つ同時に変えると、どちらが効いたのか分からなくなります。
結果の読み方
記録がそろったら、紙と画面を並べて比べます。まず見るのは次の3点です。
- 決着ターン数の分布が、紙と画面でどれだけ離れているか。
- 選択割合が、片方に偏っていないか。
- 所要秒数の差が、ターン数の差で説明できるか。
差が小さければ、その数値はおおむね通用していると読めます。差が大きいときは、数値の種類に照らして疑う先を決めます。症状と、疑う数値、最初の一手を表にまとめます。
- 画面のほうが決着が早い、疑う数値:回数の数値(体力、反撃値)、最初の一手:体力を1〜2刻みで動かして再試遊
- 画面では片方の選択肢ばかり使われる、疑う数値:比率の数値(攻撃と回復の釣り合い)、最初の一手:差が小さい側の値を1だけ動かす
- 紙では迷ったのに画面では迷わない、疑う数値:時間・手間の数値、最初の一手:敵の反応前に待ちを入れるか、情報の見せ方を変える
- 画面のほうが所要秒数が長い、疑う数値:時間・手間の数値、最初の一手:操作の手数、アニメーションの長さを疑う
- ターン上限で終わることが増えた、疑う数値:回数の数値(ターン上限)、最初の一手:上限を延ばす前に、決着手段が足りているか確認
表は、あくまで疑う順番の目安です。ここに当てはまらない症状が出たら、記録シートの「詰まった箇所」と「試遊者の言葉」に戻ります。数値より先に、画面の見せ方や操作の分かりにくさが原因になっていることもあります。
時間の数値を扱うときの参考として、公式作品「時計じかけの台所」の設計を見てみます。この作品には、時間制限のない「見習い」と、1皿28秒・配膳6秒・ミス3回までの「本番」があります。同じレシピでも、時間の数値を段階で分けて遊ばせる構成になっていると、設計から読み取れます。時間に依存する数値は、一つの値で固定せず、段階を設けて調整の余地を残す、という考え方の例として参考になります。数値の意図や詳細は、作品を開いて確かめてください。
起こりやすい誤り
実験の結果をゆがめやすい点を挙げます。
紙側の暗黙の補正を見落とす。 紙の試遊では、「さすがにこれは無しにしよう」「もう一度振ろう」といった手加減が、無意識に入っています。画面版はそれをしません。紙の記録に手加減が混ざっていないかを、遊んだ直後に振り返って書き留めてください。
試遊者が紙版に慣れすぎる。 同じ人が紙で何度も遊んだ後に画面版を遊ぶと、ルール理解の差が数値の差に見えてしまいます。順序を入れ替える理由はここにあります。
アニメーションが時間を延ばす。 画面の演出は、所要秒数を押し上げます。数値の問題と演出の問題を分けるため、最初は演出を最小にして計測し、後から足して再計測します。
一度の試遊で結論を出す。 1回の記録は、偶然の影響が大きくなります。ブレが大きいと感じたら、回数を増やして傾向を見るほうが安全です。
数値以外の変更を混ぜる。 ボタン配置や文言を変えながら数値も変えると、原因が追えません。数値の検証中は、他の要素に触らないでください。
次の行動
まず、手元の試作の数値表を一枚にまとめ、各数値に「比率」「回数」「時間・手間」の札を付けてください。次に、上のコードを土台に、数値を変えず最小実装を作り、各版5回ずつを目安に記録をとります。差が出た箇所から、一度に一つだけ数値を動かして再試遊してみてください。
調整を終えた作品は、アソバースに投稿して他の人に遊んでもらうこともできます。投稿は入力、表示の確認、公開の3段階で、下書き保存もできます。公開の前に、数値の調整履歴をメモとして残しておくと、後の更新で役立ちます。

