Depth Done Right

The concept of depth is interesting but very abstract to me. Can you give some in-game examples games with depth done right?

https://critpoints.wordpress.com/2016/08/10/games-for-learning-about-depth/

Doing examples of depth is tricky because games are complicated. A game being deep means it has way more depth than its competitors, so it’s especially complicated. So to explain depth I tend to use simple examples, like mario’s multi-height jump, or the way you can double jump at any point during a jump, and hope that people can extrapolate from there.

So lets try a more complex example for a change, imagine a fighting game like street fighter. Depth is the sum of all the possible states, minus the redundant and irrelevant ones, so what are all the states possible in a fighting game? First, think of all the different possible positions both players could be standing on the stage. They could stand in the corners, mid-screen, close together, far apart. Imagine every possible individual position on the entire screen that they could stand, then the combination of every possible position they could both stand relative to each other.

So first there’s some redundancy there. Fighting game stages are (mostly) symmetrical. This means that if one dude is in the corner on one side, it’s the same as them being in the corner on the other side. So half of those possible positions in the earlier example are redundant.

Next, fighting game characters can jump, so imagine every possible position they could jump from and to across the stage. Imagine every possible position they could occupy at any given time in the air, and the velocity they’d have applied to them at that moment in time.

Next, think of all their moves, think of how they could perform any of their moves in any of these possible positions and relative positions across the entire stage. Think of how they could both be performing moves at different times relative to each other.

Then think of all the possible amounts of meter they could have at any given time.

If you’ve ever played with an emulator before, you can think of every one of these combinations of things as a save state. Imagine the way all of the things above can be combined to create a tremendous number of distinct save states. The idea of depth is to figure out exactly how many different possible states a game can contain, then to weed out the states that are either effectively the same state, or are made irrelevant by balance issues between different elements, or are unrelated to the goal of the game.

The more complex the game, the harder imagining all this is. Complexity does not necessarily create depth, because a game can be complex, but highly redundant, or most of that complexity could be irrelevant, but increasing depth means either increasing complexity, or better leveraging the complexity that is already there. Complexity creates state space, and depth is a limited selection of that state space. To increase depth, either the state space needs to get bigger, or more of it needs to be useful.

So lets get back to redundancy and irrelevancy. Just because a game has all these states doesn’t necessarily mean they all matter. One might point out the obvious: if a game runs at 60fps instead of 30fps, doesn’t that mean that it has twice the number of possible states? Since the game is stepping half as much each frame, and therefore can pass through twice as many positions? While this is technically true, the majority of those states are so barely different that we can say that they’re effectively redundant. So a game isn’t going to double in depth by going to 120fps. For the majority of cases (every single case you can imagine), FPS can safely be disregarded as a source of depth, even though it technically multiplies state space.

However theoretically this isn’t always the case. A 5fps game is probably fairly limited in what it can express in terms of intervals of timing. A bump up in fps for a 5fps game would probably dramatically improve the fidelity of interactions and range of spacing/positioning/timing choices a player can make. The principle here is that converting a range from being more discrete to more continuous does increase the depth of the game, but as the range becomes more continuous, there’s a falloff in how much depth you actually gain and past a certain threshold you’re not gaining depth anymore. The advantage of discrete ranges is they have more clear differentiation between states, a lack of redundancy, and the advantage of continuous ranges is they have a higher number of total states. Go and Chess don’t let you move half a square, they have totally discrete states, which means that no state is redundant (unless it’s a mirror or rotation of another state).

In a fighting game, you might be able to stand at an infinite number of precise positions relative to your opponent, but if you’re within range to do a move, it doesn’t really matter that much if you’re slightly closer or slightly further, unless that distance changes what moves you’re in range of or in range to do. In Smash Bros, being slightly closer or further can change which hitbox of your move hits, changing the effect of the move slightly. In this way Smash Bros is frequently able to make less of its state space redundant than might be true otherwise. So this infinite continuous range of positions is in reality limited to just the positions where your options or your opponent’s change, give or take a bit (after all, you could have them engulfed deep in your range, or at the very edge of your range, and the difference between those is worth accounting for, even if it doesn’t count for much).

Reducing redundancy is about making every state count, about making every state have a functional difference from all the other ones.

With relevancy, you might have a ton of distinct states, but many of them might have nothing to do with winning and many of them might be things that nobody ever does, either because they’re sub-optimal, or because they just don’t know those states exist. If redundancy is a systems-wise evaluation of depth, then relevancy is depth as it pertains to the playerbase. Relevancy is a reflection of the balance of elements, player opinions, cosmetics, and simply what players even know about a game. If state space and non-redundant state space are unchanging then relevant state space is not just in flux, but it’s different between different people, and the same group of people over time.

Relevancy is probably most impactful when it comes to balance. There’s a lot of different types of balance to consider. There’s balance between characters, balance between weapons/equipables, balance between moves, balance between strategies, balance between playstyles. The thing you want to foster is interesting choices, making it difficult to choose between one thing and another. You want to give people convincing reasons to pick between these things, make it so everything has a situational use, a reason to use it over other things depending on circumstance, but you also don’t want to make it so there’s only one option for any given situation. A basic trick some games use is to create situational factors that change over time, to change what the best option is, so you’re not always doing the same thing, but if you’re really only responding to each situation with that situation’s specific solution, then that obviously doesn’t have as much depth as having competing options for any given situation. If the options compete, then people will choose inbetween the two, meaning more relevant states.

So the thing with balance is, it’s the case where increasing the state size of the game, where adding new elements, can actually decrease the depth of the game. Keeping things in balance is about making sure they have tradeoffs, so nothing is ever a flat-out better version of something else, but also that they compete with one another, so that while you might use both options situationally, they never become the undisputed master of their particular domain for any situation. You don’t want any character to be the best, you don’t want any move to be the only thing people use, you don’t want people to play defense only or offense only, you don’t want people to only play with sweep and throw.

Balance is also a struggle between making sure all the elements are in line with all the others, and making sure they’re differentiated in function. An easy way to balance is to make things more homogenous, but if you do that, there might be more relevant states, but there will also be more redundancy, resulting in overall lower depth. So you need to make sure everything is as “strong” or as relevant as everything else, but you need to make sure it stays differentiated in the process.

Choosing relevancy as the word to describe depth as it relates to players is also helpful because it can represent shifts in how the game is understood. A game might have a high number of non-redundant states, but players might think it’s a shallow game simply because they don’t know how to play the game. There can be new discoveries about the game that make the game deeper, like finding a new technique that combines with every other mechanic in the game. Or there can be new discoveries that actually make the game less deep, because they overshadow other mechanics, are poorly balanced. Or they could do both, and the game might end up gaining new relevant states and losing others and come out as a better or worse game overall.

In this way, games can become deeper over time as more is figured out about them, or shallower as they get closer to being solved, and you can examine how deep the game is relative to a group of players, like low level players who may not play the game like the pros do. Some states might never be relevant because they’re too hard for anyone to access, so there might be a TAS-only trick that is not part of the game’s depth because it never comes up when a human plays the game.

Now, this might lead you to think, “Okay, so does this mean that players can just define depth as whatever set of states they want?” The way I’d frame it is that the relevant group of states in a game is not chosen by any deliberate decision of the players, it’s a consequence of the way the game is designed, and given a devoted playerbase, the relevant group of states will be arrived at inevitably. The players don’t choose who the top tier character is, it’s a product of how the game is designed, and how much they know about the game. Meaning that even though the relevant states are defined by the playerbase, the way they’ll end up is baked into the game design and revealed when it comes into contact with the players.

This means developers can deliberately design the game to develop differently over time when it comes into contact with the playerbase by making things more/less obvious (also called affordance), and it also means that if you want to patch the game for balance later on, you need to wait for players to figure it out, so you can see what the relative strength of various elements actually is, because it’s an emergent property of the interaction between the game and the playerbase, which you can’t totally predict in advance.

There might also be states that don’t actually affect the outcome of the game, like picking a color for your character, or particle effects that cannot influence other game objects. These are irrelevant to the depth of the game, so irrelevant sums them up fairly well.

So that’s a lot of stuff to keep in mind, and it can be a bit hard to visualize for any particular game, but all of it provides a framework for understanding the impact of nearly everything you can create in a game. You want to build the largest state space possible, make sure as many states are differentiated from other states as possible, and as many of the states as possible commonly occur in play.

What Makes a Dynamic Platformer?

You’ve criticized the shallowness of super meatboy for basically being an execution challenge, but where would you say a pure platformer can get depth from, If there isn’t a dynamic element that responds to player input, such as enemies? multiple paths don’t really add dynamism necessary for a game.

Okay, so a lot of this depends on your definition of “pure platformer”. Is Mario a pure platformer? Is Mirror’s Edge a pure platformer? Castlevania and Megaman probably are not. Is Ori and the Blind Forest? It kind of straddles the middle, but also not really.

Mario has dynamic elements that respond to player input. Mirror’s Edge does not in most parts of the game. Super Meat Boy has a few (like the homing worms, and disappearing blocks, which you’ll notice aren’t duplicated in replays).

Multiple routes don’t have much dynamism, true. The idea is more routes on top of routes, on top of routes. Rather than totally distinct and separate routes, you make every little part have overlapping means of execution that have different results/tradeoffs. Continue reading

The Fine Line Between Depth and Approachability

For a developer, in your eyes, is it a necessary evil to sacrifice the complexity that translate to depth, in order to prevent alienating their target audience? It is a dilemna I struggle with. I want my game to be deep, which comes from complexity, but not if it means people won’t play it.

I think there’s ways of getting both, and I’d cite Smash Bros Melee for this. It was a commercial success, but it’s also tremendously complex and deep. It was able to accomplish this because the majority of people who played the game have no actual fucking idea how to play it, or what most of the functions are. It has a very simple foothold for people getting into the game. You move around like a platformer, you attack in the direction of your opponent and it usually works. Super simple.

Making a game deep but understandable is about connecting with what your audience actually wants and actually can understand. The key is building a low “skill floor”, the minimum level of skill necessary to functionally play the game.

Street Fighter has a very high skill floor in comparison to Smash Bros. To play on a basic level, you need to know a LOT more and be competent at a lot more, otherwise you can’t even make real decisions.

I think this is what holds back a lot of action games, they have these complex move lists and people take one look at that and go, “like fuck I’m gonna remember all that” or they just mash buttons and it usually works, so they call it a button mashing game.

A ton of really complex games are extremely successful, like league of legends, but they do that by making the players’ most basic means of interaction with the game really simple. You can move, you can shoot, you have like 4 abilities. A lot of the other stuff is more advanced and you don’t need to know immediately. You can feel like you actually understand the game well enough to play fairly quickly. Similar deal with Pokemon, which has hundreds of actual pokemon, hundreds of moves, abilities, and weird other shit, but kids don’t need to know all that just to play.

I think the key is layered complexity, and introducing things one at a time, while not holding advanced players back. It’s a fine line to walk.

The Line Between Content and Depth

Would you say it’s possible to define the line between giving more options and just adding more stuff? An extreme example, let’s say a bigger weapon loadout contributing to the same combat system versus a jetskiing minigame in a shooter.

A minigame is segmented off from the rest of the game. It cannot interact with any of the other elements, therefore it cannot multiply or exponentiate the number of game states, only add. Think about how many matchups a fighting game can have, based on the number of characters. If you have 10, then there’s 45 different matchups. If you add 2 more, then that’s 66 different matchups (12 characters). 2 more on that is 91 matchups total (14 characters). Adding even a small number of new options can vastly increase the state size of the game. And the state size doesn’t merely get bigger additively, it has a rate of increase that is similar to an exponent, because you’re increasing the number of combinations. So as you add more elements, the state size increases drastically more depending on the number of existing elements.

This is why Go is so much more complex than Chess, you’re allowed to pick many more things on any given turn. There are many many more ways the stones can be combined.

Imagine if you made a fighting game with 10 characters, then you added 4, but those 4 new characters can only fight each other. 10 characters is 45 matchups, 4 characters is 6 matchups. Together that makes 51 matchups, which is significantly less than the 91 you could have if you integrated the cast together.

This isn’t a perfect example, you could nitpick it by examining whether each of these matchups themselves is deep (which for evaluating the game’s quality would be more important than just the sheer number of matchups, because you can consider each matchup segmented off from the others in much the same way as the segmented off mini-game is). The point is to make the math behind state size a little more concrete.

Given the way the number of combinations is related to state size, we can infer that an increase in depth translates to a perceptual increase in quality across an exponential, or logarithmic scale, similar to the way decibels are measured, rather than a strictly linear scale. Of course, this is theoretical and measuring the depth of a game precisely, I don’t know if it’s really possible except for extremely simple examples like tic tac toe. Especially because state size is not the only determining factor for depth, but also redundancy, and relevancy to the playerbase (in terms of their skillset and knowledge of the game).

Because redundancy and relevancy are also a factor, things that are pure increases to the state size of a game can ironically decrease the depth of the game, because the number of relevant states might decrease because of how new elements affect the existing elements, and the new states introduced might just be rehashes of the existing states. I have my 4 criteria/rules-of-thumb for depth to prevent this.
https://critpoints.wordpress.com/2016/09/18/4-criteria-for-depth/

Simple Actions with a lot of Depth

What are some simple actions in games that actually have lots of deph? I’d say Mario’s jump is a good example due to the level of control you have over it. Got any others?

Double Jumping
My goto example a lot of the time. You can jump at many different points during your first jump to get a variety of combined effects, meaning that between both your jumps there is a lot of depth.

Weaving through projectiles (shmups)

Wavedashing (smash)
Different angles give you different lengths, you can jump up through platforms and do it, and as you land. Can also get you off platforms and be done out of shield and other actions.

Edge canceling (smash)
Can be done at any point in a move and off of many moves for varied effect

Strafejumping (Quake and derivatives)
Lots of variance possible on each frame, lots of variance possible in the overall arc and trajectory.

Kick Glitching (Mirror’s Edge)
Is modulated based on input speed, look angle into the wall, and time you kick off the wall. Allows different followups too

Side Boosting (ME)
You get different amounts of speed off it based on how cleanly you do the motion, both turning to set it up, and turning when exiting the boost.

Pointing and shooting while moving (especially rockets)
Pretty obvious, you can aim in a lot of directions, move in a lot of directions. Rockets and other projectiles you need to lead are really interesting too. Aiming is fundamentally tricky and has a lot of possible places your cursor can pass through and become active on.

Skiing (Tribes)
Activating the jetpack and going up and down the right hills to gain speed requires good timing and reading of the environment.

Drifting
Depending on the game this requires good prediction ability for where to start drifting and how long to drift, as well as what direction to hold during it, such as to get the right angle.

A lot of Micro stuff in Starcraft Brood War
Moving units around and having varied results for different formations is fundamentally deep. Like pulling weakened units off the front line and having them assist from the back, or using tighter or wider or shaped formations versus certain other enemy types.

Directional Influence (smash)
I’m kinda cheating with this one, DI is deep because of a lot of assisting mechanics too. Actually trying to control your trajectory in the moment is kind of simple, just point the stick perpendicularly to the angle of knockback.

Tossing objects with gravity.
Getting parabolas right is tricky. Humans have natural physics simulating mechanisms that assist us with this.

Attacking in Chivalry
The sword moves and you can look to control it as it moves. Control over these two simultaneous elements means there’s a lot of different trajectories you can send your sword in. You can delay your swing in place by rotating your view the opposite direction, or spin wildly to slash everywhere and potentially around blocks.

Rebounding off a corner or incline
Judging angles of reflection is tricky, and can go a lot of different ways. Can quickly become too chaotic for humans to easily judge though.

Shooting an object that bounces off surfaces
Same as the above, but an object instead of you.

Staying atop an object moving under you.
Not quite the same as balancing below, this is more about

Balancing
Walking the Slack Line taught me that there’s a lot involved with balancing properly. Even in the Tony Hawk games, trying to balance on a fine line has a fair amount of complexity, even if it’s a simple action overall, and being good at it can be tricky.

Trying to get maximum coverage of many objects with a limited area or set of areas.
This is a pure math thing. It’s the knapsack problem basically. A lot of math problems like this are inherently deep, like the traveling salesman problem. They require the use of heuristics to properly analyze. Actions like placing sentries, towers, or AOEs typically fall under this category.

Getting an object that is attracted to you gravitationally to orbit you, or redirecting it in general.
Lots of variables operate in synchronicity in these cases and you can get a lot of different results out of them with careful movement.

Bashgliding (Ori)
This one is cool primarily because you kind of need to balance the direction you bash with how much velocity you want to get off of it. Also the input is cool, you literally release the stick at the moment you bash. Then you can glide and double jump, and as long as you don’t press the stick, you’ll keep all the bash momentum. It’s possible before you gain the ability to glide to do this, but it’s obviously not as effective, and you definitely need double and triple jumps to really make it useful.

Divekicking (divekick)
All the divekicks and different styles of divekick in that game are so expressive. Like The Baz deserves a special shoutout for both versions of his divekick, the original one where he could jump straight up and then press and hold kick to choose an angle to fire, and he had to draw a line behind him that would be what actually hurt people, as well as the new one where he presses and holds in the air to extend a rope further or shorter, to determine the radius of the arc he will swing in, then he can do this again off the first swing. The fact this works SO WELL with the existing divekick characters is fucking incredible. It has a totally different type of counterplay where you need to basically kick him in the crotch, into his body, rather than at him the same way as the other characters, yet every character counterplays against this great.

Shielding (smash)
It has variable density, depending on how hard you hold down the trigger, which can have variably more pushback/shieldstun/damage taken when you hold it lighter, and it can even be tilted to cover different parts of the body. So truly effective use of the shield can be really nuanced.

Palmbombing (psychonauts)
It’s like the reflection examples and tribes skiing above, you can use the palm bomb to reflect off a surface, then redirect this velocity elsewhere. Helped by the fact that bunnyhopping conserves momentum in psychonauts.

Damage boosting
This one goes back to Quake, but involves a lot of games. There’s many forms of this, from rocket jumping, to grenade jumping, to getting hit by enemies to abuse mercy invincibility, to getting hit by enemies to get boosted forwards faster, to many other things. It can vary by position, by angle, by when you jump, many factors. Usually has incredible depth.

Canceling an animation with variable velocity over the course of the animation to keep the velocity.
There’s a lot of examples of this in different games, but one of my favorites is the DACUS in Smash bros. You can cancel dash attack into grab or up smash and keep the momentum of the dash attack (which for most characters boosts them forward rather quickly).

Dash cancel to keep invincibility (Slayer in Guilty Gear)
You can do this to add iframes to moves like bloodsucking universe to make them function like pseudo DPs. You can combine this with all of your specials and to jump forward invincibly whenever you want.

Divekick canceling (faust in guilty gear)
You can divekick (like dhalsim’s yoga spear) with Faust, then cancel with faultless defense, then do another aerial at any point in your jump to change your jumping trajectory and do aerials lower to the ground. It’s amazing to see in action and gives Faust amazing air to air and air to ground abilities.

Roman Canceling (guilty gear)
You can do this at any point in a move (after it hits) to instantly cancel the move. The Xrd implementation is even more deep because it can be before or after the move hits, vastly opening up the range of options. You can whiff cancel fireballs to act simultaneously to them, you can extend blockstrings at the cost of meter (I love Kusoru at Final Round XV roman canceling two sweeps in a row to set up a tick wild throw, that’s fucking retardedly cool). You can also YRC moves that put you in the air to do quick aerials, like YRC Bandit Bringer, or Millia’s 6K.

Movement on Ice
It’s tricky, you have a few variables going at once, and you need to judge how much movement will be enough to get you to a place, and how much is overboard. Sometimes you need to move fast, sometimes you can afford to move slow. You need to think into the future about the effect of friction to approximate where you will end up. The range of different speeds and attempts to affect your speed more or less create depth.

Tried to keep this limited to single mechanics, but couldn’t in all cases. Left off a lot of things that were obviously combinations of a lot of mechanics working together, or being decided between.

Micropositioning: Another Source of Depth

Editor’s Note: I have slightly edited some of these conversations to be slightly more clear in the absence of context, and to elaborate more on details.

Um, Contra is deep? Always thought of it as very constrictive rather than “deep.” Is your argument that the (slightly) different weapons add depth?

Yes, it’s deep. No, I don’t mean the slightly different weapons, I’m more talking about the movement around enemies and the enemy variety and attack patterns. It’s about micro-positioning, same as Zelda 1.

Depth doesn’t just mean the explicit technical stuff. I defined it as relating to tiny game states because I wanted to capture the difference between say Mario’s jump and a castlevania jump, but acknowledgement of redundancy is necessary too, otherwise more restrictive sets of options like the castlevania jump are ruled out completely because something like mario’s jump can totally dwarf it in complexity, and castlevania’s jump works really well in the context of the game it is, allowing certain types of challenges to exist that could not in Mario. So Mario’s jump is invariably deeper of the two, allowing for a massively larger range of expression, but it shouldn’t be judged as exponentially better just because it can produce exponentially more measurable state. A lot of those states are different but achieve similar results.

Also I meant the Contra series, not just Contra 1. Continue reading

Interaction: The Key to Depth?

You’ve talked a lot about depth and complexity in regards to game design, but what about interaction between mechanics? How does it relate to depth and complexity? Any examples done well/poorly?

Alright, if game quality was purely tied to the number of states possible then the scale would not be linear. It would be exponential or logarithmic, like decibels. A strictly linear addition of states does not create a big jump in quality.

For a mechanic to significantly improve the game it must interact with the other mechanics, multiplying or exponentiating the number of possible states. Continue reading

Games for Learning about Depth

What games would you recommend for learning game design and depth in different genres (games for FPS, Action, Fighting, Strategy, Puzzle, RPG, etc.)

I think you gotta play a little of everything, good and bad. It pays to see games that screw up too. I think analyzing Nier was interesting in part because it’s so clearly flawed.

FPS:
Doom (great enemy variety, great level design, alright weapons), Blood (one of the best doom derivatives), Quake (3d successor to doom, awesome movement, so-so weapons and enemy variety, but still good compared to modern shooters), Unreal (I dunno, supposed to be good), Serious Sam 1 & 3 (good enemy design in the absence of good level design), Tribes (cool movement system, amazing emphasis on large maps), Desync (great enemy/weapon variety, very focused on combat encounters, weapon combos), Crysis Warhead (best in the series, nice suit abilities, nice levels, decent enemy AI)

Fighting:
SF2, SF3, SFV, KoF 98, 2002, XIV, Garou, Last Blade 2, Guilty Gear AC+R, GG Xrd, Marvel 2/3, Skullgirls, Vampire Savior, Melee, Divekick,

RPG:
Pokemon (lots of configurable parts, every monster you encounter is made from commonly accessible parts), Shin Megami Tensei Nocturne/Digital Devil Saga (press turn system is brilliant, strong emphasis of buffs/debuffs), All the Mario RPG games (Timed Hits yo, and a couple other nice things), TWEWY (alternative approach to RPGs from the the ground up, tons of interlinking systems), Penny Arcade RPG (unique approach to ATB systems and realtime action queuing), Zeboyd Games RPGs (interesting choices at every step), Tales of Symphonia/Abyss (I think these are the best in the series, I don’t really know, action combat with a fighting game inspiration), Megaman Battle Network (deck building, unique grid based combat system)

RTS/tactics: (I’m weak in this category and haven’t played a lot of the games I’m recommending)
Starcraft Brood War/Starcraft 2 (I recommend brood war because it’s good, though unless you have someone who knows how to play that you can springboard off of, you won’t get much out of it, 2 for contrast and because it’s also good, but less so), Supreme Commander Forged Alliance (I believe this is the best version of supcom, I’m currently playing this), Company of Heroes 2, Dawn of War, Dungeon Keeper, Warcraft 3, Warcraft 2 (for contrast, the two games are significantly different), Age of Empires 2, Homeworld, Command and Conquer (Red Alert 2 or Generals), X-COM, a fire emblem game, advance wars.

Stealth:
Thief 1 & 2 (great emphasis on lighting levels and floor surfaces, great level design, slightly collectathon-like regrettably), Metal Gear Solid 3 (the deepest stealth game), Mark of the Ninja (one of the most versatile stealth games around, second deepest perhaps), Monaco (gets the interesting part of running away from guards completely right, does alright at everything else), Hitman (disguises), Splinter Cell (I dunno).

Platformer:
Mario 64 (has a ton of different options for movement and levels that allow you to take advantage of them), Mario Sunshine (Same, but slightly different), all the mainline Super Mario Bros games (1, Lost Levels, 3, World, NSMBW) Yoshi’s island, Kirby Canvas Curse (unique as hell, one of the best kirby games), Ducktales, STREEMERZ, Bubble Bobble, Sonic (pick one), a donkey kong country game, Megaman 2, 3, 9 (solid design), Megaman X1, 2, 3, Megaman Zero (I don’t know which to recommend), Castlevania 1/3 (great level design with simplistic limitations), Order of Ecclesia (nonlinearity and complex melee platformer combat), Ninja Gaiden 1-3 (great simple fast design), Cave Story, Kero Blaster, Demon’s Crest, Metal Slug, Contra, probably a dozen NES and SNES games.

Metroidvania:
Metroid, Super Metroid, Metroid Zero Mission, AM2R, Ori and the Blind Forest (tons of movement mechanics that all have interaction with each other), La Mulana, Battle Kid 2, Megaman ZX, ZX Advent.

Top down 2d action:
Zelda, Link to the Past, Link’s Awakening, Oracle of Seasons, Ys Origin (like a 3d zelda), Ys 1 & 2 (Bump system!), Lara Croft and the Guardian of Light (tons of unexpectedly 3d object interactions), Hotline Miami (stealth and mixed action),

Beat Em Up:
Devil May Cry 3/4 (command moves for days, tons of recombineable moves), Bayonetta (Dodge offset, great enemy designs), Ninja Gaiden Black/Sigma/2 (enemies that want to kill you so hard, great use of blocking and dodging in one system), Transformers Devastation (culmination of everything platinum, 3rd person shooting, unique vehicle dodge system and vehicle attacks),

Racing:
Mario Kart DS (my favorite mario kart, best physics), F-Zero GX (deepest racing game), Wipeout, Trackmania, Need For Speed (dunno which one)

Puzzle:
Antichamber (metroidvania puzzler with a funky layout, and nice unique puzzle mechanics), Portal 1 (lets you place portals in a ton of places, has multiple solutions to every puzzle, great speed tech), Professor Layton (just a ton of nice puzzles of all different varieties, not really deep necessarily), The Witness (interesting approach to puzzles even if it doesn’t work out all the time)

That’s all I can think of. Notably this is not just a “my favorite games” list.

Definitions: What’s a Game State?

After reading some of your articles on depth, I have to ask. What exactly counts as a “state” in a game? Depth is characterized by the number of non-redundant states, but I’m not clear what counts as a state.

Have you ever used an emulator? You know how there are save states in emulators? Save states capture the current value of every single variable in the game. This is basically what I mean when I say a state. A state is the current value of every single object, element, or variable in a game. Any time something changes, even slightly, in a game, that is a new state, strictly speaking.

For an easier to imagine example, in a board game, a state would be every possible combination of pieces on every space on the board.

In most video games, it’s harder to think about every possible state because many games have things like velocity, or extremely minute and precise position tracking. Things appear to be more analog thanks to the use of floats and sub-pixels.

This is why I specify that depth does not count redundant states, because this level of minute detail goes far beyond what is significant in the majority of cases. Many of these tiny states can be said to be negligibly different from other states around them. Determining what states are non-redundant is unfortunately still a matter of interpretation. I count analog spectrums of information tracking as being more deep than a digital spectrum, but only slightly. I believe there are diminishing returns for additional subdivision of states. You only gain so much for going from an integer to a float in my book (look up data types if you don’t know what a float is).

This will probably help.
https://en.wikipedia.org/wiki/State_(computer_science)