Rocket League is car football: combining arcade-style car driving with a giant ball and goals, to achieve a fast-paced game akin to turbo-mode robot football. In this post I’ll take a look at its interface and control scheme — in particular, its use of a double-tap button input.
In Rocket League, you’re driving a car around, typically with a dual-stick controller (like the XBox360 controller). The left analog stick steers, and also pitches your nose up and down mid-air. The triggers accelerate and brake/reverse. The A button jumps, B boosts, and X powerslides. Y controls the camera mode. There is also a flip maneuver, which involves double-tapping A while holding a direction on the left analog stick, which is useful to gain momentum when hitting the ball (see goal in the screenshot above, scored by a forwards flip). Now, this may be sensitive to my skill-level [low!], but I use double-tap a lot: I flip nearly as much as I jump.
Double-tapping a movement key is something of a convention (Unreal Tournament had double-tap strafe as dodge, and various shooters have double-tap forwards as sprint) but I’ve never really liked it as a control scheme. In Rocket League it’s especially problematic because sometimes you do want to tap A twice to do a double jump, which is distinct from a double-tap A plus direction, which flips. Double-tapping is laborious to keep using, and prone to errors: you may accidentally leave too long between the taps and trigger a single press instead, or vice versa, where two single presses accidentally count as a double tap. Rocket League unfortunately doesn’t let you rebind the double-tap aspect; all other controls can be rebound, but not flipping. It’s always double-tap the jump button.
The final problem with double-tapping as a control mechanism is simply that it is slower than a single button press. There’s room to shuffle some controls around and have flipping as a single button in Rocket League; how much time would it save if X did a flip? (I’ll assume power slide becomes Y, and camera mode moves to a shoulder button). I had a quick go at measuring any potential time savings, and to check that double-tapping A is actually slower than pressing X. I knocked together a program to measure various button pressing speeds. If you want to have a go, source code is here, compiled program here (needs .NET installed). Let’s get (pseudo-)scientific!
Prompts “X”, “A” or “A A” (meaning double tap A) were presented to the user until they pressed the given button(s) on a dual-stick controller. During a random delay of 500-2500 milliseconds between each prompt, an orienting prompt “-” was shown instead. Time was measured from the presentation of the instruction to the button press (or second button press, in the double tap case), with a maximum precision of 0.1 milliseconds. Each of the three prompts was presented 30 times, making 90 trials, after a practice of 3*3 trials. Participants were me (bad form, admittedly) and one other participant who was blind to the purpose of the study. Both of us regularly play games. Here’s the results in bar chart form:
Person 1 is on the left, person 2 on the right. Green is the speed pressing A, black is the speed double-tapping A, and Blue is the speed pressing X. Both of us were around 100 milliseconds faster pressing X than double-tapping A (comparing medians). In a fast-paced game, that seems like a saving worth making.
I think the main other improvements I’d like to see is in the chat. There is a quick-chat text system which is a nice idea; one tap on the D-pad selects one of four categories, and a second tap selects a text message. It would be nice to allow customisation of these messages. I want messages like “Unlucky”, and “Bloody quitters” when a player drops out mid-game because they’re losing, or a classic “lol”/”hahaha”. Of the pre-set ones, I mainly use “Nice Shot”, “Nice Save”, “$#@!” and “Sorry”. Especially the latter two. It would also be nice to be able to send a message post-game like “Good Game” or “Well Played”.
On the matter of the post-game menu, I’d take out that “Are you sure?” message on exiting to the main menu after a game. The only options are save replay and exit, so I almost always want to head to the main menu. Even better would be a button “Play again” that starts matchmaking based on your last search.
Finally, the other key improvement I’d love to see added is an NBA Jam-style announcer. “From downtown!” “Covered like a rug on your floor!” “Boomshakalaka!”. As it is, I have to provide the voice over myself, shouting “Did you see that shot?” at the monitor (or nearby bemused cat), or more often “Oh god!” as I mis-time yet another shot or save. The great thing about the NBA announcer was that it helped you to feel amazing when you were playing well, and make you laugh even when you were getting thrashed.
And As For The Game…
Review Note: I played Rocket League launch version on a PC with a wired XBox 360 controller.