There’s a simple concept that exists in that a person only does something if they have an acceptable rate of return. That is, whatever you’re putting in is proportional to what you get out.
In the real world, this is obvious. You won’t put money into an account without a return of some sort. Sometimes the reward is deferred – where it comes later on. School is like that in where the paper is most often worth more than the class.
Gaming is different since it’s abstracted from the real world. Our values take on different meanings because a) we are anonymous and b) that anonymity allows us to do things differently with minimal consequences.
Games also have a reward structure built over a time element. You need a consistent feeling of reward (progress) to keep moving forward. At some point though, that timer gets either too long or the rewards too poor to keep investing time. At that point people quit.
Some stay, granted, but typically chase another goal – say pet collection or social bonds and proxy rewards. The idea of “making people happy, makes me happy” fits well in this model. But, as most players have found, this player is a rare commodity.
I won’t say this wraps up the analysis of fun/time/challenge/reward but over the last few posts I think I’ve covered a lot of the fundamentals. People will invest time (or money) to do something to get a reward. That something must have value and the reward has to be proportional to the effort or it has no value.
I’m writing this like it was obvious and for most, it is. How to code obvious things is where the challenge lies