Better NES-Era Controls For a More Civilized Age

Lolo’s control can be frustrating. There, I said it. Longtime players can control Lolo with ease, but even experts periodically succumb to the dreaded half-step-too-far that botches the whole puzzle. ACalmMind and I have tested new players’ reactions to Lolo’s controls; without a bit of help, the reception is generally frustration. Calm, Devnull and I are determined to do better, and we have several ideas for how to improve these finicky controls.



Chapter 1: Mitigation By Design

The best design plays up the best parts of a game engine while minimizing the harsher flavors and limitations. In Doom 1993's then-revolutionary engine, players could not look up or down. Carmack and Romero understood this limitation; they smartly showed off verticality without players feeling they needed to look up or down. Critical information in Doom is never unfairly above or below the player’s view. The few cases where locations are vertically out of sight feel intimidating, but they are always tastefully done, and they have that much more gravitas because of it.



More recently, Justin Ma and Matthew Davis, the brains behind Into the Breach and FTL: Faster Than Light, go into great detail in their Into the Breach post-mortem about building mech abilities to suit the game’s limitations. They found that manipulating the vek is incredibly satisfying, so they emphasized abilities that reposition the vek over abilities that do direct damage. Conversely, in the original 2018 release they scrapped most enemy attacks that push the player's mechs around because of how frustrating they are to deal with.


We can apply design mitigation to Eggerworld too; we noticed very quickly that players frequently “overshoot” their movements. In response, we began adding generous error margins into our puzzles. Emerald frames should have wide open spaces so they can be readjusted if players overshoot their positioning. A tactically-placed barrier of trees and water can help discreetly funnel emerald frames exactly where they need to go without players even noticing the help. Ideally, if we can design the puzzles right, players can focus on concocting solutions and it won’t even occur to them that controls might get in the way.





Chapter 2: Secret Cheating


Sometimes Super Mario jumps right at the edge of a gap, and sometimes he goes for the jump just a moment too late. What a frustrating way to lose a life! It doesn’t feel earned, rather it feels like a gaffe if you hit the jump button after you’ve already run off a cliff. Game devs agreed with that sentiment, and thus “Coyote Time” was born.


Wile E. Coyote's jump arc is programmed very floaty


Many platforming games allow players to walk off a cliff and still jump off thin air for a few frames. You may not even have noticed this, since most games are inconspicuous about their Coyote Time. Most games want to help you, so they cheat in your favor when they think they can get away with it. Celeste is an excellent example of this philosophy:



“Wait!” you say, “Eggerland doesn’t have jumping, so what gives?” We’re pretty proud of our take on this concept, which we call the “grace frame”. See, when players push an emerald frame just one pixel too far, Lolo continues to walk a whole space. Usually, this happens simply because the player releases the d-pad just a fraction of a second too late.


With the power of code, we can detect when the d-pad is released one frame too late and we can “reset” the movement as if the player never overshot the movement in the first place. It’s only one frame of buffer (it would look silly otherwise), but hopefully every little improvement we make will add up to a tighter-feeling and more satisfying control experience.


Discreetly covering your imprecise butt




Chapter 3: Predictability (and Whatever Happened To It)


Video games can communicate in immediate, visceral ways that no other medium can. When Small Mario jumps, a satisfying jump noise plays. When he hits a block, it visibly and audibly bounces up and down. It seems trivial and obvious now, but for new gamers this was a very important “conversation” with the game. It said, “hey, something remarkable happened” and the gamer silently responded by trying again on other blocks. When a question block is struck, a mushroom slowly and loudly announces its arrival with a fanfare. Gamers immediately knew from then on that good things happen when Mario strikes a block from underneath.


Those lessons weren't totally fleshed out in the days of Eggerland and Adventures of Lolo. Magic-giving heart frames look identical to regular heart frames. Even when the player collects a magic heart frame, there is very little to guide the player's attention to the collection of new magic shots, so many new players don't even notice when they've gotten magic shots or how. Lolo’s special powers are similarly confusing, and so are the invisible water currents, and don't even get me started on warp holes. Compared to Mario’s mushrooms, Lolo’s abilities are downright arcane.


These communication issues are obliquely related to controls, but they are nonetheless important for making Lolo’s controls feel functional. We’re adding distinguishing graphics for magic heart frames, decal effects on pickup, and UI pulses so the player knows when and why things happen. If the player feels more confident about what is happening in Lolo’s world, they’ll feel more confident about moving around in it too.



There is an argument to be made about the developers' possible good intentions of obfuscating heart frame information. I won't get into it here, I'll do another post on it some day, but the basic argument goes that there is value in forcing players to deduce which heart frames are supposed to have shots and which ones aren't. Maybe this is nice, but there are other mechanics in the game that do a better job of forcing deductions, for example the warp holes (the respawn points enemies use when their original spot is covered up) so we at Dood Studios are okay with clearly labelling magic heart frames. Moreover, it's too easy for critics of the series to point at heart frames to argue about the series' overreliance on trial and error.



In Summary


With these strategies, we can definitely bring Eggerworld closer to modern-day expectations of control and usability, but in many ways we are simply bound by backwards compatibility. Lolo’s world is a grid and he moves in discrete segments along that grid; some of our testers have complained about this rigidity, but this system brings benefits too. It is precise because it is discrete. Knowledgeable players can reason out exactly what movement they’re capable of without needing nearly as much guess-and-check.


If players had more fine control of Lolo’s position, they might be encouraged to cheese puzzles by exploiting the otherwise precise collision detection of enemies like Don Medusa. The Legend of Zelda on NES operated on a similar grid but with more fine horizontal and vertical movement, and even just that wiggle room allows players to literally phase through walls to cheese sections of the game.


Visit https://www.youtube.com/watch?v=PJLpXOo55ql if you want to learn this forbidden jutsu



Maybe we’ll explore a more “free” control scheme in future iterations of the project, or even in new projects, but for now, I think our current changes smooth out a bit of the harshness of Lolo’s aging control scheme. I’m sure there’s more we can do, too! Let us know in the comments if you have ideas for what we can do to make Lolo’s controls feel better.

Comments

Popular posts from this blog

Demo is here!

Who Is This For?