攻略 / 放置遊戲

放置遊戲為什麼用巨大的數字:K、M、aa 和 e308

放置遊戲裡的 K、M、B、T、aa 和 1.5e45 代表什麼、數字為何爆炸成長、為何 1e308 是神奇的極限,以及程式如何處理比電腦能容納的還大的數字,並分享我們自己遇到的 bug。

放置遊戲使用巨大的數字,因為遊戲裡的一切都以指數成長:每次升級都會讓收入倍增,所以幾個小時後你就在百萬級,幾週後就超越了所有有名字的數。為了讓這些數字好讀,遊戲會把它們縮寫:K 代表千,M 代表百萬,B 代表 10 億(英文的 billion),T 代表 1 兆(英文的 trillion),再往後是 aa、ab、ac 這樣的字母,或像 1.5e45 這樣的科學記號,意思是 1.5 後面還有 45 位數。

速查表:K = 10^3、M = 10^6、B = 10^9、T = 10^12,之後每前進一個字母就大 1,000 倍。在科學記號中,e 後面的數字表示第一位數之後還有幾位數:1e6 是 100 萬,1e12 是 1 兆。

三種常見的表示法

數值英文縮寫字母科學記號
1,0001K1K 或 1a1e3
1,000,0001M1M 或 1b1e6
1,000,000,0001B1B 或 1c1e9
10^121T1T 或 1d1e12
10^151Qa(1000 兆)1aa1e15
10^181Qi(100 京)1ab1e18
10^331Dc(10 溝)1ag1e33

每款遊戲都有自己的系統,容易讓人混淆,但只要知道規則就很好懂:每一級都是前一級的一千倍。

我們遊戲裡的實例

即使是同一間工作室的兩款遊戲也可能不同。在《Idle AI Factory》中,數字依序是 K、M、B、T,接著開始兩個字母一組:aa 代表 10^15、ab 代表 10^18、ac 代表 10^21,依此類推,共 120 個後綴。在《Idle Ronin》中,字母一開始就出現:1a 是一千、1b 是一百萬、1c 是十億,一路到 z,然後是 aa、bb、cc。表中共有 1,743 個後綴,萬一你超過最後一個,遊戲會顯示「A Lot!」。《Idle Ronin》也能在設定中改用科學記號,許多老玩家都比較喜歡這樣。

數字為什麼會爆炸成長

放置遊戲的成本和獎勵每一步都會按一定百分比成長,也就是指數成長。在《Idle Ronin》中,前期敵人的生命值每一關會增加 55% 到 57%。過了 140 關後,這個累積效果會達到約 10^28,也就是一個 29 位數。我們的指南放置遊戲的成長機制有曲線圖。

《Idle Ronin》各關卡的敵人生命值(以位數計)
《Idle Ronin》各關卡的敵人生命值(以位數計)

為什麼 1e308 是個神奇的數字

大多數遊戲以 64 位元浮點數(稱為 double)儲存數字。double 能容納的最大數約為 1.8 x 10^308,超過之後電腦就會回傳無限大。這個極限在增量遊戲玩家間非常有名,《Antimatter Dimensions》甚至把它變成遊戲的一部分:抵達約 1.8e308 的 Infinity(無限)是遊戲的第一個大目標。

較小的 32 位元 float 格式更早就會用盡,大約在 3.4 x 10^38。正如我們親身發現的,這一點很重要。

我們的 bug:當敵人的生命值變成無限大

《Idle Ronin》源自一款更早的放置遊戲,在那份程式碼中,敵人的生命值是用 32 位元 float 計算的。過了第 140 關,敵人的生命值會逼近 10^28,而大約從第 316 關開始,float 就溢位成了無限大。之後的關卡出現了完全沒有生命值的敵人,到了第 1000 關左右,計算結果變成 NaN(not a number,「不是數字」),讓進度完全卡住。

解決方法是用 double 計算整條曲線,並把第 1000 關之後的部分交給遊戲自己的大數型別處理。這種型別會儲存一個普通的數,再加上一個另外記錄多出幾個零的計數器,因此可以遠遠超過 double 的極限。這也是遊戲裡有一張 1,743 個後綴的表的原因。

遊戲如何處理超越無限的數字

瀏覽器上的增量遊戲也撞上了同一道牆,玩家社群為此做出了工具。最有名的是 Patashu 的 break_infinity.js,它獻給《Antimatter Dimensions》的作者,以及為了執行這款遊戲而吃力的「all the CPUs that struggled to run」。它把位數和指數存成兩個獨立的數,可以處理到約 10^(9 x 10^15)。它的後繼者 break_eternity.js 走得更遠,遠到要用一座冪塔才能描述它的極限。

代價是精確度。數字大到這種程度時,遊戲只會保留大約前 15 位數。沒有人會發現:當你的收入達到 1.52e1204 時,前幾位之後的數字根本無關緊要。

快速讀懂大數字的方法

  • 數字母,不要數位數。每一級(從 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,000 倍。

放置遊戲裡的 e 是什麼意思?

那是科學記號:1e6 表示 1 後面有 6 個零,也就是一百萬。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。

更多攻略

所有攻略

◆ 更多 ONI Games 作品

更多遊戲

滑動查看更多

ONI Snakes: Armored Arena
現已推出 · Google Play

ONI Snakes: Armored Arena

擊落對手的裝甲、長成巨蛇,在11種玩法中稱霸霓虹競技場,還能線上對戰、和好友一起玩。

探索遊戲 →
Idle Ronin: Cyber RPG
現已推出 · Google Play

Idle Ronin: Cyber RPG

化身最後一位電子浪人,踏入霓虹閃爍的未來。斬殺一波波機甲,組建改造人小隊,攀登霓虹之塔。就算你離線,你的刀刃也不會停歇。

探索遊戲 →
Idle Summoner: Pixel RPG
現已推出 · Google Play

Idle Summoner: Pixel RPG

召喚一支野獸軍團,攻陷冥界的城堡,每當進度放緩就轉生,變得更強。

探索遊戲 →
Block Brain: Block Puzzle Game
現已推出 · Google Play

Block Brain: Block Puzzle Game

擺放繽紛方塊、消除整排、串起連擊,看著你的腦腦夥伴從小小的萌芽,長成頭戴皇冠的天才。

探索遊戲 →
Idle AI Factory: Robot Tycoon
現已推出 · Google Play

Idle AI Factory: Robot Tycoon

經營一座充滿開朗機器人的工廠,讓每條生產線自動化,從小小的 AI 實驗室一路發展到月球基地。

探索遊戲 →
Idle Restaurant: Miami
現已推出 · Google Play

Idle Restaurant: Miami

把海灘上的一間小披薩店,打造成邁阿密閃耀霓虹的餐廳帝國:聘請經理、收集20道真實食譜,離線也能持續賺錢。

探索遊戲 →