The key, I think, to understanding games as an expressive medium lies in the following:
Claude Shannon once famously estimated the number of potential chess games as being at least 10 to the 120th power, which, as the cliché goes, is more than the estimated number of atoms in the observable universe. However, in all of these games of chess, there is not a single one in which the two sides come to a peaceful solution to their conflict, or in which the pawns rise up and overthrow their own king, or in one of the bishops converts the opposing pawns to switch sides. There is not even a scenario in which one side grows their ranks; the best they can do is maintain their numbers, and the likely outcome is a steady reduction in pieces over the course of the game for both sides.
In addition to this, there are many themes which reoccur, perhaps not in every single game, but in most well-played games. Using your pawns to shield your more valuable pieces, sacrificing pieces in order to pull your opponent into a disadvantaged position, using multiple pieces in tandem to push the opposing king into a corner. None of these things are explicitly stated in the rules, but they are behaviors that are implied by the rules. The rules make these behaviors beneficial to winning the game.
The crux of all of this is that, despite the often near-infinite numbers of permutations games can have, they still make a statement through what the player can do, what the player can’t do, what the player should do, and what the player shouldn’t do.
Many people talk about designing using “verbs”. In other words, thinking about the actions the player can perform in a game. Run, Jump, Talk, Shoot, Trade, Swim, and so on. But it’s as important to think about what the player can’t do, and it’s also important to consider which of the actions that are available to the player are incentivized and disincentivised.
As a developer, it is important to understand how the cans, can’ts, shoulds and shouldnt’s form the core of the narrative of the game. To go back to the chess example, the narrative of chess could be said to involve class hierarchy, strength in numbers, sacrifice for the greater good (or, one might argue, sacrifice of the lower class for the benefit of the upper class), zero-sum warfare, the importance of thinking ahead, setting and avoiding traps, and so on.
Take, as another example, Amnesia: The Dark Descent, and how so much of the core experience comes from the fact that the player can’t fight back against the monsters. In addition to that, they are incentivized against looking at the monsters for too long, which helps make them more frightening. Also, players are incentivized towards scouring the level for items such as lamp oil which causes them to keep themselves in an uncomfortable position for longer. All of this combines to create the atmosphere of fear and helplessness that is at the core of the game’s experience.
Or, to take the example in another direction, think about how, in Megaman, the fact that you can’t shoot in any direction other than horizontally is such a core part of the challenge of that game. Think about the way you’re incentivized to complete the levels in more-or-less a certain order because of how the boss weakness system works.
Remember as a developer how much control you have over the overall experience. Anything the player can do is something you’ve (either intentionally or unintentionally), allowed them to do, and sometimes what you don’t allow them to do speaks as loudly as what you do. And within the bounds of that experience you’ve created, the way they play will be informed by what you have decided is beneficial and detrimental. In this way a game can have a consistent theme or narrative or meaning or whatever you want to call it, even if the events change from playthrough to playthrough.