Disclaimer: This advice is mostly applicable for games that do not go to extremely high numbers (like Antimatter Dimensions, Infinite Layers, etc.).
I have been playing incremental games regularly since 2015, mostly on mobile, and there are several bugs, balancing issues, and other design flaws that I have repeatedly encountered. Since I'm sure several users on this Subreddit plan to create a game in the future or are working on one currently, there are several principles that you should keep in mind:
- Make sure that the game progresses at a reasonable rate. The time that is considered "reasonable" is arguably subjective, but the amount of content, the rate at which new content is released, and the complexity of the game should be taken into consideration. Generally speaking, the first prestige should be reachable in under an hour, the next few prestiges should take perhaps 5–15 minutes, and then take increasingly longer after that until it eventually slows down to around 2 prestiges per day (at points where prestiging is worthwhile), assuming a reasonably optimal playstyle and F2P. Progression should be somewhat steady with a bit of variation after this, but should not invariably continue slowing down more and more. Edit: To clarify, in games with complex features unlocking before the first prestige, it should take longer to reach. Not all games have a prestige mechanic, but the vast majority (as far as I'm aware) do, and the few that don't become essentially unplayable once new ways to get bonuses run out.
- Avoid common bugs. There are several bugs, glitches, exploits, etc. that are common in mobile incremental games. One of them is changing one's device's clock to advance forward in the game by the amount of time skipped. While using server time and requiring an internet connection to play the game or claim offline earnings is one way to solve this problem, there is another way to thwart the exploit without doing so. Another common exploit is using multiple fingers, or navigating out of the app and back in and rapidly tapping on a certain button (daily rewards, upgrades, businesses, prestige, offline earnings, etc.) multiplies (or in the case of upgrades, exponents) the effect by the number of taps or fingers used. Making it so that only one finger can be on the screen at a time (as in, using a second, third, etc. finger would have no effect when tapping) would prevent this. Additionally, if your game has a cloud save feature, and your game has any RNG elements, prevent the player from having the game open on multiple devices at once to prevent rerolling. Other bugs that are not exploits that I've seen in various games include the loss of all progress if the game is interrupted during the loading screen (such as if a low battery prompt appears or the player navigates out of the app), cycle timers of businesses resetting when the game is closed and reloaded, or when switching between worlds/events, and numbers (particularly upgrade prices or certain requirements) displaying as 1,000 (previous unit) instead of 1 (higher unit) due to floating-point rounding errors.
- Understand how time-gated permanent bonuses interact with other elements of the game. In many incremental games, there are certain bonuses that are permanent, but time-gated, meaning that the primary way to get them for free is by waiting for (typically) daily or weekly resets (when opportunities to acquire them become available again) and attain the maximum amount possible. For example:
•In Midas Gold Plus, raid points provide a permanent increase to coin profits, and they are acquired via raids (which take several hours each) or by using event tickets (the player gets one collectible every 5 minutes, stacking up to a maximum of 400, and can buy 5 tickets for 95 of these, making that 5 tickets every 475 minutes).
• In AdVenture Capitalist, players can earn Gold bars by reaching certain milestones for the first time (only a finite amount can be earned this way), or by ads (1/3 chance every 2 hours) or events (these run twice per week). Gold bars can be spent on permanent bonuses like profit multipliers, speed multipliers, and suits.
• In Tap Titans 2, key bonuses that are essential for late-game progression, like hero weapons, hero scrolls, and event badges, can be attained via clans, tournaments, and events that only run twice per week, once per week, and once per month, respectively.
When balancing an incremental game, it is crucial to decide what these bonuses will be expected to be to progress at a reasonable pace at any given point of the game, and balance accordingly. This decision should be made from the very beginning - before any other parameters are set. Be sure to estimate how long it will take (of consistent play; not repeatedly missing opportunities to gain them) to get these bonuses to said values. Even if they are all time-gated, there should be multiple ways to attain these bonuses (or the premium currency used to buy them), some of which are easy (like opening the game to claim a daily reward), while others (so that players have an incentive to spend more than a few minutes per day on the game) are more time-consuming (such as missions that are generated based on the player's current game state every four hours, up to a maximum of five active missions at once).
Also, be sure to understand the relationship between different permanent multipliers (if multiple exist). For example, if there are four separate permanent multipliers that all stack additively when they're increased, but are multiplicative with each other, doubling them all would grant a x16 bonus to the main currency's generation.
From my experience, it is apparently very common for mobile incremental game devs to not understand these principles, as there is often an exponential slowdown (as in, the time it takes to get to a useful upgrade or to a point where prestiging is worth it increases, on average, exponentially each time) after a certain point in progression, while permanent bonuses have diminishing returns. This eventually causes progress to slow down to a halt, since as y
grows, x^y
always outpaces y^x
(for x > 1
) at some point. Edit: Several comments have stated that this may be by design. Indeed, the reason why some currencies and bonuses are time-gated is to incentivize IAPs. However, due to the way the bonuses stack (exponential slowdown vs bonuses with diminishing returns) in many of these games, there is no amount of real money that one can spend to eventually get "unstuck".
Here is an example:
Suppose that beyond a certain point (say, 1e+30 prestige points, at which point it takes 1 hour), each prestige takes 25% longer than the previous to double prestige points, and there are two separate permanent multipliers that are multiplicative with each other, but additive with themselves.
At 1e+35, it would be 16.6 hours
At 1e+40, it would be 276 hours
At 1e+50, it would be 8.69 years
At 1e+75, it would be 11.0 million years
...
As you can see, progress eventually gets so slow that even if one had infinite amounts of the premium currency, one eventually could not progress further (they can only tap or click on the button to buy more permanent multipliers so quickly). With 1,000 of each multiplier, that would still be 11 years, buying another 1,000 of each would bring that down to 2.75 years. It would still be 1.22 years with 3,000 of each multiplier, but it would continue growing exponentially as one progresses from there. It's not a paywall, it's a hard wall.
- Key considerations for prestige mechanics: The ideal design for a prestige feature is that there should be a certain "sweet spot" where it is most efficient to prestige, and prestiging either too frequently or waiting too long between prestiges is inefficient. For games with similar mechanics to Cookie Clicker or AdVenture Capitalist, a formula would be to make each prestige point require more of the main currency to earn than the previous, and resetting to claim prestige points does not reset the formula (meaning, the amount of the main currency required to earn the next prestige point is the same as if they hadn't prestiged). This generally makes it so that prestiging at a x2–x5 bonus is optimal. Prestiging sooner than that would be inefficient because one would be at a lower income rate than before for a while, and when they're back to their previous position, they haven't gained much. Prestiging later than that would be inefficient because beyond a certain point, it'd be better to split that same total multiplier up into multiple smaller prestiges. The idea is to make it so that players aren't compelled to micromanage prestiges (which would be the case if the formula reset after each prestige), while also discouraging waiting weeks between prestiges. For games like Clicker Heroes, Tap Titans 2, etc. (advancing stages, defeating monsters, earning gold/coins to upgrade heroes to deal further damage to advance more stages, etc.), consider using the formula:
Base prestige points earned = value (increases exponentially per stage)
Actual prestige points gained upon prestiging = Base Earned*(Base Earned/(Base Earned+Total Claimed from previous prestiges))
The logic is similar - it encourages players to push as far as feasibly possible each prestige (instead of repeatedly prestiging at the same stage and advancing forward in steps) while discouraging super long prestiges.
- Avoid "irreversible failure mechanics": What I mean by this is, it shouldn't be possible for players to make a mistake so severe that they're better off hard resetting the game than to continue playing from where they're at. Virtually always, players are not warned that such mechanics exist. Some examples of "irreversible failure mechanics" include:
•In AdVenture Capitalist, overspending angels (the prestige currency) on angel upgrades or managers (these have to be rebought after each prestige) can make it very difficult, or even borderline impossible, to earn more angels. This is because the formula is based on total income earned (using a non-linear formula), minus the total number of angels claimed from previous resets. This means that if a player spends nearly all their angels, the cash required to earn new ones would be far (and potentially even insurmountably) higher than for someone who just hit that number of angels for the first time. For example, if one had 13 million angels remaining, but spent a total of 15 trillion, the cost per angel would be about 1 million times higher than for someone who had 13 million unspent angels and only spent 2 million. Thus, the former player would be unable to progress. Many other games with similar mechanics also work this way. This issue can be solved by using this formula instead, which still adheres to the principles in point #4 of this post. Making prestige currency upgrades persist through subsequent prestiges (would solve this in the vast majority, but not necessarily all cases), or implementing a transcendence feature would also be a solution.
• In Wild West Saga, to advance from one town to the next, players must reach a "target population", which is a certain number of pioneers & settlers (prestige points) based on the number of pioneers the player had at the start of the current town, to move to the next town. There are 60 towns in an area (world), though players can prestige before reaching the target and stay on the same town. In Area 3, progress slows down exponentially the further past 1 ba (1e+93), and especially past 10 bd (1e+103) pioneers + settlers the player gets. If one vastly exceeds the target on too many towns on this area, the target population for the last few towns will be far above this amount, and the player cannot progress further (no matter how much real money or premium currency they spend - diminishing returns cannot counterbalance this exponential slowdown), forcing them to either cheat (using complex glitches that most players don't know) or hard reset the game, and not vastly exceed targets when they reach Area 3 again.
• In Idle Golf Tycoon, there is a second layer of prestige called "Transcendence", where players sacrifice everything they would lose in a normal prestige plus their normal trophies (layer 1 prestige points) in exchange for platinum trophies (layer 2 prestige points - these increase the bonus per normal trophy) and a separate set of perks. However, the formula for platinum trophies gained upon transcendence takes into account the number of previous transcendences (the number of normal trophies each platinum trophy requires increases with every transcendence). This means that if the player performs their first few transcendences too early, they'll eventually be unable to progress further, as normal trophies will eventually become too hard to earn before the point at which the player has enough platinum trophies to claim for a transcendence to be worth it (since the cost for each of them is too high).
- Implement automated anti-cheating flags if your game has weekly tournaments, a leaderboard, etc. For example:
- If the player’s current amount of any currency exceeds their total amount of that currency accumulated (tracked behind the scenes)
- If the player reaches a certain (mathematically impossible) stage of progress in under an hour of starting the game (sum of in-game and idle time) without spending real money
- If the player’s income/sec (or, if there are ways for it to decrease, their highest income/sec since last prestige), is less than a certain fraction (such as a billionth) of their current amount of the main currency (Edit: to clarify, this is impossible without waiting 31.7 years without doing anything in the game, or even longer if there are mechanics that cause income rate to increase over time by itself, such as lower generators producing above ones).
- If a player has more of the main currency, any of the producers of that currency (businesses, hero levels, whatever it may be), or prestige points than is mathematically possible given the other parameters of the player's game state.
If any of these flags are true, the player should be permanently removed from any competitive multiplayer aspects of the game.
These are all important considerations when creating an incremental game. I hope any developers on this Subreddit find this information helpful. There have been many posts over the years asking for advice pertaining to balancing, what features should exist, etc. and these are the main issues that come to mind and haven't been comprehensively addressed by others.
- Avoid "power creep" in competitive elements of the game. If weekly tournaments or events exist, all players should start on equal footing, instead of the same people winning every time due to their prior progress, as that creates a "rich get richer, poor fall behind more and more" type of scenario. Examples of "power creep" include:
• In War Clicks, certain weekly leaderboards are tied to all-time progression, and these provide permanent, multiplicative bonuses. This leads to the same players holding the top position every time (or at least, that was the case when I last played it).
• In Tap Tycoon, there is a weekly competition based on soldiers sent to a "war", which is tied to maximum net worth. A players ranking grants them tech cards (multiplicative permanent bonuses) at the end of the war, making the highest-ranking players climb further and further ahead, while lower-level players can never catch up.
• In Office Space: Idle Profits (this game no longer exists), events had leaderboards and level requirements based on how many coins they earned during the event, both of which provided rewards back to the main game. There were characters (I forget their name) that provide massive permanent bonuses to floors, depending on their rarity and level, but these could also be applied in events. The same players, those with the highest character levels for the best rarities, always won events easily, gaining even more of those bonuses at the end, giving them a further edge up, and so on, while newer players increasingly fell behind with no "catch-up" mechanism.
• Claim Addiction (this game also no longer exists) avoided this issue. For weekly tournaments, the game compared the player's net worth at the time of joining the tournmanent to what it was at the time it concluded, with the percentage increase being the player's score. This meant that all players started on the same footing, regardless of where they were in the game.
Avoid rigid "time walls". If there are certain features that take a fixed amount of time to unlock and are essential for progression, there is little incentive for the player to strategize or play actively - they'd have nothing to do but wait for those timers to end.
If you want your game to handle extremely large numbers (>1.8e+308), you'd need to rework all calculations as described below (I'll call this BigNumber):
- Store numbers internally as amantissa(a value between 1 and 1000) and anexponent(the power of 1000). Both the mantissa and exponent are doubles.
- When comparing two numbers, compare the exponents first. If they’re equal, then compare the mantissas.
- When adding two numbers with the sameexponent, add the twomantissas.
- When subtracting two numbers with the sameexponent, subtract the twomantissas.
- When adding two numbers, and the number being added has a lowerexponentthan the current number, increase the current number’smantissaby that of the number being added divided by 1000^(current number’sexponent-exponentof the number being added).
- When adding two numbers, and the number being added has a higherexponentthan the current number, start with the number being added, then add the previous number to that, using the calculation described in the previous bullet point.
- When subtracting two numbers, and the number being subtracted has a lowerexponentthan the current number, decrease the current number’smantissaby that of the number being subtracted divided by 1000^(current number’sexponent- exponent of the number being added).
- (No need to have a provision for subtracting a number with a higherexponentthan the current number, as that always means the player doesn’t have enough currency)
- When multiplying two numbers, add theexponentsand multiply themantissas.
- When dividing two numbers, subtract theexponentsand divide themantissas.
- When raising a number to a power that is greater than one, increment the exponent by power * log_1000(base). This is relevant when the costs of certain things increase exponentially with each purchase, such as the level up costs of businesses.
- When raising a number to a fractional power (below 1), multiply theexponentby the power, then raise themantissato the power. This is relevant when prestige mechanics use the total amount of the main currency earned, using a sub-linear formula, as part of the calculation.
- For a base 1000 log of a BigNumber, take the log_1000 of the mantissa and add the exponent to it. For example, this function applied to {mantissa: 30, exponent: 45} would be calculated as log_1000(30) + 45, which is approximately 45.49.
- At the end of each calculation, numbers should be normalized as follows:
- If themantissareaches or exceeds 1000 after any operation, divide it by 1000 and increase theexponentby 1. Repeat as many times as needed.
- If themantissadrops below 1 after any operation, multiply it by 1000 and decrease the exponent by 1. Repeat as many times as needed.
- If the exponent is fractional after any operation, multiply the mantissa by 1000^fractional part, then floor the exponent. Normalize again if necessary (such as if the mantissa exceeds 1000).
- Theexponentof any number cannot fall below 0. For example, {mantissa: 0.123, exponent: 0} would remain at that, instead of becoming {mantissa: 123, exponent: -1}.
You can also use powers of 10 instead of 1000.