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

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

Interview: How A Fighting Game Fan Solved Internet Latency Issues
Interview: How A Fighting Game Fan Solved Internet Latency Issues
April 22, 2011 | By Kyle Orland

Like a lot of middleware developers, Tony Cannon started developing his own tool to solve a problem he himself was having. Unlike a lot of middleware makers, though, Cannonís creation grew out of his problems as a player, not as a developer.

As a pro-level fighting game player and one of the organizers of the Evolution tournament series, Cannon was worried that the arcade culture he was steeped in was deteriorating.

"In the mid-90s, arcades were really dying, and we were in danger of losing this thing we really cared about, because everyone played in the arcades," he said in an interview with Gamasutra.

A ray of hope came in 2005, Cannon said, when Capcom announced it would be releasing a console version of Street Fighter II: Hyper Fighting with online play that could hopefully reconnect players who were no longer able to meet at arcades.

When the game came out, though, Cannon said lag and glitches made the internet play unusable.

"It was just bad," he said. "It was literally unplayable for a hardcore fighting game person. If all you remembered was Street Fighter II on the SNES and you just jumped back in after eight years and just started playing it, maybe it was good for you, but for hardcore fighting fans it was just unplayable."

Cannon started thinking about how he might fix these problems for timing-dependent games like his favored fighters, and came up with an idea he calls rollbacks. Instead of inserting any internet latency between the button press and the start of the move, his technique puts the lag on the beginning of the opponentís move, with filler animation to hide the effect somewhat.

"Thatís actually way better. You might see a little glitchiness, but all your timing is the same," he said.

After eight months of work, the first version of GGPO (short for "good game, peace out," a common post-match greeting in the fighting game culture) was ready by late 2006. The next step, Cannon says, was getting someone to notice, which was easier said than done.

He approached Backbone Entertainment -- which was working on a console port of Puzzle Fighter -- with a description of his procedure, but the process went nowhere.

"I learned something very important... a description of how it works is not enough to convince someone," he said.

A better strategy, Cannon said, was simply layering his code on top of an arcade emulator called Final Burn Alpha, with support for some of his favorite older fighting games. That way, when Capcomís Seth Killian was able to set up a meeting with the Street Fighter II: Turbo HD Remix development team in late 2007, Cannon was able to show them a demo of Street Fighter Alpha 2 and let them play live against someone from a player from Europe. The demo helped everything click in a way a simple description couldnít, Cannon said.

Backbone ended up using its own homegrown, rollback-enhanced net code for HD Remix, but the release still validated the concept used in GGPO, Cannon said.

While other companies could do the same thing, Cannon says getting a license for GGPO also brings along months of iterations and optimizations heís made for a variety of national and international internet connections, as well as testing feedback from thousands of Final Burn Alpha players.

"Thatís the real value of GGPO, I think, the concept as well as the quality of the implementation, which is very hard for developers to get in-house," he says. ďHow do you test your game out there on the internet for a year before you release it? You canít.Ē

Use of GGPO in commercial releases is accelerating, Cannon says -- the code has been licensed for Capcomís retro revamp Final Fight: Double Impact, Namco Bandaiís Japanese arcade fighter Dragon Ball Zenkai Battle Royale and upcoming indie 2D fighter Skullgirls, as well as several unannounced titles.

But whether they use GGPO or are just inspired by his lag-masking technique, Cannon says heís happy developers are finally getting smarter about their net code for fast-paced competitive games.

"Thatís been my goal from the start, to get fighting games incorporating some technology that replicates the arcade feel so I can play these games online, because I donít have time to go to arcades anymore," he said.

Related Jobs

The Workshop
The Workshop — Marina del Rey, California, United States

InnoGames GmbH
InnoGames GmbH — Hamburg, Germany

Mobile Developer C++ (m/f)
The College of New Jersey
The College of New Jersey — Ewing, New Jersey, United States

Assistant Professor - Interactive Multi Media - Tenure Track
Next Games
Next Games — Helsinki, Finland

Senior Level Designer


David Oso
profile image
damdai of developed his own simple online emulator netplay.

i'd say it's smooth too.

Matthew Chouinard
profile image
they need one for SC2 and SC4. the game is choppy online

Brad Borne
profile image
I'm pretty sure this is the tech we're using in Fancy Pants Adventures. Seeing a 4 player platformer run without any input lag, even when there's a bit of glitchiness, is mind blowing.

Why Nintendo didn't use this in Brawl is beyond me.

Kevin Fishburne
profile image
"It was just bad," he said. "It was literally unplayable for a hardcore fighting game person. If all you remembered was Street Fighter II on the SNES and you just jumped back in after eight years and just started playing it, maybe it was good for you, but for hardcore fighting fans it was just unplayable."

I'm not sure exactly what this quote is supposed to mean, but the timing in SFII for SNES was extremely precise and there was no lag at all. If anything SFII is an good example for how timing and lag -should- be in a fighting game. By contrast a lot of modern 3D fighting games have terribly slow move execution, which while isn't lag has much the same effect.

I guess by "hardcore fighting game person" he means people who like to memorize long combos or mash a lot of buttons rather than use carefully timed and placed moves combined with psychological strategies such as feinted attacks that induce vulnerable behavior, which was the bread and butter of SFII.

scott anderson
profile image
You're completely misinterpreting the quote. He's using people that played SFII on SNES as an example of casual fighting game players that picked up the game on XBLA for nostalgia reasons and don't have the same sensitivity to latency as hardcore players do. In no way was he disparaging the quality of SNES SFII, he was only talking about netplay in SFII: Hyper Fighting release on XBLA and PSN.

Sting Newman
profile image

If you can't adapt to latency you suck. Just like how Quake players in the early days of internet FPS gaming adjusted to having high ping against low ping bastards. There were many great players who adjusted to high lag by compensating for the lag through prediction.

scott anderson
profile image
Go to and tell them that :). Fighting games are usually far less latency tolerant than FPS games. In high level play, if a single frame's timing is off it can cost a match, there is no equivalent to that in first person shooters.

Nick Harris
profile image
Is there any way this technology could be used to bring more sophisticated, articulate, melee combat to an online FPS? I'd like to see a mix of vehicles, weapons, traps, gadgets, stealth and hand-to-hand in a game.

Unfortunately, I know absolutely nothing about networks.

Benjamin Quintero
profile image
I think id Software pretty much set the standard for your typical FPS network protocol. Still your networking is heavily dependent on the type of game. A 4-8 player FPS is going to have a drastically different networking strategy to say MAG.

The way GGPO works, sounds like a hybrid of FPS server/client rollback with RTS peer-peer protocol. Makes sense for a 2 player game. Small packets that let each machine handle the physics updates.

Brad Borne
profile image
What the system does is 'roll back' the game engine to an older state, then plays it back forward, correcting for the control input that it just received. From what I'm seeing in FPA, it takes a good deal of CPU to rewind and return the game state, and the more lag, the further it has to rewind, the more collision that's going on, the more stuttery the game gets in high latency games.

So, it looks to me like there's a limit to how CPU heavy the game engine can be.

Chris Skuller
profile image
Unfortunately, SSF4 doesn't use it. I haven't noticed much lag online with it though so maybe they found another way of working it out.

Martyn Hughes
profile image
We have been using a 'roll back' style of network model since 2000 specificially for sports games. We did this because the position for the ball always has to be completely accurate and we didn't want any 'warping' that can be seen in some other games. We rarely get any popping or jumping and even relatively low spec machines can handle our system extremely well.

Tomas Augustinovic
profile image
There is always going to be latency, so the problem isn't really solvable. Masking the latency is the only thing you can really do to create a smooth experience for the players.