Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 23, 2014
arrowPress Releases
October 23, 2014
PR Newswire
View All
View All     Submit Event

If you enjoy reading this site, you might also want to check out these UBM Tech sites:

Game Feel Tips I: The Ghost Jump
by Mark Venturelli on 08/10/14 02:42:00 pm   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


(This is a repost from my personal blog)

I want to kick off a series of mini-articles where I’ll provide quick tips on game feel. So this week we’re talking about what I call “the ghost jump”. This seems to be one of those things that are useful to everybody no matter how old the advice really is, so we’re kicking off the series with it.

Video games have this ugly thing going on called “latency”. It’s not only related to networked games, unfortunately – your single-player platformer will have latency from video as well as input devices. I’ll dedicate an entire “game feel” article just to talk about latency, but for now let’s look at one of its most common and frustrating effects: the Bullshit-Fuck-I-Pressed-The-Button-and-I-Still-Fell-Into-the-Sodding-Pit”, or “The Bullshit” for short.

The Bullshit happens when you try to jump from the very edge of a platform to maximize your jump distance. But, alas, the game raises you the middle finger as your character stupidly falls to its demise without ever attempting to jump. Most of the time, it is not actually the player’s fault: a combination of input and video latency gives them the clear impression that, in fact, the button was pressed while the character was still on the platform.

Other times the player really did press the button a little too late, but unless you’re an asshole you really don’t want to punish him/her for that, do you? My school of design, at least, is focused on decision-making and quick thinking instead of perfect precision. Either way, latency does have an influence every time The Bullshit happens.

Here’s a playable example of The Bullshit using assets from a jam game I made called Boomerang Boy (Windows only, sorry about that):

Download (.zip, ~10MB)

So what do we do about it? The solution is quite simple: implement a Ghost Jump where you actually allow players to jump off a platform that is no longer there.

The way I usually go about it is to have a “Ghosting” variable that determines a delay to be used every time you would switch a character from being “grounded” (that is, able to jump) and in “mid-air” (not able to jump since he is already falling). So the game considers that a character is still able to jump for X seconds after he already fell from the platform, with X being the ghosting amount.

Press “G” in the example playable to toggle it on and off.

In the example above I used 130ms of ghosting, and I think it feels great. Even if you are offended by the notion of giving the player a little leeway on the jump timing, you should use at least 50ms of “ghost jumping” just to make it fair – this should be enough to compensate for most latency issues.

Oh, one last thing: don’t design levels where you require players to jump from the very tip of a platform because every time you do that a little baby dies of cancer.

Until next time!



Related Jobs — Hunt Valley, Maryland, United States

Graphics Software Engineer — Chicago, Illinois, United States

Graphics Software Engineer
WB Games
WB Games — Kirkland, Washington, United States

Principal Technical Artist
Demiurge Studios, Inc.
Demiurge Studios, Inc. — Cambridge, Massachusetts, United States

Senior Software Engineer


James Morgan
profile image
I've had the "Bullshit" moment in more than one game, yet I never thought of creating a Ghost Jump period like this in a game I wrote. Thank you for the excellent suggestion.

Aaron Oostdijk
profile image
I do the same thing, but more for reasons of people running off of platforms by accident rather than input lag. And indeed some designers immediately made jumps nearly impossible without ghost jumping, which we promptly prohibited.

I use this idea of a "lag variable" on a lot of different systems too, such as when a character lands on a platform after jumping through it from below, or when users click on objects that might be moving rapidly across the screen or are going out of "use-range".

Rakib Solewalker
profile image
Btw, why your application was trying to access outside connection? It was also attempting to write into registry, what is the matter?

Mark Venturelli
profile image
I honestly have no idea :O

I'm not a "real" programmer, this is a Game Maker Studio executable...

Rakib Solewalker
profile image
Yeah, it is the game maker, never mind :)

Ian Morrison
profile image
We used this in our platformer, made an enormous positive difference in how it felt to jump around. It also gave some useful leeway when passing over rough terrain, downwards slopes, etc, where the game character occasionally losing contact with the ground for a frame was a regular occurance. Before, those moments of non-contact disallowed jumping entirely. With the jump forgiveness implemented, however, a missed frame or two of ground contact never caused a jump not to fire when it looked like it should.

Ron Dippold
profile image
It's also really bad when FPSes set up that situation:
- You /must/ be running (click down left stick, which is not the easiest when you're holding it forward and trying to keep it straight)
- You have to jump right at the edge.
- Missing the jump is instadeath.
- You can't see your feet!

Looking at you, otherwise excellent Wolfenstein: New Order, though it's hardly the only offender here. I doubt it's doing the ghosting because normally it doesn't need to (there are only about three of these in the game) and it certainly felt like Bullshit (even though you can't see your feet, I felt I'd jumped).

Bonus: one of them is right after an unskippable in-game cutscene you'll get to see a couple times. Bonus bonus: He says 'That was a dumb way to die.' Yes, it was.

Chris Hellerberg
profile image
I remember a few very frustrating jumps like that from Mirror's Edge, which I thought was great otherwise. I think there's one situation where you have to begin a wall-run at the last possible moment, then jump off the wall at just the right moment to reach a platform to your left, which you, of course, cannot see while wall-running.

Luis Guimaraes
profile image
I haven't played it yet, but if the FOV is low and not tweakable, add it to the list too. I have no problem not seeing my feet, but a low FOV is a far worse problem to knowing excatly where you are without having to look straight down all the time (looking down is fine but not for that purpose, no).

Daniel Jovanov
profile image
If only if Mega Man 9 had this feature...

Saurian Dash
profile image
Fantastic stuff! This is equivalent to having a hitbox smaller than the player avatar in a traditional shooter, or applying invincible frames to evasive moves in an action game. This approach enables the player to take action (and succeed) in extremely tight situations.

These small adjustments always make the world of difference to the way a game feels, can be applied to a multitude of mechanics and should never, ever be overlooked.

Luis Guimaraes
profile image
Anybody wanting to read more on this subject, check:

Curtiss Murphy
profile image
OMG, this quote!!! "Oh, one last thing: don’t design levels where you require players to jump from the very tip of a platform because every time you do that a little baby dies of cancer." Worth the read alone! Like the simple focus of this tip.

Mark Venturelli
profile image
Thanks for the kind words, everyone. I'll keep posting new articles here on Gamasutra and my blog. You can sign up for my newsletter if you want to keep track of my article releases: