1. Make the game require resources to play
This has many names: food, energy, stamina, etc. The fundamental concept is virtually identical in all cases though. It represents how much fun players can have. Once they run out, they can't play anymore. 2. Use timers to rate-limit the player's progression
Distribute resources periodically. These timers place an upper limit to how quickly players can progress in the game. There's only so much players can do with the resources it periodically gives them.Distribute resources at predictable intervals and only if the player has used the previous items. This will create a powerful habit in players: they will feel the need to log into the game frequently in order to use up resources and keep the timer running at all times.
3. Allow players to pay money to reset the timers
Paying customers get to buy resources directly instead of waiting for the timer to run out. They essentially pay to reset the timers and can therefore progress at unlimited rates. 4. Make players outspend each other
Once players can pay to advance, the game is reduced to a spending competition. The player who spends the most money on the game wins.