Changing How the Impact of Investments is Calculated

Now that I've "balanced" the game, a lot of people are running up against the natural limit of a 32-bit integer: about 4-billion. They hit this number when they are trying to satisfy enough dependencies to build up their Wealth stack of Investments.

It's kind of nice to be able to build up a sweeping empire with billions of little companies in it. So part of me wants to find a way for you to be able to keep pushing the limits. Part of me wants to find a way to support it.

The problem is that some of you hit the 32-bit limit in just a few days. If you are able to hit that kind of limit in a few weeks and are able to double the number of bits you need with any reasonably small periodicity, then there is no fixed-length number I can use that will solve this problem. Will 64-bits be enough to last a month? Two? We'll be right back where we are, today, if I apply that kind of band-aid.

I can, of course, use a variable-length number (look up things like BigInt). I might have to write my own but it can be done. The problem with such things is that their performance is not constant. It varies with the size of the number (specifically with the number of bits) so operations take longer and longer.

So, again, if you can double with any kind of periodicity, you'll be effectively halving the performance of the game every so often. The more powerful you get, the slower your computer gets... that kind of sucks.

I have some ideas about how to address this. Every one of them involves a major change in game play at some point. Some of them are more disruptive than others and not many of them are mutually exclusive... so we could (for instance) adopt most of the strategies and have an extremely sustainable game but at the cost of a major disruption (in alpha seems to be the time to do that). Or we could pick one that we think is good enough.

Feel free to edit this so it doesn't read like I wrote it. :)

Following are the ideas. Please create a new heading with a description for each one:
 * Suck it Up
 * Network Effects
 * Hard Limits & Ranking System
 * Network Effects, Limits & Ranking System
 * Leaderboard Effect

Suck It Up and Use BigInt for Investment Counts
This is one of the least expensive options to implement. It is also barely disruptive at all. The game will keep playing the way it plays until it is too slow for you to play or is so slow it effectively becomes turn based (like it takes ten minutes to update once so you just periodically check back and make changes).

Add Network Effects to Investments
Right now, investments have an impact which is purely linear with respect to the number of units you have. This could change. Multipliers that correspond with scale in some way (e.g.: double effectiveness every 100 or 10x effectiveness every 10) could be introduced. This would allow the difficult for getting new units to be cranked way up while still supplying a sustainable path to large dividends in any given category.

This would allow the cost of investments to go way up, because their output is no longer linear.

Of course, it would be a huge disruption to current, high-performing players. Basically, games would have to be forcibly soft-reset (maybe with a bonus or an achievement?) if a player has too many of any given Investment.

Hard Limit the Ability to "Rank Up" an Investment
I could put a hard cap on the number of any given investment and then give you the ability to up the "rank" of an Investment. When investments are ranked up, their number would collapse by a factor equivalent to how much they increase in power (e.g.: you would have one tenth as many and each would be ten times as powerful) and the price would increase by some factor. The point of this is not to make each investment have a higher ROI (although that's an opportunity) but to strength the output space of any given investment out by quite a great deal.

This would not necessarily be a big disruption. It might be doable with no disruption at all, in fact.

How you pay for the ranks and how long they survive is to be determined.

Ranking + Network Effects
This would be a sweeping change. Again, a forces soft-reset with a perk would be necessary. It is perhaps the most difficult to tune. A lot of people would complain that the game doesn't work the way it did before... although I'll get less of that if I wait until more of you are up against the uint.MaxValue wall. :)

On the other hand, it stretches the output space for any given investment pretty far - probably further than a 64-bit floating-point number will support.

Leaderboards Effect
Eventually, the leaderboards are going to change from reporting truth to reporting 10000*log10(max(1, truth)), or thereabouts. I could let people spend some of their truth for a boost to that score. Maybe sacrifice all your truth (assuming you have a certain amount) for a 10x multiplier and a +1 boost to that leaderboard placement?

This is one of my (Max's) least favorite options because it changes the objective of the game from optimizing the size and strength of your empire to optimizing your placement on the leaderboards. It also feels like I'll need to spend more energy combating cheaters if this becomes the point of the game.