作品名を先に決めて作る、後で決めて作る:どちらが完成するか
遊びをつくる執筆にClaudeを使用しています。

新しいゲームを作り始める場面を考えてみます。フォルダ名は「新しいフォルダ」のまま、頭の中には「反射神経を試すゲーム」くらいの輪郭しかありません。ここで作品名を先に決めるべきか、作りながら考えて最後に決めるべきかは、制作者の間でも意見が分かれやすい問いです。 名前を先に決める利点としてよく挙がるのは、名前が「このゲームは何を約束するか」の目印になることです。目印があれば、機能を足すか削るかを名前に照らして判断できます。一方、名前を後回しにする利点は、作る中で見えてきた面白さに合わせて名前を付けられることです。先に付けた名前に引きずられて、本来の面白さと違う方向へ進む心配がありません。どちらにも筋が通っているので、頭の中で議論しても決着しません。 そこでこの記事では、題名の問いを自分で確かめられる形に直します。ここに書くのは実験の設計書で、結果は含みません。「どちらが完成するか」の答えは、読者が実際に作ったときの記録から出ます。
「完成」を測れる形にする
この実験でいちばん揺れやすいのは、「完成」の意味です。作り終えた気分で決めると、名前を先に付けた側は愛着から甘く、後回しにした側は不安から辛く判定しがちです。着手前に、次の5項目を紙に書いておきます。
- 単独のindex.htmlを開くだけで起動する
- 開始から終了(クリアかゲームオーバー)まで到達できる
- 終了後にもう一度遊べる
- 作り手以外の1人が、口頭の説明なしで始められる
- アソバースへ投稿できる形になっている(全体で20MiB以内、直下にindex.html、素材は相対パス、サーバー用コードとサービスワーカーは使わない)
5項目すべてを期限内に満たしたら「完成」、1つでも欠ければ「未完成」とします。4番目は、見せる相手を事前に決めておきます。当日に探すと、実施できずに判定が曖昧になるからです。
5番目は実際に公開する必要はありません。投稿は「入力→表示の確認→公開」の3段階で、下書き保存もできます。表示の確認まで進めれば、条件を満たしているかを確かめられます。
条件と割り当てを決める
比べる条件は2つです。
- A(名前先決め):最初のコードを書く前に作品名を決めます。あわせて「この名前が約束していること」を一文で書き、制作中は名前を変えません。
- B(名前後回し):制作中は「無題」で通します。ファイル名やコード内の呼び名もgameなどで固定し、名前を決めるのは完成判定の後、投稿画面で作品名を入力する直前とします。
名前を決める所要時間も条件の一部なので、Aでは名前を決めるまでの時間を制作時間に含めます。そうしないと、Aだけ有利になります。
同じ人が2作品を作る場合
1人で両方を試すなら、同じ規模の題材を2つ用意し、どちらをA・Bに割り当てるかはくじで決めます。題材の規模をそろえる目安は、「1画面で完結する」「ルールは1つ」「勝ち負けがある」「操作は1種類(クリックだけなど)」です。題材を「反射神経」と「記憶」のように性質が違うものにすると、名前と無関係に難しさが変わります。できるだけ近い題材にします。
同じ人が続けて作ると、2作目は慣れて有利になります。これを避けるため、2回目は順序を入れ替えて繰り返すか、複数人で担当を分けます。1人で行うなら、AB・BAのように最低2周するのが安全です。
期限と時間の上限
各条件に同じ日数(たとえば7日)と、1日あたりの制作時間の上限(たとえば90分)を与えます。数字は自分の生活に合わせて構いませんが、AとBでそろえることが条件です。
記録の取り方
結果を読むとき頼りになるのは、記憶ではなく日々の記録です。1日の作業を15分刻みで、次の4種類に分けて記録します。
- ルール、含めるもの:判定、得点、操作、難しさの調整
- 見た目・音、含めるもの:配色、画像、効果音、演出
- 名前・紹介、含めるもの:名前の候補出し、名前に合わせた装飾、紹介文
- 迷い・やり直し、含めるもの:方針が決まらず手が止まった時間、作ったものを捨てて戻した時間
あわせて1日の終わりに次の数字を残します。
- 追加した機能の数と、削った機能の数
- 名前の変更回数(Bでは仮の呼び名を変えた回数)
- 手が止まった理由を一言(例:何を足すか判断できなかった)
分類は作業中にタイマーで切り替えます。夜にまとめて思い出すと、迷った時間が実際より短く記憶されがちです。
集計は表計算ソフトでも構いません。ブラウザで動く最小の集計例を置いておきます。自分の記録をlogに入れてコンソールで確認します(単位は分です)。
<script>
// 日ごとのログ。自分の記録を入れます
const log = [
// { day: 1, rule: 0, look: 0, name: 0, stuck: 0, added: 0, cut: 0 },
];
function summarize(rows) {
const sum = {rule:0, look:0, name:0, stuck:0, added:0, cut:0};
for (const r of rows) for (const k in sum) sum[k] += r[k] || 0;
const minutes = sum.rule + sum.look + sum.name + sum.stuck;
const share = k => minutes ? (sum[k] / minutes * 100).toFixed(1) + "%" : "-";
return {
minutes, ...sum,
ruleShare: share("rule"), lookShare: share("look"),
nameShare: share("name"), stuckShare: share("stuck")
};
}
console.table(summarize(log));
</script>結果の読み方
作り始める前に、仮説を書いておきます。
- Aの仮説:名前が約束になり、足す機能と削る機能を名前に照らして判断できます。その分、迷いの時間が減る可能性があります。一方で、名前に合う雰囲気づくりが増え、「名前・紹介」と「見た目・音」の時間が膨らむ可能性もあります。
- Bの仮説:作りながら面白さの中心を見つけられます。ただし、削る基準がないため「迷い・やり直し」が増えるかもしれません。
名前が約束として働く例は、公式作品の「紙ひこうき郵便」から読み取れます。名前に「紙ひこうき」と「郵便」が入っており、設計は手紙を集めて最後に赤い郵便受けへ向かう流れです。名前と遊びの中心が重なっていることが、設計から読み取れます。これは名前が先だったのか後だったのかを示すものではなく、名前が遊びの説明として働く一例です。
記録がそろったら、次のように読みます。
- Aだけ完成、読み方:迷い・やり直しの時間と、削った機能の数をAとBで比べます。Aのほうが少なければ、名前が判断の基準になった可能性があります。
- Bだけ完成、読み方:Aで「名前・紹介」や「見た目・音」の割合が高くなかったか見ます。高ければ、名前に合わせた作り込みが完成を遅らせた可能性があります。
- 両方完成、読み方:完成までの日数、迷いの割合、追加した機能と削った機能の差を比べます。完成の差がなくても、過程の差は残ります。
- 両方未完成、読み方:名前の決め方より、題材の規模や1日の時間上限が原因の可能性が高くなります。止まった理由の一言を見直します。
1回の比較から言えるのは、自分の今回の傾向までです。順序を入れ替えた2周目でも同じ方向が出たときに、初めて「自分にはこちらが向いている」と言えます。他の人にも当てはまるかは、この実験だけでは判断できません。
起こりやすい誤り
- 名前探しで止まる:Aでは、名前が決まらないまま日数が過ぎることがあります。名前を決める時間に上限(たとえば最初の1日の30分)を設け、決まらなければその時点の最善案で進めます。
- 仮名をつけてしまう:Bで「とりあえず〇〇」と呼ぶと、実質的にAになります。呼び名はgameのような中立的な語に固定します。
- 題材の難易度差を見落とす:片方のルールが複雑だと、名前と関係なく完成が遅れます。着手前に、2つの題材の「ルールの数」を同じにします。
- 途中で気が変わる:飽きて中断した場合、名前の影響か単なる気分かの区別が難しくなります。中断した日と理由も記録に残し、解釈のときに分けて考えます。
- 見せる相手のばらつき:4番目の判定で、ゲームに慣れた人と初めての人に見せると差が出ます。AとBで同じ相手に見せるか、同じ条件の相手を選びます。
- 完成の基準を後から動かす:「ここまでできたから完成」と途中で基準を緩めないことです。最初に書いた5項目だけで判定します。
次の行動
まず、完成の5項目と、同規模の題材2つを紙に書き出し、くじでA・Bの割り当てを決めます。次に、Aの最初の一文「この名前が約束していること」だけを書いて制作を始め、1日目から15分刻みの記録を取ります。2周目まで終えたら、上の集計表を使って自分の傾向を読み取ってみてください。
