This blog has attempted for years to articulate what game design is for video games. It was born out of a frustration in video games discourse that the discourse was so vague and distracted by the narrative, the setting, the immersive illusion created by video games. For the past decade I’ve aimed to discuss the raw mechanics of games and what makes gameplay good, because I’ve gone across the whole range of people talking about video games and no one else has been doing it.
There have always been hints of this raw mechanical talk in competitive video games. I’ve always recommended that people trying to learn game design study competitive games, because the way those communities talk about their games directly addresses the mechanics and doesn’t get lost in the fiction.
Frame: Also called “tick”. The smallest unit of discrete time in a video game.
Startup: The period of time in an attack animation up to the first hitbox (collider that hits other objects) appearing. Active: The period of time in an attack animation across which a hitbox is present and capable of hitting other objects. Recovery: The period of time in an attack animation after the hitbox has disappeared, before the character returns to a state where new actions can be input, or they return to an idle state. Hitstun: An animation that plays when a character is damaged by a hitbox, during which the character is incapable of acting until the animation has completed. Blockstun: Like hitstun, but for blocking. The stunned animation played by a blocking character when they are hit by an attack. Usually shorter than hitstun in duration.
Advantage/Disadvantage: The difference in time between when an attacker recovers from their move, and a defender recovers from hitstun or blockstun. Establishes who gets to act first, like a head-start in a race. When a player is at advantage, it is their “turn”. Frame Advantage: When the attacker gets to act before the defender does, allowing them to perform a move with a head-start over the defender. Also called, “plus”. Frame Disadvantage: When the defender gets to act before the attacker does. The attacker has handed over their “turn”. Also called “minus”. Combo: When a move has so much frame advantage on hit, that another move can hit the defender before hitstun ends. A sequence of moves that each hit the opponent while they are still stuck in hitstun. Block String: A sequence of moves that each leave the attacker at frame advantage (plus) on block. If there is no gap, it is a “true” block string. Unsafe: When a move has so much frame disadvantage that the defender can hit the attacker before their move recovers, punishing them.
Frame Trap: When a move leaves an attacker at frame advantage, allowing them to launch another attack that will catch any action the defender makes, besides blocking. If the defender tries to attack when the attacker is at advantage, they will get frame trapped by the attacker’s next move. Pushback: Each attack pushes the defender backwards. Attacks tend to obey a rule where longer ranged attacks have less frame advantage, and longer startup, so frame traps get looser as the defender is pushed further back.
This Dustloop page is a helpful companion to this article.
Every attack has 3 phases, startup, active, and recovery. Startup is time before the attack has a hitbox out. Active is the time that the hitbox is out. Recovery is the time after the hitbox is out before you return to idle.
Attacks inflict a stunned animation on those that they hit, either hitstun or blockstun. This stun animation will interrupt whatever animation is currently playing, even if that animation is stun. In most games, the hitstun and blockstun animations are different durations, with hitstun being longer than blockstun.
If the hitstun animation is longer than the recovery frames of the move, then the attacker will be able to act first, before the enemy who was stunned. Frame Advantage means it’s your turn, and the amount is how much of a head start you get.
So, I’ve been playing Elden Ring lately, and taking some notes. In the process of drafting up my thoughts on it, I ended up with a long tangent about non-linear interconnected maps in Metroidvania style games, and how the souls series tackled this precisely once with Dark Souls, and never again, because they made every bonfire warpable. I decided this tangent was long enough to deserve its own article.
The open world of Elden Ring creates a level of non-linearity and interconnectedness that hasn’t been seen in the series since Dark Souls 1. Ordinarily, fast travel to every bonfire would ruin this, but I think it works fairly well in Elden Ring’s case. Areas aren’t connected by corridors like the Soulsborne games, so you end up doing a lot of exploration anyway, instead of just teleporting to the level you want to go through. Given the distance between locations, going without fast travel wouldn’t really have been viable, because you might end up needing to travel a really REALLY far distance.
The benefit of nonlinear games (like Demon’s Souls) is that you can complete content in differing orders, making it so that no two playthroughs repeat content in the same order, adding a degree of depth. Nonlinear interconnected games (like Dark Souls) expand on this by having you traverse mixed portions of content forwards and backwards, even after you’ve beaten it, meaning you don’t just experience content out of order, but in a varied stitched together order many times over, while also having to engage in pathfinding challenges. In a nonlinear game, you might simply select the content you want to complete as need arises (eg. figure out what level has the thing you’re after, warp to it, progress through the level until you get it).
A bunch of different videos have popped up lately in fighting game circles, about “Emergent Gameplay”. I’ve watched a number of them and they’re grasping at concepts they can’t totally describe. They use a lot of vague terminology and almost say what they want to, but not quite. The gist is, old games had Emergent Gameplay, new games don’t, but why?
Recently in my discord, one user, Hambone, linked a study related to skill rankings in Blitz Chess, standard Chess, and the card game Yomi by David Sirlin, and how well those rankings correlated with win ratio. You can read the full study here. From it emerges this amazing chart:
This chart is a depiction of a game’s consistency across skill levels, with a spectacular illustration of how there are certain bottlenecks where consistency goes up and down. (for those with color blindness Player 2 winning is represented on the graph as yellow, losing as dark blue. Slight wins are orange, slight losses are light blue, and 50:50 is represented as teal). It’s worth noting that the skill ranking of an average player is 1200. From this chart, we can intuitively extrapolate a number of conclusions, but first lets make some observations: We can see that Yomi is less consistent across all skill levels than either variant of chess. We can see that chess has a short period near the bottom skill level where better players very consistently beat worse ones, then there’s a free-for-all near mid-low level, and another bottleneck at higher to top levels of skill. We see a mild version of this trend even in the yomi chart.
From this we can conclude that aspects of these games make them more or less consistent. From personal experience, I’m going to put forward that the big thing that makes a game consistent is execution testing, a style of game that I call an “efficiency race” (eg. racing games, games that directly compare a skill that is dependent exclusively on you and nothing else). The things that make a game less consistent are Randomness, and unweighted Rock Paper Scissors (eg. games of chance and games with hidden information, where you directly interact with your opponent). For example’s sake, there are some games where you cannot become consistent, such as a pure coin toss. The graph for this game would be teal (50:50 odds) across the entire chart. A hypothetical perfectly consistent game, where the better player always wins, would be a perfect split of yellow/dark blue directly across the diagonal center line, with almost no teal.
Isomorphism is a concept in Graph Theory, where 2 graphs, if they have the same nodes, connected by the same edges, are the same graph, no matter how they’re shaped. Basically this means that if two seemingly different systems have the same shape, they’re actually the same system.
One of the most popular examples of this is the Rest system in World of Warcraft. MMOs are known for being addictive. You pay a subscription to them, so there’s only so much time before your subscription runs out, and you want to get the most out of it. To avoid encouraging players to play constantly, many MMOs implemented penalties for playing continuously, to incentivize players to log off. Naturally players didn’t like having their xp gains drop to 50% as they continued to play during the WoW beta, so the developers tweaked the interface so that the “unrested” penalty became a rested bonus, granting 200% xp gains. The actual numbers didn’t change at all, but player reception to them did.
A long long time ago, I used to like Zelda, Okami, and Mad World, among others. I thought they were good games, and I never really questioned it. I remember before I played Ocarina of Time how much everyone said it was the best game of all time. There were memes back then of the OOT box, with a warning label, “Warning: Playing this game will make every game you play following this a slight disappointment.” I played OoT and somewhere at the back of my head thought, “huh, it’s not the greatest game I’ve ever played”, but I completed it, and all the sidequests, and never looked back.
I never really questioned liking the Zelda games until Tevis Thompson’s essay, “Saving Zelda” released in 2012. Dark Souls and Zelda: Skyward Sword had released around the same time the previous year, and I came home from college and played them both over winter break, jumping back and forth between them. I was completely on the hype train for Skyward Sword. I’d played a demo of it at New York Comic Con. I pirated that demo shortly before release, and I was hyped to see motion controls finally get their moment in the sun after being disappointed with how Twilight Princess used waggling as a substitute for the sword button. Despite that, with the actual game in my hands, I found myself playing a lot more of Dark Souls and I didn’t really know why.
Then “Saving Zelda” dropped a couple months later, and I read it, thinking, “This is ridiculous, Zelda’s a great series. Everyone loves Zelda. Skyward Sword is amazing”, but it planted the seed of doubt.
Speedrunners are terrible. They ruin games for everyone, and love to talk about how your coders are buffoons when they perform intricate tricks with elaborate setup and tight inputs that no ordinary player would ever think of doing, let alone be able to perform. Here’s how to drive these pests away from your games.
First, make an inaccurate ingame timer. Include load times (multiplied by 2, so now everyone needs to buy an SSD), cutscenes, character creation, time since the game was launched. Hide it until they beat the game so they can’t reliably check if it’s accurate without cross referencing another timer.
Next, make file management annoying, or impossible. Utilize cloud saves, have events in one save affect events in a new game. Store savedata in the game binaries, encrypted, so they’re difficult to access, and difficult to modify. This makes starting completely fresh annoying.
One of the most powerful tools speedrunners have to save time is Skips. Games are usually designed where goals are supposed to be completed in a certain order, a skip is where you complete later goals without completing the prerequisite ones. This can mean completing story flags out of order, or simply going to an area before it’s supposed to be accessible. The thing that makes such skips possible is usually level design in the shape of a horseshoe, where the start and the end are close to each other in physical space, but are separated by a wall inbetween. The Valve Developer Wiki helpfully has some examples of this, which they call Loops and Bounces. Hub areas that unlock into more areas also tend to facilitate skips, if you can find a way to get past the gates blocking you.
John Romero, one of the level designers of Doom, remarked on the Horseshoe level design in the Hangar map in this lets play, as well as some of the benefits of it. You get to see where you’re going, you’re not traveling in a literal straight line, even if you only have one way to go, and you can cut across the horseshoe to the end.
So I’ve said that there’s 2 types of multiplayer game fundamentally: Efficiency Race and Rock Paper Scissors. This video (re)introduced me to the mathematical concept of Transitive and Non-Transitive relations. This is an amazing lens for describing the difference between these two fundamental games.
In an Efficiency Race, there is always one option, or set of options that is always better than the others, per some metric of efficiency (time or victory points). This means that options (or combinations thereof) can be ranked against each other in a transitive fashion. If A > B > C, then A > C. Trackmania is the most pure example of this out there, since you cannot interact with the opponent in any way and a given route will always be faster or slower than another route (assuming you follow it exactly).
This is the payoff matrix for an efficiency race version of rock paper scissors, notice that rock always wins, and scissors always loses, unless they tie