Mirror’s Edge Review

This is part of my 5×5 review series. I’m going to try to review every game in my 5×5, available on the About & Best Posts page. Photos courtesy of Dead End Thrills and gifs courtesy of CabalCrow from my discord.

Mirror’s Edge is one of my most-played games because I used to speedrun it. My best time was about 55 minutes, which isn’t that impressive, but in the process of learning to speedrun it, I learned a lot about what makes an interesting speedgame. I also had a massive amount of fun learning the various techniques involved in the game, from the easy to the hard, and refining my run.

On this blog, I define a game as a “contract” that the player agrees to play under, either a contract with themselves or other players, as in a multiplayer or co-op game. With this in mind, the game isn’t necessarily the software you play with, but rather how you choose to use it, and different players can play different games with the same software. Speedrunners are playing their own game with the software relative to everyone else. For that reason my blog doesn’t tend to focus on the “speedgame” for a piece of software, but rather the “canonical” game that represents more of the lowest-common-denominator idea of what the public thinks the game is, which is usually something closer to what the developers intended than anything else. What’s possible in the speedgame sometimes can influence the “casual” game (what speedrunners call the more default ruleset), but it’s very situational per-game. Continue reading

Isomorphism & Asymmetry

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.

Another example I’ve described on this blog is the Hollowing systems in Demon’s Souls, Dark Souls 2, and Dark Souls 3. In the Souls series, your character has 2 states, Human and Hollow (Body and Soul for Demon’s Souls). Human form lets you engage with online functions, and has access to your full health bar, hollow form locks off online functions and has a reduced health bar. You can spend uncommon, finite supply, consumable items (Stone of Ephemeral Eyes, Humanity, Human Effigy, Ember) to regain your Human form, and thus your full healthbar. Naturally, the Souls games are all tuned such that you still take 3-4 hits to die from common enemies even if your healthbar only has half its max value, but the idea of being punished doubly for dying is offensive to a lot of people.

Perhaps in response to this, Dark Souls 3 framed its hollowing system as a bonus rather than a penalty. Your max health in Dark Souls 3 is smaller proportionally to your min health than in the other games, but it’s not displayed as a chunk of your health bar that is missing all the time, and you’re not hideous looking without an ember active. The actual numbers aren’t any different, but people seem to like it better.

In Breath of the Wild, weapons have a low durability and cannot be repaired. Almost all weapons of a category (sword, spear, heavy blunt) have the same moveset with different attack values, durability, and properties, so any given weapon is nearly 100% interchangeable for any other weapon in a given category. This means that rather than having an inventory of weapons like most fantasy RPGs, you instead have more of a loadout of whatever you’ve picked up recently, making the inventory system more similar to a modern First Person Shooter, where weapons are disposable, interchangeable, and very few are really situational. So rather than thinking of your inventory of weapons as your babies that you love, it’s more practical to think of them as a pool of damage to be unloaded into enemies and refilled with whatever they drop. Your total pool of damage is a weapon’s attack power times the number of hits it can do, plus the next weapon down the list until you get to the end. Thus in a manner rather similar to a FPS, you might have a higher damage weapon that’s good for finishing off strong foes quickly, but once the ammo (durability) empties out, you’re gonna have to find another one. So you may want to conserve ammo with your strong weapons, instead of seeing your weapons as persistent upgrades to your character like they would be in another game.

BotW cleverly stacks the deck in your favor in a subtle way, by having a “leveling” system chugging along in the background as you kill enemies. Every enemy has an xp value for defeating them, proportional to their strength. As you gain more xp, the enemies across the world get scaled up to stronger versions of themselves, and their equipment gets scaled up too, and becomes more likely to have advanced bonuses. This means that the pool of weapons available in the world gets stronger at a faster rate than the enemies do, and of course many enemies, such as bosses, remain unscaled regardless of your level. Since weapons always knock enemies down when they break, forcing them to drop their weapon, you’re constantly getting fed a supply of weapons that progressively grow in strength, so you can’t be left behind on the power curve unless you deliberately throw your weapons away (and Eventide Isle is designed to show how Link can still succeed, even starting with an empty inventory).

And of course, while this system in BotW might be really fun for gameplay enthusiasts who grok how the system is supposed to work and how they’re supposed to interact with it, it outright contradicts the more common framing of weapons being tools instead of ammo. This means that many players who can’t dissociate the theme and function of the weapon system just see the whole thing as a frustrating mess. This is amplified by cases like the Lightscale Trident, which is thematically the most powerful Zora Spear ever forged, and a sacred heirloom of the Zora Royal Family, but it breaks about as easily as most other weapons. Most people expect weapons to be semi-permanent upgrades that can be selected from at any time, with a durability system as some mild flavor that adds a sense of realism. So when a game breaks that framing and treats durability as an ammo counter, it’s aggravating to a lot of people.

In the pursuit of depth, it’s important to avoid having isomorphism within the same game; meaning, there shouldn’t be systems whose relationships are identical to one another. This means avoiding things that are proportionally the same in scale, rotation, mirroring, etc. 10 hp with 1 damage is proportionally the same as 30hp with 3 damage, unless there’s a 3rd factor that doesn’t scale along with those. Most RPGs have self-similar proportionality between the characters’ health, damage output, and enemy health and damage output across a game, meaning that the experience at the beginning frequently feels the same as the experience at any other point in the game.

In a blank endless room, the absolute (relative to the world, not each other) rotation of 2 characters locked onto each other is self similar, regardless of how much to the right they move, the only thing that can vary in proportion is how far away they are. The same is true of their absolute world position. If the two of them are translated any number of units away from the world’s origin point, in a blank endless room, there’s no real difference between any possible positions, except as relative to each other. If the characters are locked onto each other perfectly, then they’re not allowed to have different rotations relative to each other, therefore removing 3, and even 2d, space entirely. Avoiding isomorphism means avoiding symmetry, perfect mirroring, perfect rotation, perfect scaling, where nothing really changes.

Tekken attempts to avoid this mirroring/rotation problem by having characters be more dominant on their left or right side, able to catch people who sidestep to one side or the other, so even though you might be playing on an endless stage, sidestepping around your opponent in either direction is still important and different per-matchup. Not to mention that they otherwise avoid the problem by introducing terrain, which characters can be closer to or further from, and the rotation of the characters can orient them against the wall, or into corners, which might be harder to escape from. This makes the absolute position/rotation of the characters important.

Games with movement that’s locked to 4 or 8 directions (2d Legend of Zelda, except Link Between Worlds; Princess Remedy) have a weak form of this baked into the movement system, where relative positions of each character become more important to line up attacks, since they can’t be aimed at an arbitrary angle. In these games it’s really important to approach your opponents from either the cardinal or diagonal lines of the movement axes, depending on where your attacks are oriented relative to your character, and where the enemy’s attacks are relative to them. A Link to the Past and the gameboy zelda games accentuate this more by having Link’s attack originate from his side, rather than appearing straight from his center, as in Zelda 1. This has a weak effect in most cases, but it’s there. Since sword wielding enemies frequently have their sword a little off to the side, moving carefully can sometimes allow you to poke around their sword, which is interesting.

Most fighting games have what’s called “Guts Scaling”, where characters take less damage as their health gets lower. Since this is applied uniformly to all attacks, the effect is that characters have a little more health concentrated at the bottom of their health bar than they appear to. This doesn’t make it easier to come back from behind, but it does mean that matches spend more time in the stage where players look like their health is low. In other words, this is isomorphic in most fighting games, it’s purely a psychological trick. In Guilty Gear, the guts scaling is more extreme than other games, but chip damage and throws are exempt from this scaling, dealing their full damage, meaning that as someone gets lower in health, chip damage and throws become proportionally stronger, which means blocking is proportionally stronger at the beginning of the match, and weaker at the end.

Symmetry can frequently be useful however, for guaranteeing consistency and fairness. Multiplayer games are frequently symmetric in order to maintain fairness between teams. Asymmetric multiplayer games (Counter Strike, Overwatch, TF2, who serves in Tennis) are frequently played with the sides reversed to create symmetry, to give each team a chance to play each side. Many hitboxes for competitive games are designed to standardize oddities to create consistent outcomes (such as projecting 3d hitboxes orthographically). In boxing, left handed boxers (called southpaw) are frequently said to have an advantage, because they fight with their strong hand on the same side as their opponent. This breaks the mirroring of strong right arm versus strong right arm, closed stance, or open stance. The general rule is that asymmetry creates interest and breaks up redundancy, but symmetry creates fairness and consistency.

Developers should recognize framing and be careful with whether they label something a bonus or a penalty. If it’s more common to be “penalized” than to not be, players would probably prefer if that lack of penalty were framed as a bonus instead. Skilled players should recognize isomorphic game systems and not assign meaning based on whether the developer calls something a bonus or penalty. Developers should attempt at every stage of development to try to have relationships between different elements change in proportion, rather than retain the same proportion at a different scale, rotation, or so on. This means introducing reasons why the characters might want to rotate or not, or move around relative to each other or not. It means making levels, attacks, scaling, asymmetric relative to rotation, position, distance, and time.

Designing AGAINST Speedrunners

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 started. 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 files, encrypted, so they’re difficult to access, and difficult to modify. This makes starting completely fresh annoying.

Include unskippable cutscenes or autoscrollers that are about a minute or more, and vary their length randomly. Unskippable cutscenes are intensely irritating to speedrunners who just want to play the game. If they’re too long, the runner can take a break, but if they’re only a minute or so, they can’t comfortably do anything but sit and wait. Prompt the player to continue with text to make them all the more annoying.

Add RNG to practically everything. Damage, speed, enemy behavior, drops, etc. Be sure to include a big time saver powerup or item as a random drop that can only be obtained about a third of the way through the game, so speedrunners are obliged to obtain it, and need to waste time playing the game to see if it’ll drop. If you can work multiple of these in, all the better.

Ruin the wrists of speedrunners by including actions that go faster or deal more damage per second when they mash harder. Make the speedup from mashing grow exponentially as they mash faster, so the fastest possible mash has a significantly bigger benefit.

Next, don’t implement deltatime correctly for framerate independence. Make it so the timescale is faster at lower FPS, so that in order to move fastest, you need to reduce the FPS to as low as possible. Additionally, don’t benchmark the game to any specific FPS, just let it do whatever it wants, so then speedrunners need to argue about where to set the framerate standard, and need to force it to behave with outside programs. Make the input delay vary randomly over time, and don’t have a buffer for actions. This makes any frame-perfect input more difficult, and in general makes the game more frustrating to play.

Vary the speed of things like elevators and doors based on the difficulty picked. Higher difficulties should have faster elevators and doors, but also higher self-damage where applicable, forcing runners to play on the highest difficulty in order to get the fastest times.

Include drop-in online elements like Dark Souls so runners need to intentionally disconnect the game from the internet. Combine this with Denuvo, or other always-online DRM, which should also be set up to avoid tampering with Cheat Engine, which speedrunners use to practice and occasionally mod out RNG. Between these, runners will either need to accept that runs include online elements, they’ll need to authenticate with denuvo and play offline until authentication expires, or crack the game outright to disable always-online.

Make the game fast, make it linear (or open world, but with a linear sequence of objectives), and make it so the player snaps onto a bunch of environmental features, but has random animations of random length for traversing them. This helps narrow the skill gap, and introduce more random variation in timing. Making it linear makes the routing less difficult, and making it fast is something that you’d think would appeal to speedrunners, but they’re actually indifferent about. Making it open world means everything takes longer than it needs to. When making it open world, be sure that every event flag checks for multiple prerequisite event flags, so nothing can be completed out of order.

Don’t allow players to bind anything to scroll wheel, especially not jump or use. This has been used in countless games for various exploits.

Practice good coding conventions, don’t mutate state unnecessarily, use a strongly typed language with collections and avoid using pointers. Have each element interact with as few others as possible. Validate and sanitize your inputs. More safe coding practices means less glitches. Design mechanics to have a singular purpose that it accomplishes with no variation in output and no interaction with other elements. This reduces the chance of players finding unexpected uses of mechanics.

Thoroughly wall off areas that aren’t supposed to be accessed. Include kill planes in out of bounds areas. Don’t spawn loading zones before they’re supposed to be accessed. Lock players in rooms/arenas until they’re done with their current objective, or defeating all enemies. If players aren’t supposed to reach an area yet, make sure it’s unreachable, either with walls, or by making sure it doesn’t exist until it’s supposed to be reached. If possible, define levels in terms of areas the player is supposed to be, so they can’t exist outside of the places you want them to be.

Bundle bugfixes with new content patches, especially new bosses and new areas, because it forces all bosses and 100% runners to run on the patched version of the game in order to meet the category requirements.

Of course, a lot of these things make the game worse, even for casual players, but there’s no price too high to remove the speed demon menace!

Designing for Speedrunners

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.

Getting Over It with Bennett Foddy is designed as a series of horseshoes laid over each other, which sometimes makes skips possible, but more frequently is used to dump the player back into earlier areas. The whole map looks like a serpentine pattern, crossing back and forth over itself. Many areas in Super Mario Odyssey are structured similarly, letting you get to later parts of the level if you can perform the advanced jumping tricks. Even ancient games like Castlevania have skips based on connecting the ends of a horseshoe, using the small boost they get from taking damage to climb up and over ledges they can’t quite reach otherwise.

The most practical form of designing for speedrunners that you can do as a developer is simply to make horseshoes in your level design all over the place, and leave it up to them to find a way to connect the ends. Incidentally, this happens to be good level design practice in general, as it gives players sight of the areas they’ll go to in the future (and thus clear eyes on their goal), and frequently gives them more routes through the level.

Speedrunning is fundamentally a big optimization puzzle, similar to the traveling salesman problem. Speedrunners tend to enjoy games that are difficult to route, where they have freedom to choose to pursue a lot of different goals, that each have an effect on completing their other goals. Metroidvanias are popular among speedrunners for this reason, because they typically afford a lot of freedom in which order bosses can be tackled, and powerups can be collected. Those powerups frequently open new routes around the map, or make traversal faster relative to certain geographic features present on some routes. These types of optimization problems can be quantified in how complex they are, through their complexity class, or Big O notation.

Making a game difficult to optimize is difficult in-of itself, but some easy steps are to have multiple active goals at once, to open and close routes relative to certain events, and to give the player multiple routes across the map at any given time, as well as limit teleporters to locations that are out of the way, and avoid central hub locations that are connected to all the other objectives.

Having alternative or optional objectives is also helpful for speedrunners, because they frequently incorporate these into alternative categories (alternative speedrun rulesets whose runs are compared against each other, instead of the general crowd). The most common of these is 100% or all bosses. As skips are found for intended goals, speedrunners make categories for avoiding the use of major glitches, and completing some of the intended goals. More whimsical categories sometimes get introduced as well, such as collecting all the items, or playing with a restriction, such as no jumps, or the fewest powerups possible.

While it might be tempting to leave bugs in, in order to entice speedrunners, or to patch bugs out in the name of releasing a polished product, the real consideration should be: Will a casual player run into this bug by accident? And does this bug create new interesting choices with regards to saving time, or playing the game? For most bugs, the answer is no, but sometimes the answer is yes. A common policy is to leave in any bugs that affect the speedrun after the game is released, unless they’re easily triggered showstopper bugs, such as a crash, or softlock. If the QA team can’t catch it, most players probably won’t either. Rather than blindly sticking to the value that all bugs are bad bugs, it can be helpful to consider more abstractly what creates value for the customer.

In some ways, the way the game is coded or designed can influence what tricks are possible in a game. A lot of glitches in older games involved memory manipulation and corruption that isn’t really possible in modern games, largely because modern engines and modern languages have a level of type safety and memory safety that games from the 90s didn’t. Programmers working in assembly or C frequently made mistakes with pointers, arrays, or structs. They would transform data using a process meant for a different set of data, or jump to the wrong location in memory. This is what made so many glitches possible in pokemon, ocarina of time, and other games from that time period.

Beyond just coding conventions, glitches or exploits are made possible by simply making detailed unique mechanics that had interactions with a number of other elements, which is good game design. Good games tend to also be good speedgames, with the exception of autoscrollers, and beat em ups, because those tend not to allow for much routing freedom, and playing beat em ups for speed tends to deemphasize what makes the combat in beat em ups interesting. When a mechanic is designed to accomplish many different purposes, interact with many other elements, and modulate its output based on the input, it’s almost inevitable that some unintended outcomes will occur. The iceless skip in Megaman X isn’t some weird quirk of the code, it’s just the natural result of giving the player the freedom to jump off walls and near perfect air control.

A general quality of life feature for speedrunners in any game is having a good in-game timer. A good in-game timer will not count loading screens, and sometimes pause time or character creation, but will count every other part of gameplay. Good in-game timers avoid the need for speedrunners to manually remove load times in their video software, or with complicated timer splitting programs that need to be developed per-game. Another quality of life feature is a speedrunner mode where the RNG is deterministic, or where you can input an RNG seed to always get consistent results. Making sure that players can cleanly wipe their save and start from complete scratch is also important.

Building a game that accommodates or even encourages speedrunners is not usually a development goal for most games, but for the few projects that aim to entice speedrunners it can be helpful to know what actually makes a speedgame more interesting instead of assuming that speedrunners want something like a racing game with a single path forward, and you happen to move at a fast unbroken pace. Most games deliberately oriented around speedrunning, such as Speedrunners or SEUM: Speedrunners from Hell, tend not to actually be very popular speedgames, because they don’t really consider what speedrunners enjoy about speedrunning various games, instead building for an aesthetic of speed. It’s more important to build a good game than a good speedgame.

It’s also nice to do the bare minimum to accommodate anyone choosing to speedrun (timer without loads/character creation, good save file management, not actively patching out speed tech). For any game, it’s helpful to avoid actively burning your players. It’s up to the player to decide how they want to play your game, whether it be pacifist, speedrun, or modding. Intentionally snubbing players who play a certain way may not impact your overall sales numbers, but it’s kind of a dick move and many games get a second life from the speedrun community.

How Dark Souls Changed Combat

Most games with 3rd person combat have enemies with slow reactable attacks, and player characters with very quick unreactable attacks, such as Ocarina of Time, Devil May Cry, God of War, Batman Arkham, Witcher, and so on. The Soulsborne series made a bold decision with regards to this. The standard attack speed of most weapons is roughly the same speed as enemy attacks. This means that attacking after an enemy does generally means they’ll hit you first, interrupting you, unlike other series where your attack will come out first. This means you can no longer react to an enemy’s windup with an attack of your own.

By slowing down your attacks, the souls games put you on the same timescale as enemies. Enemies need to be slow so you can react to their attacks and defend against them, and slowing down your attacks to match theirs means there’s more of a risk that they’ll interrupt you before you interrupt them. This means that enemies can afford to rely on hitstun less to be threatening. Overall, it creates more of a neutral game between you and your opponents, where you jockey for position and try to use attacks strategically. Because you’re less sure to hit first, whiff punishing becomes more important to safely hitting enemies.

Slowing down attacks also means that attacks could be more diverse in the time at which they hit, and thereby exhibit a wider range of tradeoffs between damage, range, and speed, which Dark Souls leveraged to create a diverse assortment of weapons. Nioh then leveraged this further by attaching a bunch of moves to the same weapon, and finding ways to distinguish them all using the stance system.

There isn’t a lot to say about this. Slowing down attacks while keeping your defensive options fast is a simple effective trick for emphasizing more of the neutral game in any game with 3rd person combat. It makes individual enemies more threatening, and multiple enemy fights more dynamic too. Obviously not every game should work this way, but it’s cool in the games that use it.

Wonderful 101’s User Experience is a Nightmare

I started replaying Wonderful 101 Remastered recently (I’ve bounced off this game before), and the User Experience (UX) of this game is REALLY REALLY BAD. Here’s a quick introduction to User Experience for people who don’t know. User Experience is a field of design descending from User Interface design that incorporates a lot of different aspects that users run into in the process of trying to interact with a software product or service. In a game, User Experience covers not just the UI, but the presentation of game elements on the screen, the way that rewards are structured, the way new options are unlocked, the color coding of various elements (like enemies, attacks, etc), the presence and intrusiveness of cutscenes, the controller layout, online ranking systems, cosmetics, the tutorialization, and even the structure of the game’s mechanical design itself. Something like the way Gears of War gives new players in online multiplayer a subtle buff for the first 5 matches, so they’re more likely to win and therefore stick around, is UX. UX is ideally informed by research, both on the level of the whole discipline, and for individual games and playtesting to find pain points for new users. Playtesting with new users is inherently UX.

This article helps explain UX in the context of games better: https://medium.com/@player_research/what-is-games-user-experience-ux-and-how-does-it-help-ea35ceaa9f05

Platinum games AS A WHOLE, have extremely bad UX. Wonderful 101 manages to kick it up a notch from the normal badness of Platinum’s UX.

A common Platinum Game UX problem is requiring basic defensive abilities to be unlocked in the store (sometimes through progression). This is in practically every Hideki Kamiya Platinum action game, from Bayonetta (air dodge), to Wonderful 101 (unite guts and unite spring), to Metal Gear Rising (Offensive defense, a dodge. Technically not a Kamiya game). Wonderful 101 is notable here, because Unite Guts and Wonder Spring are your block and dodge, your ONLY defensive abilities. Blocking attacks with Unite Guts is the only easy way to make some enemies vulnerable and the easier of two ways to make them susceptible to juggles. If you do not unlock these abilities, your only way to defend yourself is to run away from attacks, some of which home-in! There is a big tutorial pop-up telling you to buy them when you first visit the shop, but you do not have them for the entire first mission, and the first fight versus bigger enemies in the game. Plus, you won’t see that pop-up unless you go into the store, which you’re not guaranteed to do immediately. Presumably the reason such basic moves are unlocks is so that tutorials don’t need to be front-loaded at the start of the game, and can be spaced out more over the first few missions, and requiring you to buy them makes it obvious what you have versus what you don’t, and you try out the new thing you got. However it would be easy to just have these unlocked from the start and have prompts pop up about them at appropriate points, instead of locking you out of mission critical moves.

The ranking systems in Platinum Games are extremely demotivating to a new player. They function on a triad of time / combo score / damage taken. A new player is guaranteed to score poorly on almost every mission, because they don’t understand the systems, they aren’t familiar with the encounters, they’re practically guaranteed to get hit once per fight, and they get penalized harshly for using continues or items, which these games hand out like candy. This annoys a lot of new players. The ranking systems do exist to give players an incentive to work towards playing the game better/more perfectly, but the combo score component depends on unlocking moves that you do not have from the beginning of the game, and will not unlock until multiple playthroughs through the game. In Wonderful 101, it is not really possible to get a platinum in many fights on the first playthrough because you need to unlock Wonder Rising first. With each weapon no less! My proposal for fixing this problem is to have a completely different grading system for the easy and normal difficulties that is biased towards only giving the highest ranks. Getting a platinum in any of the 3 scores should yield at least a gold rank on the fight, 2 should yield platinum, 3 pure platinum (and if the last is a gold, maybe give pure plat anyway, at least on easy and very easy), REGARDLESS of the other scores. Make it a similar deal with 1 gold yielding at least a silver, 2 gold = gold, 3 gold = platinum, and so on down the ranks. On easy to normal difficulties, make the penalty for using items, low or nil. Same for Continues. Save the real scoring system for the higher difficulties. Fans of action games don’t enjoy clearing out the lower difficulty modes for their score card, in large part because it is so annoying to get a high combo score on the easier difficulties.

Platinum games are loaded to the brim with cutscenes intermittently throughout missions. These cutscenes are frequently fairly lengthly, being minutes long, but don’t have a lot of real plot development. Some of them are unskippable, and skipping a cutscene means opening a menu, moving the cursor over, and selecting skip. It’s nice that you can pause cutscenes so you can walk away. It’s not nice that the pause has a delay before the menu is active, meaning it takes time to pause and unpause, as well as time to move the cursor over to the skip button. You need to do this a lot or sit through a lot of cutscenes and this can seriously interrupt the gameplay and the learning process. If these cutscenes played out without interrupting your ability to interact and progress, they would be significantly less intrusive. Nier Automata largely learned this lesson by having characters speak about non-critical story elements during battles and exploration.

Collectible consumable items pop up CONSTANTLY, with tutorial popups for what they do. These pop-ups always have a delay before you can dismiss them, to guarantee you’ve reread how they work after you already know. I KNOW HOW MUCH A BLUE RUPEE IS ALREADY! This is highly distracting and disturbing to flow. Collecting batteries factors into your final score, as well as how much energy you can use during each mission (???), adding more distraction during fights and exploration.

The screen is massively cluttered with characters, enemies, and random environmental objects, and zoomed in by default. The color scheme makes it difficult to discern enemies or your character from the background, especially in circumstances where the ring around your character disappears. The submenu can come up for rearranging your team leaders, or giving you a radar, which covers enemies underneath it, and it does not display the prompt to dismiss it anywhere onscreen and it does not go away automatically if you don’t use it. BY DEFAULT, THE PC REMASTER HAS KEYBOARD BUTTON PROMPTS ONLY, AND DOES NOT AUTOMATICALLY SWITCH WHEN A CONTROLLER IS DETECTED. YOU NEED TO DIG THROUGH THE MENUS TO FIND THE OPTION FOR THIS, AND IT IS NOT CLEARLY LABELED. Tiny enemies are not clearly color coded when they are attacking, or vulnerable (I have not divined the way their states are color coded yet) and are generally easy to miss when they’re attacking, or there is one left to kill before the mission ends. Enemy attack cues can be extremely subtle and not have a clear cadence like in other action games, allowing even the attacks of large enemies to get lost in the sea of information on-screen.

There is no explanation that you need to use unite guts to deflect blunt attacks, or that it is pierced by spiked attacks. My brother actually got up to the tanks and quit because he couldn’t damage them. I knew you needed Unite Guts already from watching footage of the game, so I didn’t have a problem with them. There is no prompt to zoom the camera in or out, or to dismiss the submenu. You need to unlock wonder stinger and wonder rising WITH EACH WEAPON! These are the only 2 command attacks on each weapon and they need to be reunlocked with each one, from finding secrets and fighting enemies! WHY.

Wonderful 101 overloads you with information, distracts you from what’s useful constantly, hides essential features and information, fails to explain essential information, and presents information in a way that is very difficult to interpret. It is entirely clear why so many people had such a hard time getting into this game. It is made seemingly on purpose to drive people away from it as fast as possible, with the tank enemies in particular being hard barriers, requiring you to use options that you don’t necessarily have and certainly that aren’t explained to you.

I’m eventually going to overcome the new player experience and see how good the game is overall, but in the meantime it massively frustrates me.

Doom Eternal Review ft. S.G.S.

Editor’s Note: The original draft and most of the content of this was written by our discord mod, S.G.S. I stepped in to help flesh out sections comparing the gameplay styles of Classic Doom versus Eternal, Resource Manangement, Enemy design, and wrote the Marauder section by myself.

Honestly, I’m nothing short of thoroughly impressed this time around. id Software took the interesting but flawed attempt at action FPS that was Doom 2016, and capitalized on the potential it had in a splendid way.

Doom 2016’s resource management was handled via glory kills for health and chainsaw use for ammo, combined with more “traditional” level design with health and ammo pickups strewn about. This felt like a clash of ideals to me. Classic Doom (and a lot of older shooters) had non-renewable resources that were limited exclusively to pickups around the map, which meant that routing through the map to acquire weapons/ammo/health/armor became an important skill to master. Classic Doom was about resource gathering and attrition, which created a chain of events across a map which had context with each other. Your options later in the level were based on what resources you found, and which you spent, earlier in the level. Various maps tune this balance differently leading to some maps starving you of resources, while others have few weapons to work with; plenty of maps even place weapons in locations that require you to deal with encounters on the way. Doom 2016, however, had a system in place that showered (heh) you with resources at a moment’s notice, which flew squarely in the face of level exploration as resource management. Combat encounters were decontextualized from one another. You even obtained weapons in a continuous fashion, meaning they were more akin to upgrades rather than resources you locate (or fail to locate) on a map. Eternal pushes this style of resource management further by adding flame belches for armor, which is another layer to manage. As such, the exploration of a level is more for progression and secrets, rather than for resources, and you don’t experience attrition over the course of the level, because infinitely respawning enemies, and infinitely refilling chainsaw/flame belch/glory kill are your source of ammo, armor, and health. Doom Eternal does not deserve to be thought of in the context of Classic Doom, it’s better to think of it as a completely different game series.

Eternal pushes ammo management further with its harsh ammo caps. It can definitely feel oppressive at first, but it punishes sloppy play heavily. You will inevitably run out of ammo all the time in the early missions, establishing the importance of the chainsaw to replenishing your ammo supply. Given the low ammo cap, the chainsaw can be viewed as a conditional reload only available when you’re close to a weak fodder enemy. Because the chainsaw regenerates fuel and fodder enemies respawn constantly, the game is really demanding that you save fodder enemies for ammo and focus instead on the large enemies. As for health and armor management, enemy attacks can deal a lot of damage to you quickly and the enemy aggression borders on absurd. If you’re not careful they can quickly tear you to shreds. Staying maxed out on health and armor on higher difficulties is fairly challenging. All of this combines to form an early gameplay loop where you’re constantly managing resources and preserving “moving resource kits”. This soon evolves into a grand cycle after obtaining a lot of weapons. At this point, you only recharge ammo every once in a while as you have a lot of available ammo distributed across your many weapons. Overall, Eternal addresses an ongoing trend with shooters – absurdly high ammo caps. Older shooters focused on resource attrition, meaning high ammo caps worked fine, because firing a bullet meant one less bullet existed in the world for you to deal damage with. Doom Eternal however has infinitely renewable ammo, much like other modern shooters, so a high ammo cap would mean no threat of ever running out of ammo as you’re continuously showered in it. Doom Eternal’s low ammo caps serve to make the core combat as interesting as possible, by forcing you to not overly rely on any one weapon. You might always be able to get more ammo, but you’ll also always be running out in the moment.

Optimizing your DPS in Doom 2016 required a lot of weapon switching routes as it was faster to shoot multiple weapons once rather than stick to the same weapon. Unfortunately, this was not capitalized on due to 2016’s fairly lackadaisical arena design and enemy combinations. It was far too easy to converge to a “workhorse” weapon that dealt with literally everything the game threw at you. The ammo caps and enemy weakpoint system makes weapon switching mandatory this time around, and I’m fairly glad that is the case. Weapon management is a relatively unexplored area of FPS design, as weapon choice was always based on levels and encounters. You either had a consistent workhorse weapon (like the Super Shotgun) or learned specific usage of specific weapons for specific encounters. But Eternal ties its weapon usage to its enemy design, far more than any other shooter I remember, making weapon management an essential skill. The notion of a main weapon really doesn’t work cleanly with Eternal, and even if it did, different people would converge to different workhorses.

Speaking of enemies, what a work of art! This is the first FPS I’ve played in a long while that nails enemy design so perfectly. I genuinely think Eternal’s enemy roster rivals Devil Daggers’ and Doom 2’s. The roster has an enemy occupying almost every niche available and everything a player can do has a soft counter in the form of an enemy. Some enemies chase you down, some tank damage, others hang back and provide ranged support, some are flying, some act as a wall. Most types of enemies demand or reward certain skills from the player, such as Pinkies, Plasma Shield Soldiers, Archviles and Marauders reward your ability to hit them around and behind their protection. Arachnotrons, Revenants, Makyr Drones, and Mancubuses reward you for sniping off their projectile armaments. Plasma Shield Solders and Mancubi can be used as explosives against their fellow demons, if you group them together. Revenants, Doom Hunters, and Cyberdemons (called Tyrants in this game) can shoot homing missiles, demanding you dash or double jump to break lock-on. Carcasses, Doom Hunters, and Plasma Shield Soldiers can have their shields overloaded with plasma fire.

Enemies also occupy different zones in combat. Many will chase you down and only have melee attacks, such as Hell Knights, Pinkies, Whiplashes. Prowlers will even teleport after you, making them a constant threat. Other enemies are more content to sit back and assist, such as Carcasses, which block your line of sight and movement, making it difficult to move in for glory kills, or pain elementals, which summon lost souls and shoot projectiles. Others insist you get out of their personal space, such as Mancubi with the fast AOE stomp, or Marauders with their fast close range shotgun. Enemies vary in speed, from the slowly advancing Mancubi tanks, to the fast and agile prowlers, or Marauders and Pinkies, who have great horizontal movement, but are terrible at dealing with platforms. Cyber Mancubi can lay acid on the ground, flushing you out of an area.

This is further amplified by the (mostly) really competent enemy AI. They are aggressive and punish simple movement; linear movement and circle strafing can work for some enemies, but others will flank and deal with you accordingly. Even vertical movement has counters this time. I feel like the new version of Doom 2’s roster is readapted to Eternal in the best way possible. For instance, the Archvile has attacks that require dashes to avoid, powerful AoD spells that mimic the original, and absurd summoning potential. It spawns enemies around you (even superheavy ones), while it hides in corners. It can even teleport around for good measure! The Tyrant is a tanky bastard that smothers the arena with rockets, fire, and lasers that lock down whole areas. Good stuff. As for the new additions, they end up targeting the gaps left behind in the roster. We have stuff like the Whiplash which constantly harasses you and inflicts crazy knockback, and the Carcass which places shields around enemy weakpoints. The smart thing about weakpoints here is that they don’t simply eliminate enemies, instead reducing the enemies’ attacking options. Weakpoints are not the most efficient way to kill an enemy usually, just a way of reducing their threat to you. Each enemy can deal with you at multiple ranges, and it is up to your skill to decide who to deal with. This creates some of the finest enemy prioritization ever.

On top of that, enemy combinations and arenas are set up in really neat ways throughout the campaign, with some of the later missions demanding more from the player than almost every other shooter I’ve played. Add the Slayer Gates and Master Levels and we have a game whose demands rival those of older action titles (like Ninja Gaiden and God Hand) and challenge maps from FPS modding communities. It’s crazy that id Software themselves have pushed the game so far, but this is 2020 after all. I’m genuinely stoked for future Master Levels, as the current ones have revitalized the flow of their base missions. This demonstrates a remarkable understanding of arena design. Most arenas tend to be asymmetrical and have efficient vantage points for both the player and enemies. Even the more symmetrical ones tend to be constrained, testing vertical movement options more.

As for what the player can do, your toolkit in Eternal is remarkably potent. Of course we have the dash and jump serving as the base for the movement kit, but adding the meat hook on the SSG, the Ballista boost, and air control rune gives us a very robust core for movement. There’s also the inertia and differences in how vertical/horizontal momentum are imparted by these options. As such, this core is capable of dealing with everything the game throws at you (and it throws a lot). Even then, new movement tech has been discovered (we have dash-jumping, bunnyhopping, superjumping, and mid-air circle strafing) further adding more options. The weapons in Eternal ultimately thread a fine line between accommodating workhorses and encouraging diversity. It’s also pretty great that almost every ammo type is shared across two weapons and that choices between the types is non-obvious. Each enemy can be dealt with an “optimal” method, but Eternal offers flexibility as you unlock more weapons, shifting even the weak point system to a non-essential, but still useful, part of your toolkit. Finally the equipment launcher offers some nice support tools, allowing you to flame belch/frag grenade/ice bomb while using another weapon.

All of the above combines to form a frenetic FPS with a lot of complexity and depth. One way to summarize this is by comparing it directly with stylish action games like Devil May Cry and Bayonetta. You unlock more and more tools as you play, and the game throws more and more at you to compensate. Eternal also partially resolves a few issues with the action game formula, such as difficulty unlocks and encounter design. You have all the difficulties unlocked at the start and so you can start progression at any difficulty rather than patiently grind out lower ones. And as mentioned before, Eternal nails both enemy design and encounter design, effectively combining the best aspects of stylish action and FPS philosophy.

Now enough adulation. Here’s a list of issues with the game, that either I noticed or were brought to my attention by others:

1. UI and HUD: Important cooldowns and resource counts were huddled away in corners, and for a hectic game that relies so heavily on them it does become annoying to take your eyes away just to be aware of your own resources. One tip I received was observing them during glory kill animations, which does work but is certainly not ideal. There’s also the fact that ammo caps are important in this game, so being aware of all ammo capacities would be very useful. There are only 4 primary ammo types in this game, so something could’ve been bodged into place (the weapon wheel really isn’t ideal for the pace you can play this game at). Maybe placing the resource generators (chainsaw, flame belch, blood punch, ) near the center or the sides of the screen could have worked?

2. Extreme tutorialization: I’m in two minds about this. I’m glad that we get the introductions out of the way so Eternal can throw more interesting stuff at you faster, but I definitely sympathize with the sense of discovering stuff yourself (you can disable tutorials if you really want this back). But the weird situation with Eternal is that it conveys the weakpoints as the only way to deal with enemies, which is definitely not the case. I’ve heard someone refer to Eternal’s issue as “overtutorialization”. Doom Eternal’s tutorial popups give the impression that enemies are supposed to be fought by targeting their weakpoints, giving the false impression that Doom Eternal is about hard counters. IF YOU THINK THIS GAME IS ABOUT TARGETINING WEAKPOINTS, YOU ARE NOT PLAYING THE GAME AS WELL AS YOU COULD BE. TARGETING WEAKPOINTS IS AN OPTION, NOT A NECESSITY.

They explain a lot of information on the systems of Doom Eternal, but not much about strategy or theory, and the systems of Doom Eternal are weak points, glory kills, flame breath, chainsaw, and the specific features of certain guns, which can lead people to thinking that only some guns are good against some enemies, instead of thinking more robustly relative to their current situation. Prying off an enemy’s turrets might be helpful for surviving an encounter, but there’s always a faster way to kill an enemy outright, and glory kills are nearly always slower and less efficient. Chainsaw might regenerate and be the most immediate means of restoring your ammo, but arenas are stocked such that you can beat them with just the ammo provided if you’re efficient, even on nightmare difficulty (In the Ultra-Nightmare 100% speedrun, it’s very common to see runners hang onto chainsaw fuel for multiple fights to kill a heavy demon later on, and even at 1 fuel pip, they rarely need to use it, because they’re so efficient with found ammo in arenas).

Doom Eternal also fails to communicate some more subtle systems, such as that most light enemies will respawn indefinitely over the course of a fight, and fights are really about taking down the heavy enemies, which leads people to being wasteful with ammo/health and needing to rely on the chainsaw and glory kill to recharge. Doom Eternal simultaneously explains too much, but fails to teach the right lessons, but it’s difficult to fix, because a lot of the game is easy to miss for players lacking intuition and observation skills.

3. Opening: The opening few levels are sluggish. You really don’t have too many tools at the start of the game, so it does feel rather restricted compared to what follows. This is where I also sympathize with the “forced playstyle” complaints due to the flood of tutorials. This game really does not put its best foot forward. It only really opens up after Mission 3.

4. Platforming: The platforming is weirdly utilized. I don’t have an issue with the idea of platforming in shooters. It’s just that Eternal uses it as the connecting tissue between areas rather than part of the arenas themselves. I would’ve liked to see a few gimmick areas using platforming more; at most you get a monkey bar here and there. There’s a secret encounter that does this, and it’s pretty cute. I wish there were more like it, even as secret encounters. Also the walls for climbing can be difficult to identify against other surfaces and tend to be tucked away in corners, making it less obvious how to progress. There are many invisible walls, blocking apparently accessible areas, which can make hunting for secrets even more confusing.. There’s also the purple goop, which disables your ability to jump and dash, and forces you to walk at a slow crawl. There isn’t really a purpose to this goop, and some sections force you through it.. The goop can sometimes be avoided with good dashing, but it’s a weird addition. There is an arena early on that does use this, but I don’t think it works particularly well due to fewer movement options available. If you fall, you have to sluggishly walk out. Thankfully the goop is rare.

5. Marauders: These guys are poor additions to the roster. Attempting to actively kill a Marauder means focusing on the marauder, near exclusively, and waiting with the right weapon in hand. Marauders block all shots directly at them with their shield, but if you stand at mid-range, they will sometimes flash their eyes green, and charge at you. If hit with a burst fire weapon, like a shotgun or ballista, while they’re charging the Marauder will be stunned briefly, letting you hit them with whatever. This is the only consistent way to deal damage to marauders (admittedly, there are tricks that let you redirect his shield, hitting him from 2 sides at once).

What this means is that fighting Marauders normally means you need to stand mostly still, in his mid-range charge zone, and watch for whether he charges or shoots a projectile, while holding a burst fire weapon, so you can’t really fight marauders unless you commit to killing just the marauder and ignoring the other enemies. Realistically, this makes it so marauders are like a ranged add to whatever fight they appear in until the other enemies are cleared out and you can focus fire them. Of course, a bunch of strategies exist to cheese Marauders, but all of them involve following a strict set of instructions (fire 1 BFG to distract him, fire another directly at him; parry, then switch-cancel between super shotgun and ballista for a quick kill; lock-on rockets, fire a frost grenade behind him to redirect the shield, unload all your rockets on him). Marauders don’t create interesting decisions like the other demons do, because they demand such specific solutions. Rather than fulfilling a unique role in combat, they’re more of a minigame unto themselves.

The obvious solution to fix Marauders is to let their shields get popped, like plasma shield soldiers, but that means they no longer occupy a unique strategic role from plasma shield soldiers. The more subtle answer is to disable the Marauder’s shield at mid to close range, letting them only shield from afar (which also gives better feedback of when you’re at the proper range). This means marauders can be freely engaged, like other enemies, but only up close, so they’re still a ranged add in most situations, you still need to approach them, but you don’t need to play a high-focus minigame with them to deal damage. Of course, this removes the parry thing the team was going for, with managing the ranges. The solution to that is to give the Marauder super armor that can only be broken with a parry (and a little extra defense when they’re not being parried, to help incentivise going for the parry specifically. Maybe 50% extra). So now Marauders have a unique role in combat, but don’t demand you follow a specific solution or focus on them to the exclusion of other enemies.

6. Enemy Silhouettes: Fodder silhouettes are not ideal. This is especially noticeable when you face the Prowler, which kinda looks like a mix between the Imp and Gargoyle, but is actually a heavy. Their slightly larger size and purple color really isn’t enough, but I guess you can get used to it. The different basic zombie types take different amounts of damage, but they look samey. It also seems that setting up glory kills with the Shotgun on them is inconsistent, but you could always use the Heavy Cannon for finer increments of damage.

7. Unlock Systems and RPG Mechanics: They really went hard on this one. The Rune system is forgivable as it tries to encourage diversity of playstyles. Unlocking weapon mods is cool as you get more tools to use, and the weapon masteries are mostly worth the effort, but the upgrades in the middle feel like busywork. The Praetor Suit and Sentinel Crystal systems feel like entirely filler to me. Although by the end of the game you do unlock everything, it would have been nice to have most of these at the start.

8. Weapons and Equipment Launcher: I feel the Ice Bomb and Frag Grenade could have been on different buttons, it’s otherwise fairly clunky to switch between them as they are useful as attack strings. The weapon mods are also not entirely well balanced, but new use cases are being discovered so I could be wrong on this (also this might just stem from my playstyle). I also feel the Chainsaw at two pips is fairly useless; maybe allow for heavy removal with two pips when they are in a glory-kill state? As for the superweapons, the Crucible and BFG are rather boring. The Crucible just removes 1-3 enemies and that’s it. I wish more was possible with it, and I’ve heard some ideas like a ground slam and sword lunge. The Slayer’s Testaments mod for Quake allows it to hit multiple enemies, for instance. The BFG is a decent cleanup option and it does help with quickly eliminating superheavies, but is otherwise less interesting than the other weapons. The Unmakyr is a pretty decent superweapon and it’s probably the closest to interesting as it has a large spread from afar, but is an enemy deleter up close.

9. Ripatorium and Mod Support: The Ripatorium is a neat addition and has some cool hidden encounters (Archvile that summons twin buffed Marauders, good lord), but I wish it could be customized more. Also the lack of mapping features for this game is a real downer, especially because some juicy encounters could be made with that enemy roster and maybe even some neat platforming maps. The Master Levels do compensate for this partially, but I do hope for some mod support in the future. It might even be possible as the devs say they made the tools very easy to use, but creating a modding utility is still absurdly challenging for a AAA title.

10. Miscellaneous: The story is decent, but not as subtle as 2016’s, I guess. It’s good we can skip cutscenes this time though. The bosses are decent and nothing to write home about, which is commendable for an FPS. The ending was fairly weak as well.

That’s mostly it. Some of the above border on nitpick territory, but I feel that’s reflective of how strong a game Eternal is. It’s commendable that the Doom franchise itself is targeting the FPS trends it established. People praised Doom 2016 for buckling the trend that military shooters fell into. I praise Doom Eternal for something more. It’s far more ambitious a game as it breaks decades old habits and trends, while vastly improving a unique formula. We have the indie scene and mapping communities exploring the design space of older shooters, so I’m glad that it’s a AAA title that pushes the boundary this time. The Doom franchise means many things to different people, but one thing it doesn’t have is a hard-set identity. Each Doom game excels at different aspects. Doom 1 is this fusion of horror and action. Doom 2 is a more abstract, gameplay-oriented expansion pack. Doom 64 and Doom 3 opted to explore the horror side more. Doom 2016 serves as a return to form and criticism of the direction FPS took, but wasn’t as uptight about preventing cheese and forcing interesting decisions. Doom Eternal now criticizes the foundation of the genre itself and offers its own style of play based on soft counters, fostering interesting decisions. I for one am excited to see what they do next. It’s now clear that NuDoom and Classic Doom are fundamentally different games, and that’s for the better.

Turns out Doom is Eternal after all. 10/10.

Transitive (Efficiency Race) vs Non-Transitive (Rock Paper Scissors)

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).

rockpaperscissorspayoff - Copy
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

In Rock Paper Scissors (or the Shell Game), the correct option is different depending on your opponent’s option. A > B > C might be true, but C > A, making a loop. In a game like this, there isn’t a clear best answer, the best answer will always be a mix of your options rather than any clear course. In order to make a decision non-transitive, there must be hidden information about what the opponent’s option is (or which options they have available, or chose in the past), such as by going simultaneously, or having a hidden hand of cards, or an army hidden behind the fog of war.

This is the payoff matrix for normal rock paper scissors, notice how each option wins against 1 option and loses against one option.

There’s another element at work here too, which is brought up in the video, luck or RNG. Luck can also have a transitive or non-transitive relationship with player choices. Luck can have a static effect on game state regardless of choice, thus being transitive (ie. you get the same lucky effect regardless of what your choices are). Or luck can have varying effects depending on your decision, making some decisions more powerful than others. On top of that, there’s input-randomness versus output-randomness, which can both be either transitive or non-transitive. Transitive input or output randomness isn’t very influential on a multiplayer game typically (everyone being uniformly closer/further from winning usually isn’t that big a deal unless someone was about to win/lose). Non-transitive input-randomness changes how much every option rewards the player, which jumbles around what the optimal solution is in an efficiency race game, and jumbles the payoff matrix of a rock paper scissors game. Non-transitive output-randomness is the worst kind of randomness because it essentially screws with your ability to make decisions.

This also makes a statement about single-player games. Ideally, single-player games are fair. Fairness includes a few things, like providing clear information about your choices, and clear feedback about the results of your choices, but it also means not randomly screwing you over. You should always have a choice that will lead to success (unless you checkmate yourself, which should also be clearly communicated). If there’s hidden information that causes you to fail, such as output-randomness, that’s not good.

For this reason, single player games CANNOT have truly non-transitive decisions. A single player game cannot be true rock-paper-scissors like a multiplayer game without becoming unfair. This means that every situation in a fair single-player game always has a knowable optimal solution (per whatever metric you choose). What a game can do however is non-transitive input-randomness, which jumbles what the optimal solution is. The most common form of this in action games is enemies using random attacks at random times and random positions, but the attacks are slow enough that you can react to them. Picking the best way to avoid an attack (and punish it) might be difficult and the random variation means you need to resolve over and over as a fight progresses. If the state space of a given fight is big enough, then hopefully you’ll never encounter the same exact situation twice, keeping you solving fresh problems the whole time (and this also shows that the issue with grinding or enemies with too much HP is that either you intentionally limit the state space to keep things quick, or you exhaust it through enough repetition, which is bad pacing).

Single player games always have this type of payoff matrix, but eliminating choices to get to the optimal payoff takes time, and if the choices get jumbled, it requires you to recalculate, meaning you’ll choose less optimally every time and need to rely on heuristics. Source

When I say that I want single player games with counters, I mean that I want them to have this type of non-transitive decision-making property that comes from non-transitive input randomness. In aggregate, all the choices you make throughout a single-player game might be perfectly transitive, but games can do a lot to make individual choices along that road more or less transitive, and can leverage input-randomness or deterministic chaos to affect the payoff matrix of those choices, which makes finding the aggregate optimal solution really hard! I usually sum this up as saying choices are situational or not, lead to interesting decisions or not. This is a shortcut to this more fundamental rule.

Fundamentally, fair single-player games are always going to have an optimal solution for every situation, but by varying the payoff of each option in each situation, single-player games can emulate the counters of multiplayer rock-paper-scissors games, without becoming unfair to the player by invoking output-randomness.

By making these counters “soft” instead of “hard” (making the payoff or success rate a continuous range of values that varies depending on the situation, instead of a binary that flips, in other words, avoiding the silver-bullet problem), single player games can have fair interesting choices. This is what brings a game closest to the type of interesting decision-making and strategy that I find in multiplayer games, like Fighting Games, RTS, or FPS. There are a few games that I think have really succeeded at this, the best of which I’d label as: Nioh, Dead Cells, God of War 2018, Doom Eternal, Metal Gear Solid 3 (and V), Thief 2, Cosmic Star Heroine, and Starcraft’s campaign (at least, SC2’s campaign on a difficult that’s right for you, maybe with some modifiers, like in coop).

This counter-based design isn’t specific to any genre, a platformer can achieve this, driving game, stealth game, FPS game, RTS, RPG.

Even without a counter based design, a game can still use this design pattern (non-transitive input-randomness affecting limited choices with a continuous range of payoff values/success rates) to create interesting decisions, such as in the best 2d zelda games and Ittle Dew 2, where hitting enemies knocks them into different positions, and their attacks moves them into varying positions, changing the angle and timing you need to approach for an attack. Getting Over It with Bennett Foddy offers a deterministic version of this, thanks to the high amount of chaos inherent in its physics engine and level design, mimicking the effect of input-randomness, but ultimately allowing players to master the system as they get more precise.

Golf games have really clear meters for the continuous ranges of values players select between, making them a clear example of the type of interaction going on across many games.

On the side of multiplayer games, I think Efficiency Races and Rock Paper Scissors should be mixed together in any good multiplayer game. Pure RPS makes the game inconsistent and flat. Pure efficiency race means the better player will usually win way too consistently and the game is less about actually interacting with your opponent than your single player skill, so playing a match isn’t much different than playing by yourself. By mixing the two, it allows different players to be good in different areas, which makes the individual player matchups different, because different players will have different payoff matrices versus you, which makes playing each new player an enjoyable experience, it allows different players to have a unique playstyle, both in which options they favor, how often they win with those options, and their payoff for winning with those options.

Having a low threshold for efficiency in an RPS game (every player can do the optimal combos/setups with ease) means every player gets the same payoff for a given option, so the game comes down more to which options players favor rather than the more intricate game of which options the players have mastered and to what degree. There might still be differences in each player’s knowledge of the state space (if the state space is large enough), but it can lead to the game feeling really samey once you hit the skill cap, and further skill improvements become more and more gradual and less rewarding.

I think with this framework, I’ve tapped into something more elementary about interesting decisions than I have in a long time, making what I previously called, “fuzzy evaluations” and “situationality” a lot more clear. Haven’t done this in a long time, I hope I haven’t alienated people too much with the technical jargon. In retrospect, I probably should have called, “efficiency races,” “optimization competitions”, but eh, hindsight’s 20:20 and both are pretty good for getting across the gist of what they mean and I think it would be too much work to go back and change it all now (vote in the comments for your favorite).

You don’t know what Game Feel is, read the damn book please!


This article is going to be me apologetically shilling for Steve Swink, because Game Feel is Rocket Science Quantum Computing Laser Surgery handed to Cave Men who decided that nomadic pastoralism is a better pursuit than being agriculturalists or hunter gatherers, dooming future civilization forever.

GAME FEEL! It’s the way a game feels to play! It’s incredibly intuitive as a concept, people talk about it CONSTANTLY! Yet, if you look up GDC talks on the topic, or youtube videos, it becomes obvious that no one has read the fucking book, despite it going into WAY more detail than any of those talks do.


There was a whole talk on “juicy” that prescribes a specific type of game feel by pointing out some specific polish effects that these two dudes like to add to their games by adding them to pong, ignoring that 2 parts of game feel are real-time control and spatial simulation. Jan Willem Nijman of Vlambeer followed this up with another talk that did the same exact thing for a platformer game (calling Game Feel a terrible term in the process as if it were vague or unclear, despite clearly not having read the book, where it’s laid out extremely discretely) and showing off a ton of changes that aren’t actually anything to do with game feel (hp, rate of fire, number of enemies, bigger bullets, etc) and basically spends the whole talk saying, “do what I do and game feel is good now”, rather than building an integrated understanding of all the things that go into game feel, like Steve Swink’s book does.

Even youtube videos made on the specific topic of game feel omit terms from the book and have clearly not read the book. There are 3 components: Real-Time Control, Spatial Simulation, and Polish Effects. None of these videos mention these things, placed at the start of the damn book.


At this point I’m begging you. PLEASE just read the damn book. It came out over a decade ago now. 2008. There is literally no better resource on the topic since. If you want a demo of what’s in the book, here’s a Gamasutra article by Steve Swink.

Hell, Steve Swink even coded INTERACTIVE DEMOS and put them on his site. Just read the damn book please.



Why the Hell Does Depth Matter?

Depth is my primary metric of quality for a game. I believe depth is a good metric because it is “simple” and “generic”. Unfortunately it’s not simple in the way of being simple and relatable to understand. It’s simple like GDP is simple. It’s one final number that represents a whole ton of things going on under the hood. Depth is the emergent result of a lot of different things coming together in a game. Depth, like GDP, is a generic metric in that it doesn’t care what’s being invested in, it could be medical, military, education; puzzle game, RTS, RPG, FPS, or fighting game, it only matters what the final outcome is. Depth doesn’t encompass everything about a game, the same way GDP doesn’t encompass everything about an economy, but both are fairly important metrics regardless. Unlike GDP, there are less ways to fake depth and end up with a cheap result.

I define Depth as the number of states that are differentiated from one another, balanced against each other, and currently known about/preferred by the playerbase. State is the current condition something is in at a specific time. A state with regards to games is the current condition of everything present in a game at a moment in time. Depth is the sum of these states after passing through 2 filters: redundancy, and relevancy.

We start with Possibility Space, which is every single state possible. We filter those into Absolute Depth first by removing all states that are redundant, that are just copies of one another, such as rotations or mirror images of the game board in Tic Tac Toe or Go, or more powerful but functionally identical weapons in RPGs. Then we filter Absolute Depth into Relevant Depth by removing all states that are underpowered and therefore not commonly used in play, or the ones that are unknown to the player community at a given time, such as those that use undeveloped techniques or unknown mechanics. The final result is a measure of the effective complexity of the game.

depth venn

Okay, so, why the hell would the effective complexity of a game matter? What does it matter if a game is more complicated? For this, lets go back to Raph Koster’s Theory of Fun. The gist of his theory of fun is that fun is derived from winning at something inconsistently, like a coin flip. Fun is also derived from improving your consistency over time. Something you can win at effortlessly is boring, and something you never win at is frustrating (this is backed up by Flow theory too). Random things can trick the brain, which is why gambling can be fun, but most people eventually catch on and stop playing, unless they delve into superstitions about luck.

However there’s also a bit of a contradiction there, if you improve your consistency over time, then won’t something that’s fun now eventually become boring when you’re 100% consistent? That’s true. Depth gives players many different measures of consistency, so while you may be consistent at one thing, now you have something else to get consistent at.

Raph Koster’s Theory of Fun posits that fun is the joy of learning (probably because learning things makes us better at surviving, so we adapted to reward learning neurologically). A deep game has a lot to learn about. Therefore a deep game is a fun game.

On top of that, the experience of playing a deep game is different from playing a shallower one. Deep games typically have more choices, and more possible consequences for those choices, requiring more complex thought about each choice. Many board games with less board states are easily solved (connect 4, checkers), where more complex ones require more arcane heuristics in order to perform well at (Go). Simpler games are more about doing 1 thing right, where deeper games are about thinking about future consequences more. Deeper games involve more interesting decisions, as per the Sid Meier definition.

Smash Bros Melee might have less buttons and less attacks than a traditional fighting game, but you can get more results from each move than you can in a fighting game, because Smash Bros is highly responsive to the relative positions of each character, and the timing with which attacks are hit. This isn’t to say that Smash Bros is necessarily better than a Fighting Game though, because both a few nuanced moves, and many differentiated moves are equally prioritized under depth theory, as long as they shake out to the same number of relevant states.

Later Smash Bros games did a lot of work to remove a lot of the nuance in Smash Bros Melee moves, by making them less responsive to differences in timing and spacing (less sweet/sour spots, reverse hits no longer work), by reducing the effect of defensive mechanics during combos, and removing options outright. These games are comparable in their options, but have less depth. This makes progress less clear, since there are no longer an array of clear techniques and strategies to master, and requires players to work harder to get smaller rewards for their effort.