
攻略ガイド / 放置ゲーム
放置ゲームの数字はなぜ巨大? K、M、aa、e308の意味
放置ゲームのK、M、B、T、aa、1.5e45が何を意味するのか、数字が爆発的に増える理由、1e308が魔法の限界になる理由、コンピューターが扱える以上の数をコードがどう扱うのかを、私たち自身のバグの話とともに解説します。
放置ゲームの数字が巨大になるのは、すべてが指数関数的に増えるからです。アップグレードのたびに収入が掛け算で増えるので、数時間で数百万、数週間で名前のあるどんな数も超えてしまいます。読みやすくするため、ゲームは数字を省略します。Kは千、Mは百万、Bは10億(英語のbillion)、Tは1兆(英語のtrillion)。その先はaa、ab、acといったアルファベットや、1.5e45のような指数表記です。1.5e45は、1.5のあとに45桁続くという意味です。
早見表:K = 10^3、M = 10^6、B = 10^9、T = 10^12。その先はアルファベットが1段進むごとに1,000倍です。指数表記では、eのあとの数字が最初の桁より後ろの桁数を表します。1e6は100万、1e12は1兆です。
よく使われる3つの表記
| 値 | 英語の略号 | アルファベット | 指数表記 |
|---|---|---|---|
| 1,000 | 1K | 1Kまたは1a | 1e3 |
| 1,000,000 | 1M | 1Mまたは1b | 1e6 |
| 1,000,000,000 | 1B | 1Bまたは1c | 1e9 |
| 10^12 | 1T | 1Tまたは1d | 1e12 |
| 10^15 | 1Qa(1000兆) | 1aa | 1e15 |
| 10^18 | 1Qi(100京) | 1ab | 1e18 |
| 10^33 | 1Dc(10溝) | 1ag | 1e33 |
ゲームごとに表記は違うのでややこしいですが、ルールさえ知れば簡単に読めます。1段ごとに前の千倍です。
私たちのゲームの実例
同じスタジオのゲームでも表記は違います。『Idle AI Factory』では、K、M、B、Tのあと2文字のグループが始まり、aaが10^15、abが10^18、acが10^21……と120個の接尾辞が続きます。『Idle Ronin』ではすぐにアルファベットが始まり、1aが千、1bが100万、1cが10億、そのままzまで進んだあと、aa、bb、ccと続きます。表には1,743個の接尾辞があり、万一最後を超えると「A Lot!」と表示されます。『Idle Ronin』は設定で指数表記に切り替えることもでき、古参プレイヤーの多くはそちらを好みます。
数字が爆発的に増える理由
放置ゲームのコストや報酬は、1段階ごとに一定の割合で増えます。つまり指数関数的です。『Idle Ronin』では、序盤の敵のHPはステージごとに55〜57%増えます。140ステージ進むと、この積み重ねは約10^28、つまり29桁の数になります。曲線はガイド放置ゲームの成長の仕組みで見られます。

1e308が魔法の数字である理由
ほとんどのゲームは、数値をdoubleと呼ばれる64ビット浮動小数点数で保存します。doubleが保持できる最大の数は約1.8 x 10^308で、それを超えるとコンピューターは無限大を返します。この限界はインクリメンタルゲームのファンの間でとても有名で、『Antimatter Dimensions』はこれをゲームの一部にしました。約1.8e308のInfinity(無限)に到達することが、最初の大きな目標です。
より小さい32ビットのfloatは、もっと早く約3.4 x 10^38で限界を迎えます。私たちが身をもって知ったように、これは重要です。
私たちのバグ:敵のHPが無限大になったとき
『Idle Ronin』は古い放置ゲームから生まれました。そのコードでは、敵のHPを32ビットのfloatで計算していました。ステージ140を過ぎると敵のHPは10^28に近づき、ステージ316あたりからfloatがあふれて無限大になっていました。その先のステージではHPのまったくない敵が出るようになり、ステージ1000前後では計算結果がNaN(not a number、「数ではない」)になって、進行が完全に止まっていました。
解決策は、曲線全体をdoubleで計算し、ステージ1000を超える部分はゲーム独自の大きな数の型に任せることでした。この型は通常の数に加えて、追加のゼロの数を別のカウンターで持つので、doubleの限界をはるかに超えられます。ゲームに1,743個もの接尾辞の表があるのはそのためです。
無限大の先の数をゲームはどう扱うか
ブラウザのインクリメンタルゲームも同じ壁にぶつかり、コミュニティはそのためのツールを作りました。最も有名なのはPatashuによるbreak_infinity.jsで、『Antimatter Dimensions』の作者と、このゲームの実行に苦労した「all the CPUs that struggled to run」に捧げられています。桁と指数を2つの別々の数として保存し、約10^(9 x 10^15)まで扱えます。後継のbreak_eternity.jsはさらに先まで扱え、その限界を表すにはべき乗の塔が必要なほどです。
その代わりに失われるのが精度です。数がここまで大きくなると、ゲームが保持するのは最初の15桁ほどだけ。でも誰も気づきません。収入が1.52e1204に達したら、最初の数桁より後ろはもう関係ないからです。
大きな数をすばやく読むコツ
- 桁ではなくアルファベットを数える。1段(KからM、aaからab)ごとに1,000倍です。
- 指数表記では指数を比べる。3e45は3e42の千倍です。
- ゲームで切り替えられるなら表記を変える。名前のある数を超えたら、指数表記のほうが比べやすくなります。
- 倍率で考える。x2のアップグレードは指数に0.3を足し、x10は1を足します。
よくある質問
放置ゲームでTの次は何?
Qa(quadrillion、1000兆)、Qi(quintillion、100京)、そしてsextillion、septillionと続きます。アルファベット表記ならaa、ab、acです。1段ごとに前の1,000倍です。
放置ゲームのeは何の意味?
指数表記です。1e6は1のあとに0が6個、つまり100万です。2.5e20は2.5のあとに20桁続くという意味です。
放置ゲームのaaは何の意味?
アルファベットを使うほとんどのゲームでは、aaはTの次の段、つまり10^15です。『Idle Ronin』のように早い段階からアルファベットを使うゲームもあるので、そのゲームの単位を確認しましょう。
放置ゲームはなぜ1e308で止まるの?
標準的な64ビットの数ではそれ以上を表せないからです。その先まで進むゲームは、独自の数値型を使っています。
出典
- ONI Gamesのゲームコード:『Idle Ronin』(double_evrac.cs、PlayerDatabase.CalculateEnemyHP)、『Idle AI Factory』(NiceCurrencyFormat.cs)、2026年9月。
- break_infinity.js、break_eternity.js、Patashu、GitHub。








