I'm currently working on a very small scale MMO game planned to support approximately hundred players per server, but we're having trouble with our economical model.
For various reasons we have decided to go with a fixed-currency-amount system; meaning that there is only a certain amount of "gold" that can ever exist in the game at the same time. In this early play-testing version (9 players) that amount is 9000 gold but we are planing to have around 1 million gold per server (100 players).
A brief example how this system works:
At a certain point in time this is how the gold amounts may look in the game.
| Max Gold | Bank | Shopkeeper | Player A | Player B | | 100 | 90 | 0 | 5 | 5 |
Player A sells 2 gold worth of loot to the Shopkeeper. The Shopkeeper has 0 gold and so he "borrows" 2 gold from the bank (only NPCs can).
- Player A sells 3 gold worth of loot to Player B. Player B pays from their wallet.
Player A buys a sword for 5 gold from the Shopkeeper. Player A pays from their wallet. Now we have:
| Max Gold | Bank | Shopkeeper | Player A | Player B | | 100 | 88 | 5 | 5 | 2 |
Repeat the above loot-and-sell step a few times and you may end up here:
| Max Gold | Bank | Shopkeeper | Player A | Player B | | 100 | 0 | 27 | 59 | 14 |
Player A tries to sell a 30-gold item to the shopkeeper, but cannot because the Shopkeeper only has 27 gold and cannot borrow from the (now empty) bank. Player A have to lower their selling price, trade wares in return, or wait until the Shopkeeper gains money in other ways.
This system is working fine – for the most part. Recently one of our testers did something that completely broke our system; they sold, traded, and haggled their way into owning about 60% of the total currency amount available in the game then refused to use it (becoming the RPG equivalent of Scrooge McDuck). This caused a big problem because suddenly approximately 5500 gold out of our 9000 total was unusable.
Of course in the release of the game one player owning 60% of all money is unlikely, but 60 players each owning 1% of all money can cause the same effect. We have considered deleting old characters and returning their money to the "bank" but decided against it since if a player comes back and his character is deleted I would imagine they would be quite sad (especially if it was super rich!).
So on to the actual question; how can we avoid this happening and how can we limit the damages caused by this?