-- Leo's gemini proxy

-- Connecting to ecs.d2evs.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

on difficulty in video games


first, a couple disclaimers: i'm not talking about the shitty social dynamics that often crop up online around difficult video games here. they're interesting and important and worth discussing, but they also aren't the focus of this post. in addition, most of my experience with difficult games comes from modded celeste, and some parts of this don't generalize very far beyond that. in particular, celeste is mainly about mechanical difficulty with relatively little emphasis on reaction time, which is very different from eg. puzzle or fighting games


rage games and the difference between difficulty and frustration


difficulty is often construed as being intrinsically linked to frustration, but i think that this analysis misses the mark in a number of ways. difficulty is definitely correlated with frustration - there's some frustration inherent to spending tens of hours grinding something out - but there's also a tremendous amount that can be done to reduce this frustration if the game designer chooses to do so


this particularly stuck out to me as i was playing through syobon action recently. when analyzed purely in terms of frame windows, there's nothing in syobon action which is particularly difficult relative to what i usually do in celeste - i'd probably call it yellow expert on the standard celeste difficulty scale - but everything seems optimized to cause as much frustration as possible. the input handling and physics are extremely janky in ways that are (presumably) deterministic and can technically be worked around but often leave you feeling like the game is at fault for your deaths, most of the obstacles are either invisible or otherwise unavoidable without prior knowledge, and the game makes it rather difficult to understand why you died when you die


another factor which can affect frustration is, roughly, separation between attempts. this is a pretty broad concept, and encompasses things like respawn times, music changes (a soundtrack that plays continuously between attempts can make a huge difference), maybe a boring bit of gameplay at the beginning - anything that breaks flow between attempts. for example, the first room of the 6d badeline fight (as well as of the badeline fight in everlasting farewell) is much more annoying because the music restarts every time you die


while this could be considered a subset of attempt separation from a theoretical perspective, ease of practicing later parts of a gameplay segment also plays an important role and has to be managed separately from a design perspective. there are two ways (that i can think of) to affect this:


the first is to work some sort of local nonlinearity into your level design: rather than doing A, then B, then C, then D in that specific order in order to win, allow the player to do A, B, C, and D in any order. vanilla celeste does this a fair bit: a-07 in 4a and 03 in 2b are two particularly clear-cut examples, though there are plenty more that do this to a lesser extent. because the order of the gameplay bits isn't fixed, you're free to vary it in order to practice any of them more easily


4a a-07

2b 03


however, making that work by itself, especially in higher-difficult contexts which would require a tremendous number of rearrangeable segments in order to still be practiceable, is a pretty heavy restriction on level designers, which is why the second approach is much more common: some sort of practice mode. in celeste this takes the form of savestates from the speedrun tool mod - note that its use when practicing long sections for goldens (to respawn you at the start of the section, farther back than you would normally be sent) and when practicing short sections for clears (to respawn you in the middle of a room, further forward than you would normally be sent) are both for this purpose


practice mode


at a high enough level of difficulty, a good practice mode becomes an integral part of the game


consider a (perhaps overly) simple model of a "difficult" game: a sequence of coin tosses, whose probability of success is 0% the first time and increases by 1% each time you try it until it reaches a maximum of 90%. basically, you "learn" each coin toss as you go through it more, but there's a limit on how well you can learn it. i simulated the game using two strategies: one of them tries each coin toss individually until it reaches the maximum of 90% consistency, then does full attempts until it succeeds, the other just starts from the beginning each time. how do the two compare? if we pretend that each toss takes one second:


5 tosses: 1st 7.5m, 2nd 12m

10 tosses: 1st 15m, 2nd 1h

20 tosses: 1st 30m, 2nd 6h30m

30 tosses: 1st 48m, 2nd 25h

40 tosses: 1st 1h10m, 2nd 80h

50 tosses: 1st 1h45m, 2nd 240h

60 tosses: 1st 3h, 2nd 700h

70 tosses: 1st 6h, 2nd 2000h

80 tosses: 1st 15h, 2nd 5800h

90 tosses: 1st 38h, 2nd 17000h


the source code for the simulation. no warranty, ymmv


obviously this isn't a perfect simulation either of difficult games or of optimal use of a practice mode, but it does paint a clear picture: as average clear times without practice mode spiral exponentially out of control, practice mode keep things surprisingly close to linear for a while longer


not only that, but the time spent playing with a practice mode is much more enjoyable as well. fundamentally, when playing a difficult game, you're actually doing three tasks:


figuring out what you're supposed to do, then

building muscle memory for it, then

executing on that muscle memory


practice mode allow you to separate those three tasks. once you know what you're supposed to do and you're comfortable with each part in isolation, longer attempts from the beginning build an enjoyable flow state, but when you're trying to figure out what's going on and what the mapper is asking you to do, that time at the beginning of the room feels wasted, making you frustrated instead of relaxed. muscle memory benefits from intensive repetition in a way that's not possible without just sticking a savestate before a difficult section of gameplay and drilling it over and over again until it's consistent


not all of these factors come into play in all contexts: putting map-specific things in muscle memory (as opposed to just generic tech like extended hypers or the various types of ultras) only becomes relevant at or above gm, and some maps are designed to be readable and mitigate the "figuring out what you're supposed to do" part. practice mode can also worsen the experience in some ways that aren't captured by this framing - in particular, knowing ahead of time how the room is supposed to play out can break some surprises. 9d has two different rooms which are much less fun if you use savestates, and one of them is hard enough that it practically requires them


celeste clearly wasn't originally designed with a practice mode in mind, and its savestate system grew organically in response to speedrunners' (and mod players') desires. it's quite nice as it is today, but i'd be curious to see how a game somewhat similar to high-level modded celeste could look if it was designed from the start to be that way. some ideas i've had in the past have been:


being able to keep multiple savestates around. this is probably pretty easy to do in celeste today, it'd just require thinking through how the ui should work. this would prevent you from needing to completely redo all the work it took to create your state if you accidentally make a bad state

being able to easily place a savestate at any point in a given room's "happy path", for some definition of "happy path", without going from the beginning of the room through to the part you want a state at. for most maps, the best you could do is something like persistent (cross-map-entry) savestates that you can load at any point, but for a certain genre of map you could have a canonical tas which you can scrub through and load from any point. it'd also be nice to have a fully put-together interface for looking at this tas - sj's ivory has a pretty good system for this, but you need to manually control the camera rather than it automatically following madeline with the same logic as it uses for normal gameplay

loading the player in a bit before the state and automatically playing back the correct movement up through the state and letting you take over there


one game design idea i've been toying with for the past while is a rhythm platformer: basically, celeste's physics, but inputs are all timed to a music track that restarts when you die, and you need to make it through a whole song without dying. i think this could work quite well, but it'd need a really really good practice mode in order to be feasible at all


i don't really have a good conclusion here ok bye

-- Response ended

-- Page fetched on Sat Apr 27 14:21:36 2024