Game design tips part 1:
- After a major reset, the game should be sped up from the start (not something that takes a long time to kick in).
- Upgrades that scale based on the currency that you spend to buy it should still give a bonus at 0
- If a reset takes more than 1 minute, you should be able to get a bonus every reset, from having more currency or from buying new things. Doing multiple identical runs in a row without even a small bonus is not fun.
- Do not use static currencies to buy things unless you unlock buy max early on.
- To prevent crazy inflation, try to balance things so that each new layer lets the player get to the point of the next layer, but slows down around that point too.
- Use resetsNothing and autoPestige for automating static layers, and passiveGeneration for normal layers
- Exponents are very weak when the value that they are boosting is low. They make for bad early upgrades. (Tetration even moreso!)
- If an upgrade boosts another upgrade or effect, indicate what resources it actually boosts too.
- When resetting a lot of content at once, make sure that whatever bonuses you give the first time will improve all parts of getting back to some degree, especially the slowest parts and the most click-intensive parts.
- Make upgrade effects return their actual values even before you buy them, and check if you own them when applying the effects. (This way the player sees how much of a bonus they’ll get)
- It’s usually best to base milestones on total currency instead of current currency.
- Don’t hard reset the player for any reason. Not to prevent cheating, not to deal with inflation (use fixOldSaves for that). Let them play the game the way they want to play and don’t take it away from them.
Coding tips:
- Don’t use the () => notation because you can’t use the “this” keyword in them.
- You can use variables to store long displayed strings, tab layout data, CSS objects, and similar things. This can help to make the code less cluttered, and lets you reuse things.
- Don’t forget to add hotkeys! You need to have the key in the description, like “p: reset for prestige points”
Some feedback on Prestige Tree from Backwards Bullet that may be helpful: Prestige Tree Thoughts - Pastebin.com
Game design tips part 2:
- Don’t force a player to choose whether to allocate a static resource to production or QOL. Usually this means that they won’t be able to get the QOL for a long time. Things that are okay:
- Using separate sources for production and QOL boosts.
- Letting the player choose the order to buy upgrades that don’t make the others harder to get.
- A “tech tree” where QOL bonuses are on the way to other production bonuses.
- Generally, don’t put multiple production bonuses in a single upgrade. It’s okay if one of the effects is QOL or an unlock, or if they have a production boost and a prestige boost for the current layer, for example. And you should never need 3+ effects.
- Don’t do upgrades that modify softcaps, because their effects are harder to understand the implications of, especially if it’s not clear when the softcap starts or what its effect is.
- Don’t refer to things by their internal names for things like buyables, prestige exponent, upgrade ids, and points (when you already gave them another name). The player won’t know what they mean.
More design tips: - Often, it is a good idea to reset things like generator power on same-row resets, because it makes increasing its production less impactful if it has built up, and means that losing production has no effect. - If the player has enough production after prestige that the main limitation on time is how fast they can buy back things, they should probably be keeping more things on reset. - If an upgrade gets reset but the player keeps its effect (e.g. it unlocked a layer) that upgrade should either be kept or hidden after the reset (unless something is based on the number of upgrades) - It should not take more than 10 seconds to get the very first boost in the game.
Do NOT use TMT Expantanum (aka TMT+ or The “Better” Modding Tree) unless you are certain that you will go beyond the limits of Break_Eternity (F1.8e308, which has 1.8e308 e’s). It has much worse performance and is likely to have issues that regular TMT does not. It is not officially supported.