Let's talk about videogame design a little bit today.
When I was in college, I wanted to be a game designer/producer. I was obsessed. Read religiously, thought deeply, even started a game company with a friend when I was working at Amazon. While I've never successfully brought a full game to market (usually because I burn out with juggling my projects with work), I've worked on dozens of games over the years and played... a lot... of games.
Way back in college I was mentored by a big deal AAA producer. I won't reveal their name (opsec) but I was honored that he took the time to invest in me when I was asking for help on the Gamasutra message boards.
He taught me a TON about game design and is still running his own successful Indie shop 15 years later. One of the things he explained to me was the concept of sampling widely. To be good at game design, you have to play a LOT of games, even games you don't like, because they all offer useful ideas to hone your sense of what's good and bad, fun and not. Then he made me play hundreds of Indie games (including Match-3 and Hidden Object casual junk) and review them for his promotional website. He did pay me.
This was very wax-on wax-off style technique that I only appreciated later. I was able to extract the best parts of games that seemed dumb to me and even learn to appreciate new genres I hadn't sampled. In retrospect, getting out of my comfort zone of RPGs and strategy games was both fun and useful.
Over time, as my taste and understanding of mechanics improved, I began to start seeing games for what they really are: an assemblage of individual mechanics systems that create a novel emotional experience for the player. I started looking at all games through this lens.
The question of what makes these systems "fun" is interesting to consider. Raph Koster, in his book on this topic, suggests that it's balancing novelty and familiarity at a level that makes manipulation of these systems JUST harder than the player's current skill level. This is why games are not fun when you're overwhelmed by unfamiliar systems but become REALLY fun in the space where you start to grok the underlying systems but haven't mastered them.
It's the spirit of "easy to get into, hard to master."
If your game has a REALLY steep learning curve most players won't grind through to get to that point (EVE, Dwarf Fortress, Caves of Qud), and if the systems are insufficiently complex once players grok them they'll get bored and move on. Also, your systems need to complement one another and influence each other or what you really have is a compilation of mini-games that the player will tire of quickly.
This is why games with lots of systems that build on one another will keep you sucked in for days/weeks. When this is done really well, you have a game that starts out simply and slowly unlocks more complexity through progressing its systems such that you learn as you go and increasingly ratchet more system complexity as you build skill at the underlying components. It's tough.
Diablo is a great example of this concept and this is part of the reason why the game has so much staying power over the years. The first system you access is just "click on monster, deal damage, avoid death by retreating when harmed." Then you start getting loot. The loot opens up a new system (2), which is "collect items, influence statistics, and improve at system (1).
Starting with Diablo 2, we get skill trees also. Another system (3). This third system also builds on the previous two systems. It changes the possible tactics for system 1 by altering the mechanics of approach and fight, and it influences system 2 by now encouraging you to seek SPECIFIC items that complement your chosen system 1 playstyle. System 4 is the variety of monsters and bosses you encounter as you become exposed to new monster tactics and abilities. This influences the other three systems by encouraging specific choices and playstyles.
There are more but I trust this illustrates my point.
Now in Diablo 2, most of these systems are available relatively quickly (within the first hour of play). Games that REALLY have staying power are the ones that slowly unlock COMPLETELY new ways of playing the game within the context of the systems you've already learned. Diablo 2 cheats at this by using a skinner box mechanic that encourages you to go loot hunting to maximize your stats even after you've mostly mastered its systems and it's really effective, but also it's just kind of exploiting one neat psychology trick.
This hack is fun and probably the most widely-abused mechanic in all of videogames once everyone realized how effective it is. It simulates novelty (without actually providing novel tweaks on systems) because the game functions like a slot machine. Not bad, just cheap. And eventually, long-time players will start to notice this lack of true novelty and tire of the slot machine mechanic. Memetic resistance to loot boxes. It's hard to build but you do get there eventually.
So how can you get around this? One option is by REPLACING systems that the player has already grokked, which changes the whole gameplay stack they've learned and reintroduces novelty.
Changing classes in D2 is one example of this. It swaps out the components of S1 and S3 while leaving S2 and S4 intact. If you want your game to have truly novel staying power with players, you leverage all of these ideas. You make systems the player can make meaningful choices around and also vary the environment systems the player has to REACT to. You can overhaul your entire gameplay experience with a carefully replaced system and offer Nth levels of replayability if you create mixed and matched systems enough.
This is different from skinner boxes in that you're presenting the player with maximal novelty/familiarity. It's the essence of what makes games FUN. I can only think of a handful of games that have enough systems for this kind of replayability and it's usually roguelikes, strategy games, or PvP games where players themselves provide the shifting systems (tactics) you respond to.
One way to make all of these systems accessible for players without overwhelming newbies is by progressively unlocking the systems via in-game achievements so that the players have to demonstrate skill mastery to access a new system. The game that probably does this in the best way I've ever seen is a game I continuously come back to both because I enjoy playing but also because it is endlessly novel due to system remixing and unlocking of new playstyles progressively: Tales of Maj'Eyal.
Most of you have probably never heard of this game but I would encourage you to check it out (in spite of the bad graphics) just as an exercise in appreciating progressive complexity. It forces you to make meaningful choices at every step while slowly unlocking playstyles. It also adds a nice touch of unlocking these new playstyles (new classes/races) through in-game secret events you have to ferret out and complete. This appeals to all of the players who appreciate the "find secrets" type systems while also ratcheting novelty.
All of these reasons are also why you probably find open-world or sandbox games more interesting than strictly on-rails games. Being on rails limits your choices and thus limits the systems with which you can engage.
But note that I didn't say "more fun"! Depending on your mental state, you sometimes just want to hover in a familiar place with systems you understand and enjoy a sense of mastery. This can also be fun. It's why you still play Super Mario World once in a while even after thirty years.
Hovering in mastery is a great way to farm enjoyment and relax, but it won't hold your attention or have staying power. Eventually you'll crave the addition of new systems so that you can ride that mastery/novelty line all over again. This is why optionality is nice.
This is also why players tend to HATE difficulty levels that just ratchet enemy HPs without adding new complexity or rewards. It doesn't actually increase novelty much (though it can if it forces you to use different tactics). Well-done higher difficulty adds novelty. If I were to give you advice on making a truly fun game, which should always be your goal for aesthetic if not also financial reasons, here is what I'd say:
Think deeply about how your systems complement one another. Don't make a list of systems your game needs to have. "We need a skill tree, and uh, monster AI, and uh... cool looking level art." That is how subpar games happen.
Focus instead on how your systems influence one another as they progress. This applies universally. If you're making a match-3, how do the power-ups change the core gameplay loop and how do different level layouts affect power investment? Puzzle Quest did this beautifully and had a breakaway hit, not because of the RPG theme, but because of the new complexity twist.
If you're making an RTS, how could the introduction of a new system breathe fresh air into the genre? Can you borrow the hidden discovery mechanic from other games? What else can you add to make it novel that complements core gameplay loops? Most breakaway surprise new hits in the gaming world take an existing concept and make an entirely new game by adding a new system or two that changes everything.
Minecraft is one of the few games I can think of that added a system we'd never seen implemented before. And look how successful Minecraft was. It's a once-in-a-generation genre defining game because the creator came up with a COMPLETELY novel system.
Gamers flock to novelty because it's the basis of extending that mastery/novelty loop that makes games fun. The current glut of deck-building RPGs on the market is because of the novelty from mixing TCG concepts with roguelike RPG concepts turned out to create a totally novel and engaging system with many of the elements I discussed in this thread.
If you want to build great games, think in terms of systems influencing each other and progressive novelty/complexity. Sometimes all it takes is one new system to spark a genre revolution.