クリッカーゲームはなぜやめられないのか:数字の増え方の設計
遊びを見つける執筆にClaudeを使用しています。

クリッカーゲームを開いて、数字を増やす場面を考えてみます。最初は画面を押すたびに1ずつ増えます。10たまったら最初の強化が買えて、押さなくても少しずつ増えるようになります。次の強化の価格は少し高くなりますが、増える速さも上がっているので、また買えるようになります。気づくと「あと少しで次が買える」という状態がずっと続いています。 この「あと少し」は、気分や根性の問題ではなく、数式で作られている可能性があります。待ち時間は、おおまかに「次の強化の価格 ÷ 1秒あたりの増加量」で決まります。強化を買うと分子(価格)も分母(増加量)も大きくなります。どちらの伸びが速いかで、待ち時間が縮むか、伸びるか、一定になるかが決まります。この待ち時間の並びが、クリッカーの「周期」の正体です。 この記事は、その周期を読者自身が記録して確かめるための分析手順です。遊んでいるクリッカーゲームで待ち時間を記録する方法と、短いコードで自作して設計値を変えながら周期を見る方法の二つを示します。数値の結果は書きません。出てきた列をどう読むかの基準を示します。
周期を作る三つの量
周期は、次の三つの量の関係で決まります。
- 価格:強化を一つ買うのに必要な数字です。買うたびに一定の倍率で上がる設計がよく見られます。
- 増加量:1秒あたりに増える数字です。強化の所持数に比例して増える設計が基本です。
- 待ち時間:直前の購入から次の購入までの時間です。価格 ÷ 増加量で近似できます。
ここで鍵になるのは絶対値ではなく、購入のたびに価格が何倍になり、増加量が何倍になるかという比です。
- 価格の伸びのほうが速ければ、待ち時間はだんだん長くなります。
- 増加量の伸びのほうが速ければ、待ち時間はだんだん短くなります。
- 両者が釣り合えば、待ち時間はほぼ一定になります。
実際のゲームでは、この比が途中で変わる仕組みがよく入っています。たとえば、強化を一定数買うと増加量が一気に2倍になる節目を置くと、伸びていた待ち時間が急に短くなります。待ち時間が伸びて、短くなって、また伸びる。この繰り返しが周期です。
「やめられない」という感覚の一因を、ここに求めて分析します。待ち時間が長すぎれば人は離れ、短すぎれば次々に買い終えて張り合いがなくなります。その間を保つ調整が、数字の増え方の設計です。医学的な意味での依存の話ではなく、続けたくなる構造を読む試みとして扱います。
準備するものと記録の単位
遊ぶゲームから周期を取り出すには、次のものを用意します。
- 遊ぶクリッカーゲーム(ブラウザで動くもの)
- 時刻を読める時計かストップウォッチ
- 記録用の表(紙でも表計算でも構いません)
記録の単位は「購入1回につき1行」です。時間ごとの記録ではなく、買った瞬間を単位にします。待ち時間は購入と購入の間で定義されるためです。1行に残す項目は次のとおりです。
- 回、内容:何回目の購入か
- 時刻、内容:ゲーム開始からの経過時間(秒)
- 買ったもの、内容:強化の名前
- 買った後の増加量、内容:画面に表示される毎秒の増加量
- 次の価格、内容:同じ強化の次の価格
- クリック、内容:この区間で押したか(有/無)
回数は、最低でも20回分を目安に記録します。周期は数回では見えず、伸びる区間と縮む区間の両方を含む長さが必要です。
手順:待ち時間の列を作る
1. 購入の瞬間を記録する
購入するたびに、上の表に1行を追加します。時刻は、買う直前ではなく買った瞬間に読みます。毎回同じ基準で読めば、多少のずれは列の形に影響しません。
2. 待ち時間を計算する
各行について、「今回の時刻 − 前回の時刻」を待ち時間として書き足します。この列が分析の主役です。
3. 理論値と照らし合わせる
「前回購入後の増加量」と「今回の購入価格」が分かっていれば、価格 ÷ 増加量を計算できます。実測の待ち時間と近ければ、そのゲームの待ち時間は価格と増加量の比でほぼ説明できます。大きくずれる場合は、押す操作による増加量や、画面に出ていない補正が効いている可能性があります。
4. 押した区間と放置した区間を分ける
クリックで稼げるゲームでは、押す操作が待ち時間を縮めます。そこで、次の二通りを別々の記録にします。
- 押さずに放置して買えるまで待つ記録
- 押し続けて買えるまでの記録
放置の記録は、設計された増加量そのものを表します。押した記録との差は、クリック操作がどれだけ周期を変えるかを表します。押す操作の影響が大きいゲームほど、周期は操作の頻度に左右されます。
短いコードで周期を自作して見る
遊ぶゲームの値は外から見えにくいので、設計値を自分で動かせる最小構成も用意します。次のHTMLを1ファイルに保存してブラウザで開くと、強化を買えるようになったら自動で買い続けた場合の購入ログを表示します。実際のプレイの代わりに、設計値だけで決まる周期を取り出す道具です。
<!doctype html>
<meta charset="utf-8">
<title>周期の計測</title>
<pre id="out"></pre>
<script>
// 調整する値
const base = 10; // 最初の価格
const growth = 1.15; // 買うたびの価格倍率
const gain = 0.5; // 強化1個あたりの毎秒増加量
const click = 1; // 強化なしの毎秒増加量
const steps = 30; // 記録する購入回数
let coins = 0, owned = 0, t = 0, last = 0;
const price = () => base * Math.pow(growth, owned);
const rate = () => click + owned * gain;
const rows = ["回,時刻,待ち時間,所持数,毎秒増加量,次の価格"];
for (let n = 1; n <= steps; n++) {
while (coins < price()) { coins += rate() * 0.1; t += 0.1; }
coins -= price(); owned++;
rows.push([n, t.toFixed(1), (t - last).toFixed(1), owned,
rate().toFixed(2), price().toFixed(1)].join(","));
last = t;
}
document.getElementById("out").textContent = rows.join("\n");
</script>時間は0.1秒刻みで進めているため、待ち時間には0.1秒程度の誤差が出ます。見るのは細かい値ではなく、列全体の形です。
数式で先に予想を立てる
実行する前に、設定値から待ち時間の変化を予想できます。上の初期値では、強化をn個持っているときの待ち時間は、おおよそ次のように表せます。
待ち時間 ≒ 10 × 1.15ⁿ ÷ (1 + 0.5n)
次の購入で待ち時間が縮むかどうかは、価格の倍率1.15と、増加量の倍率 (1 + 0.5(n+1)) ÷ (1 + 0.5n) の大小で決まります。増加量の倍率が1.15を上回るあいだは待ち時間が縮み、下回れば伸びます。計算すると、nが4以下のあいだは縮み、5以降は伸びる、という予想になります。
実行結果が予想と合うか、ログの待ち時間の列で確かめてみてください。合わなければ、数式の立て方か、0.1秒刻みの誤差のどちらかを疑います。
値を一つずつ変えて比べる
設計値は一度に一つだけ変えます。複数を同時に変えると、どの値が周期を変えたのか分からなくなります。
- growth を 1.07 や 1.3 に変えて、待ち時間の伸び方がどう変わるかを見ます。
- gain を大きくして、待ち時間が縮む区間がどこまで続くかを見ます。
- 節目を足す場合は、rate の式に「所持数が10の倍数のとき増加量を2倍にする」条件を1行足します。待ち時間の列に急な落ち込みが現れるかを確かめます。
結果の読み方
待ち時間の列を、購入回数を横軸にして折れ線にします。形によって、次のように読みます。
- 右肩上がりが続く、読み取れること:価格の伸びが増加量の伸びを上回っています。続けるほど待たされる設計です。
- ほぼ平坦、読み取れること:二つの伸びが釣り合っています。いつ遊んでも同じ間隔で買える設計です。
- 右肩下がりが続く、読み取れること:増加量の伸びのほうが速く、買うほど楽になる設計です。短時間で買い尽くしやすくなります。
- ノコギリ状(伸びて急に落ちる)、読み取れること:節目の倍率や新しい強化の解放が、待ち時間を定期的にリセットしています。
「やめられなさ」に関わるのは、とくにノコギリ状の形です。待ち時間が伸びてきて退屈になりかけた頃に、節目で一気に縮みます。すると「次の節目まで」という新しい短い目標ができます。落ち込む位置の間隔が、そのゲームの1周期です。
判断の目安として、次の二点を見てみます。
- 待ち時間の最大値が、自分の「待てる長さ」を超えていないか。
- 落ち込みが何回の購入ごとに現れるか。間隔が一定なら設計は規則的で、だんだん広がるなら終盤ほど周期が長くなる設計です。
起こりやすい誤り
分析でつまずきやすい点を挙げます。
- 押した区間と放置した区間を混ぜる:混ぜると、設計の周期と自分の操作の癖が区別できなくなります。必ず分けて記録します。
- 購入回数が少ない:5回程度では、伸びと縮みの両方を含みません。20回以上を目安にします。
- 所持数の増加を数えていない:待ち時間の変化を価格だけで説明しようとすると読み違えます。増加量の列も必ず残します。
- 表示の丸めを信じすぎる:大きな数字は「1.2万」のように丸めて表示されることがあります。理論値との照合は、丸めの範囲内の差であれば一致とみなします。
- 一つのゲームで全体を決めつける:結果が示すのは、そのゲームの設計の形です。クリッカー全般の性質ではありません。
保護者の立場で子どもの遊びを見る場合も、同じ表が使えます。待ち時間の最大値と、節目の間隔を読むと、そのゲームが「どこで引き止める作りか」が分かります。時間の使い方を話し合うときの材料になります。
次の行動
まず、いま遊んでいるクリッカーで、放置のまま20回分の購入を記録して待ち時間の折れ線を描いてみてください。次に上のコードを保存し、growth を一つだけ変えて列の形が変わるかを見てみます。自作の周期を試したくなったら、HTMLにまとめて作品投稿の画面から公開する道があります。その場合、アップロードはHTMLまたはZIPで、直下の index.html が入口になります。

