
Hướng dẫn / Game idle
Vì sao game idle dùng số khổng lồ: giải thích K, M, aa và e308
K, M, B, T, aa và 1.5e45 nghĩa là gì trong game idle, vì sao con số bùng nổ, vì sao 1e308 là giới hạn thần kỳ, và code game xử lý những con số lớn hơn sức chứa của máy tính ra sao, kèm câu chuyện về lỗi của chính chúng tôi.
Game idle dùng những con số khổng lồ vì mọi thứ trong đó tăng theo cấp số nhân: mỗi nâng cấp nhân thu nhập lên, nên sau vài giờ bạn đã ở hàng triệu và sau vài tuần đã vượt mọi con số có tên gọi. Để các con số dễ đọc, game rút gọn chúng: K là nghìn (thousand), M là triệu (million), B là tỷ (billion), T là nghìn tỷ (trillion), rồi đến các chữ cái như aa, ab, ac, hoặc ký hiệu khoa học như 1.5e45, nghĩa là 1,5 theo sau bởi 45 chữ số.
Bảng tra nhanh: K = 10^3, M = 10^6, B = 10^9, T = 10^12, rồi mỗi bước chữ cái lại gấp 1.000 lần. Trong ký hiệu khoa học, số sau chữ e đếm các chữ số đứng sau chữ số đầu tiên: 1e6 là một triệu, 1e12 là một nghìn tỷ.
Ba cách viết số phổ biến
| Giá trị | Thang ngắn | Ký hiệu chữ cái | Khoa học |
|---|---|---|---|
| 1.000 | 1K | 1K hoặc 1a | 1e3 |
| 1.000.000 | 1M | 1M hoặc 1b | 1e6 |
| 1.000.000.000 | 1B | 1B hoặc 1c | 1e9 |
| 10^12 | 1T | 1T hoặc 1d | 1e12 |
| 10^15 | 1Qa (quadrillion, triệu tỷ) | 1aa | 1e15 |
| 10^18 | 1Qi (quintillion, tỷ tỷ) | 1ab | 1e18 |
| 10^33 | 1Dc (decillion) | 1ag | 1e33 |
Mỗi game chọn một hệ riêng, điều này dễ gây rối nhưng dễ giải mã khi bạn biết quy tắc: mỗi bước gấp một nghìn lần bước trước.
Ví dụ thực tế từ game của chúng tôi
Ngay cả hai game của cùng một studio cũng có thể khác nhau. Trong Idle AI Factory, các con số đi theo K, M, B, T, rồi các nhóm hai chữ cái bắt đầu: aa cho 10^15, ab cho 10^18, ac cho 10^21 và tiếp tục qua 120 hậu tố. Trong Idle Ronin, chữ cái bắt đầu ngay: 1a là một nghìn, 1b là một triệu, 1c là một tỷ, cứ thế đến z, rồi aa, bb, cc. Bảng có 1.743 hậu tố, và nếu bạn vượt qua hậu tố cuối cùng, game sẽ hiện “A Lot!”. Idle Ronin còn cho phép bạn chuyển sang ký hiệu khoa học trong phần cài đặt, điều mà nhiều người chơi lâu năm ưa thích.
Vì sao các con số bùng nổ
Chi phí và phần thưởng trong game idle tăng theo một tỉ lệ phần trăm mỗi bước, đó là tăng trưởng theo cấp số nhân. Trong Idle Ronin, máu kẻ địch tăng 55 đến 57% mỗi màn ở giai đoạn đầu. Sau 140 màn, sự cộng dồn đó đạt khoảng 10^28, một con số có 29 chữ số. Hướng dẫn tiến trình game idle hoạt động thế nào của chúng tôi cho thấy các đường cong.

Vì sao 1e308 là một con số thần kỳ
Hầu hết game lưu số dưới dạng số thực dấu phẩy động 64-bit, gọi là double. Số lớn nhất mà một double chứa được là khoảng 1,8 x 10^308. Vượt qua nó, máy tính trả về vô cực. Giới hạn này nổi tiếng trong giới người chơi incremental đến mức Antimatter Dimensions biến nó thành một phần của game: chạm tới Infinity, ở khoảng 1.8e308, là mục tiêu lớn đầu tiên của game.
Một định dạng nhỏ hơn, float 32-bit, cạn sớm hơn nhiều, ở khoảng 3,4 x 10^38. Điều đó quan trọng, như chúng tôi đã phát hiện ra.
Lỗi của chúng tôi: khi máu kẻ địch thành vô cực
Idle Ronin phát triển từ một game idle cũ hơn, và trong mã nguồn đó máu kẻ địch được tính bằng float 32-bit. Qua màn 140, máu kẻ địch leo lên vùng 10^28, và từ khoảng màn 316 trở đi, float bị tràn thành vô cực. Các màn sau đó có kẻ địch hoàn toàn không có máu, và quanh màn 1000, phép tính cho ra NaN (not a number, không phải số) khiến tiến độ đứng im hoàn toàn.
Cách sửa là tính toàn bộ đường cong bằng double, và chuyển mọi thứ trên màn 1000 sang kiểu số lớn riêng của game. Kiểu này lưu một số bình thường cùng một bộ đếm riêng cho các số không phía sau, nên nó có thể vượt xa giới hạn của double. Đó cũng là lý do game có một bảng hậu tố với 1.743 mục.
Game xử lý những con số vượt quá vô cực thế nào
Game incremental trên trình duyệt cũng gặp bức tường tương tự, và cộng đồng của chúng đã xây dựng công cụ để vượt qua. Nổi tiếng nhất là break_infinity.js của Patashu, được đề tặng cho người tạo ra Antimatter Dimensions và “all the CPUs that struggled to run” (tất cả những CPU đã vật lộn để chạy) game này. Nó lưu các chữ số và số mũ thành hai số riêng biệt và đạt tới khoảng 10^(9 x 10^15). Người kế nhiệm của nó, break_eternity.js, đi xa đến mức cần cả một tháp lũy thừa để mô tả giới hạn của mình.
Cái giá phải trả là độ chính xác. Khi các con số lớn đến mức này, game chỉ giữ khoảng 15 chữ số đầu. Không ai nhận ra: khi thu nhập của bạn là 1.52e1204, các chữ số sau vài chữ số đầu chẳng bao giờ quan trọng.
Cách đọc nhanh những con số lớn
- Đếm chữ cái, không đếm chữ số. Mỗi bước (K lên M, aa lên ab) lớn gấp 1.000 lần.
- Với ký hiệu khoa học, hãy so sánh số mũ. 3e45 lớn gấp một nghìn lần 3e42.
- Đổi cách viết số nếu game cho phép. Ký hiệu khoa học dễ so sánh hơn khi các con số vượt quá vùng có tên gọi.
- Hãy nghĩ theo hệ số nhân. Một nâng cấp x2 cộng 0,3 vào số mũ; một nâng cấp x10 cộng 1.
Câu hỏi thường gặp
Sau trillion (nghìn tỷ) là gì trong game idle?
Quadrillion (Qa, triệu tỷ), quintillion (Qi, tỷ tỷ), sextillion, septillion và cứ thế, hoặc trong ký hiệu chữ cái là aa, ab, ac. Mỗi bước gấp 1.000 lần bước trước.
Chữ e nghĩa là gì trong game idle?
Đó là ký hiệu khoa học: 1e6 nghĩa là 1 theo sau bởi 6 số không, tức một triệu. 2.5e20 nghĩa là 2,5 theo sau bởi 20 chữ số.
aa nghĩa là gì trong game idle?
Trong hầu hết game dùng ký hiệu chữ cái, aa là bước đầu tiên sau trillion (nghìn tỷ), tức 10^15. Một số game, như Idle Ronin, bắt đầu dùng chữ cái sớm hơn, nên hãy xem thang số riêng của game.
Vì sao game idle dừng ở 1e308?
Vì một số 64-bit tiêu chuẩn không thể lên cao hơn. Những game đi xa hơn dùng kiểu số riêng của chúng.
Nguồn
- Mã nguồn game của ONI Games: Idle Ronin (double_evrac.cs, PlayerDatabase.CalculateEnemyHP) và Idle AI Factory (NiceCurrencyFormat.cs), tháng 9 năm 2026.
- break_infinity.js và break_eternity.js, Patashu, GitHub.








