Gotta Go Fast

Joel Haddock

June 5, 2024

The idea of being a speedrunning has always fascinated me. I think my first encounter with "official" speedrunners was probably one of the early GamesDoneQuicks way back in the early 2010s. But even then, the concept of it was something that, to me, felt like it had been there all along.

The idea of playing a game as fast as you can wasn’t a new one. When I would rent a copy of Mega Man II or whatever from the local video store, I was going to play the heck out of it every minute I had it. Once I beat it, well, that just meant it was time to play through it again but better. There was no audience for it, just a chance to feel like I’d gotten really good at a game and gotten my rental fee’s worth.

Mega Man 3
I've killed this guy a *lot*

When I was a little older, my friends and I would even hold races over the phone. We’d each pop in our copy of Super Mario World, pick the level, and give ourselves a countdown. The only stakes here were the satisfaction of knowing you were the better player… for that day, at least.

Still, there was no Twitch back then, no or anything. It was for our own enjoyment and nothing more. It was something I put out of mind until I realized there was a whole big speedrunning world out there with GDQ and beyond. On and off over the years I’ve harbored aspirations of being a speedrunner myself, though those dreams tend to hit a wall with both my ability to dedicate time to it as well as my ability to not be bad at a lot of games.

Regardless, I still love the idea of speedruns, and when I started working on Station Zeta, I knew I wanted to incorporate some ideas that would make it a fun game for people to try and play fast.

The Obvious Bit

So, the first step was making sure the game controlled well. Now, obviously, a game should control well regardless of whether it’s a speedrunner playing or not.

That said, after I had gotten the controls to a place where I felt they were solid enough for any normal player (i.e., me), I went back to revisit them with the mindset of someone who was going to demand absolute precision.

Trying it that way, it didn’t feel up to snuff.

This led me down a path of trying to figure out what I could do to improve things. Ultimately, this led me to Maddy Thorson’s thread on some tricks the team used in Celeste. They weren’t all applicable to what I wanted with Zeta, but the three key takeaways for me were coyote jumping, jump buffering, and the halved-gravity jump peak.

Coyote jumping is the idea of giving the player a few extra frames of forgiveness to input a jump once they’ve left a platform. In effect, they are jumping off thin air. What this does is widen the timing window so a running leap might feel less unforgiving.

Jump buffering is the idea that you “pre-register” a player’s jump input right before they hit the ground so that it executes immediately. Again, the idea here is to widen the timing window so controls feel more responsive. Instead of being one perfect frame the player has to hit their input during, they get a small window.

The final piece, halved-gravity jump peaks, are another small tweak that bases the overall force of the jump on how long the player held down the input. If they do a quick tap, instead of getting a full-height jump they get half (or so) the full height. If they hold the button down, they get a full height jump. To me, this one really matches my expectations as a player. When I jam that jump button, I want to feel like I’m getting more out of it.

It took some experimentation and reworking to get all of these pieces in place and to a point that they felt good. But once they were in, it really felt like a much better experience. The controls had been passable before, but now they felt good!

Again, I have to stress that these are tweaks I should’ve been making in general. But without thinking about it from the perspective of the speedrunning power player, I might have let myself be content with "good enough."

Practice Makes Perfect

Beyond the controls, I wanted to add some features I knew were important for speedrunners. The first most obvious one was a level select. From my own perfunctory attempts at running various games in the past, I knew I was always happier when I had the ability to go directly to a section I wanted to practice without having to play through the entire rest of the game.

Following that, I knew another feature runners tended to appreciate was an in-game timer. I contemplated making this an option you could toggle on and off, but ultimately decided it was nice just having it be a permanent part of the UI.

Once the timer was in place, it was a natural next step to break it down into something that could record individual level performance. That way, in tandem with the level select, the game keeps track of your individual performance across each and every level. When you set a new best time for the level, it replaces the old one and updates it on your select screen. While this is something intended for runners, I think it’s a fun aspect to have for anyone. I would’ve probably enjoyed having it back in my more competitive days so I could gauge my own performance and try and outdo myself (and possibly brag to my friends).

Level Select Screen

Every Little Bit Counts

It’s entirely possible nobody out there will ever speedrun Station Zeta. Regardless of whether they do or not, the idea of seeing it up at a GDQ or some other speedrunning event helped me think about aspects of the game I might otherwise not have.

It took some extra time and effort to incorporate these changes, but ultimately they make for a better player experience no matter who's playing. If it ultimately ends up encouraging someone to phone a friend* and stage an impromptu race? Well, all the better!

Don't forget, Station Zeta is available to wishlist on Steam right now!

Run, jump, shoot, and think your way to safety in this retro-inspired 2D puzzle-platformer. Station Zeta is out of control, and you'll have to deal with crazed robots, terribly designed station machinery, and blatant safety hazards as you try to make your escape across over 35 levels.

    <a href="">Station Zeta on Steam</</a>

*I kid, of course - nobody uses the phone anymore

Return to Home