One thing that games do that help ensure people keep coming back is what I think of as “rewarding people forward”. In life, many people reward themselves for doing good things by doing something that counteracts the benefits of their efforts—for example, rewarding exercise with unhealthy food, or rewarding payday by spending money unnecessarily. This video, although not inherently about game design, talks about this concept fairly well in my opinion, and as this is a “short”, I’ll leave it at that.
If we break a game into long-term goals consisting of shorter-term goals (or milestones), then the shorter-term ones should build up to accomplishing the long-term ones: and that’s what we do in games because the game, in most cases, doesn’t give us much choice. We get better at the game, score more points, level up, etc., giving us more capabilities or options. Ideally, these then help us achieve our next short-term goal, and ultimately give us the ability to achieve the final goal.
What about earning cosmetics or non-functional unlocks?
I believe the best middle-ground here is to create rewards that are both “superficially” enticing—they look and/or sound good—and are useful and productive. Reward the player so that they are motivated not just to get the next cool thing, but to subconsciously apply a practical meaning into it: the cooler thing is better, stronger, and more useful—and thus desire to get the next “cool thing”. After all, different people have different metrics for how they value progress and rewards, so it’s important to appeal to multiple audiences at once if possible.
While the video above talks about role-playing games, the idea of rewarding forward can apply to all sorts of genres. For instance, take a learning-focused quiz game. Perhaps in a traditional quiz game you start with four lifelines—rather than the player using the lifelines, running out of resources, and losing hope/motivation to continue playing, have them start with 2 lifelines, perhaps randomly chosen out of 5 (to keep things interesting through variety), and let them earn additional lifelines at certain points in the game. You can even have them study up on questions they get wrong after an unsuccessful run of the quiz game, then reward them for studying with a currency system. Then, the currency can simultaneously unlock a functional reward (such as new lifelines) and non-functional reward (such as new special effects when answering a question correctly or new fashion options for their in-game character).
In short, reward forward to push people forward. It’s a simple and fundamental concept of game design, but one I believe is applicable at any level of experience.