Why idle game numbers explode, and how we keep them readable
Under the hood · two curves, one wall, and a number with an e in it
Play Void Clickers for an hour and the numbers on screen stop meaning anything in the normal sense. Damage per second climbs past a million, then a billion, then something written as 4.08e+12. Every idle game ends up here, and it is not sloppiness. It falls out of two design choices that pull in opposite directions on purpose.
Cost multiplies. Damage adds.
Upgrading a weapon costs its base price multiplied by a fixed number for every level you already have. On the starting weapon that number is 1.10, so it is ten percent more every single time. Each weapon has its own rate, and the last one you unlock is the steepest at 1.14. Either way it is an exponential curve, which means the amount it grows by keeps growing.
What you get for that money is a flat increase. Each level adds the weapon's base damage exactly once, so ignoring the milestones we will come to shortly, level 40 hits for twice what level 20 does. That is a straight line.
Watch what those two shapes do to each other on the starting weapon, which begins at a price of 10:
- Level 0 costs 10, and adds one step of damage.
- Level 50 costs 1,174, and adds the same step of damage.
- Level 100 costs 137,806, and adds the same step again.
The reward stayed exactly the same size while the price went up by a factor of thirteen thousand. This is deliberate, and it is where the difficulty actually lives. The squeeze in an idle game is rarely "this enemy is too tough". It is "I cannot afford the next upgrade any more".
The enemies run away from you too
Meanwhile every wave is 8.5 percent tougher than the one before it, with an extra bump every twenty five waves. Also exponential, and a slightly gentler curve than the cost, but exponential curves get out of hand fast whatever their rate:
- Wave 1: 20 health
- Wave 10: 42
- Wave 50: 1,852
- Wave 100: 154,449
- Wave 200: 853,751,522
- Wave 300: 4,078,730,931,977
From wave 1 to wave 100 the health went up by a factor of about seven and a half thousand. From wave 100 to wave 300 it went up by another twenty six million. Nothing changed about the rule. That is simply what repeated multiplication does once you let it run.
How damage is allowed to catch up
If damage only ever went up in a straight line, this would be unwinnable, and quickly. So each weapon has a ladder of milestone levels at 10, 25, 50, 75, 100, 150, 200 and 300, and hitting one multiplies that weapon's output rather than adding to it. The multipliers stack, so by level 300 the starting weapon is hitting for over twenty one thousand times what its raw level would suggest. After 300 there is another milestone every hundred levels, each one worth a tenfold jump.
That gives the progression its characteristic rhythm: long stretches where you are visibly falling behind, punctuated by a level that suddenly multiplies you back into the fight.
Prestige, the reset that gains you ground
Eventually the milestones stop being enough, and the answer is to collapse the run. Prestige throws away your weapon levels and your shards and puts you back at wave 1. In exchange you keep Void Cubes, and every cube you have ever earned adds 8 percent to your damage, permanently, from that moment on. Reaching wave 100 pays exactly 10 cubes.
Cubes are counted on a total that never goes down, even when you spend them on other things, so a prestige can only ever make you stronger. Starting again with 10 cubes means the first hundred waves take a fraction of the time they did before, and you go further with the time you buy back. You do not even have to start from wave 1 forever: one of the things cubes buy is a higher starting wave, and fully upgraded it drops you straight in at wave 26.
Printing a number that large
That leaves the display problem. 4,078,730,931,977 is unreadable at a glance and does not fit in a button. So every number in the game that is allowed to get large, meaning damage, health, shards and prices, goes through the same short piece of code before it reaches your eyes. The small ones that never run away, like your wave number and your weapon levels, are printed as they are.
The rules are simple. Below a thousand, print the number as it is. Below a million, print it in thousands with one decimal and a K. Then M for millions, B for billions, T for trillions. So that wave 300 enemy shows up as 4.1T.
Past a thousand trillion the suffixes run out, and the game switches to scientific notation: 1.01e+15. The part before the e is the number, and the part after the e tells you how many places to shift the decimal point to the right. Shift 1.01 fifteen places and you get 1,010,000,000,000,000, and 4.08e+12 works out as a little over four trillion. Once you know the trick it is easier to read than the long version, because you can compare two numbers just by glancing at the exponent.
The ceiling nobody reaches
Void Clickers uses ordinary JavaScript numbers rather than a special big-number library. Those stop being able to represent whole numbers exactly at 9,007,199,254,740,991, which is around nine quadrillion.
That limit lands at almost exactly the point where the display gives up on suffixes and switches to scientific notation, which is a pleasant accident. Past there the numbers are approximations, and they are also being shown to two decimal places, so nobody can tell. The genuine ceiling, where the number stops existing altogether, sits somewhere past wave eight thousand, which is far beyond anywhere the prestige curve will ever let a run reach.
▶ Play Void Clickers