It's been an often discussed subject why Capcom hasn't used GGPO technology in their fighting games. While they've used net code that resembles it in some of their 2D fighters, this approach has been noticeably absent in many of their games with 3D models like the Street Fighter 4 series and Marvel vs. Capcom 3.Why is Capcom not using GGPO on all of their fighting games?
Seth Killian: GGPO has been fantastic for 2D-style fighting games, and the dev teams here have been very pleased with our results.
That said, it is not as easy to impelement for games that use 3D models and other very processor and/or memory intensive functions. Those processor and memory intensive functions make roll back much more, "expensive," and depending on the design architecture, it can be prohibitive in some cases. That doesn't mean those challenges can't be solved, but it does mean it's definitely not as simple as it might sound.
I can't get in to much more detail for two reasons I hope you can accept:
1) Although I understand parts of the process very well, and have some understanding of coding, I am not a programmer or a network engineer. I have been in enough of these technical discussions to see some of the challenges, and see that they are not able to be solved immediately by back-of-the-napkin math.
2) Getting into further technical detail would point to pieces of our internal development that are sensitive industry info.
For the record, you don't need to sell me on GGPO :) I started talking about GGPO at Capcom literally the day after I started (yes, literally). Since that time, Capcom has been very impressed with the results and the tech has attracted some other big internal advocates, including Christian Svensson. As a result Capcom has not only licensed GGPO officially, we've gone from using GGPO-style netcode in games like Super Street Fighter 2 Turbo HD Remix and MvC2, to the real deal with the more recent Final Fight: Double Impact. Capcom is most definitely not done with GGPO.
Anyway, you'd be hard-pressed to find bigger GGPO advocates than myself and Sven, but your voices are a very valuable contribution to that dialogue here, so if you have strong feelings like I do, please continue to share :)
GGPOish technology first appeared in hardware-intensive 3D games, like 1st person shooters, so it doesn't make a lot of sense to bring that up as a limitation.
Seth Killian: There are some major dis-analogies between Capcom fighters and some other games that use 3D models (for instance shooters are able to use predictive rollback in a transparent way much more easily for a variety of reasons (ask Ponder!), although YouTube is also full of outraged, "I shot first!" videos showing that there are still some problems).
I'm sure it's possible to make a 3D fighter where it might be as simple as what you suggest, but in our case, it isn't. Beyond reiterating that, "I am not a (real) programmer," and some internal issues about the way the games are built, I will add at least that when I was making some of the initial pushes for this tech, I came to the table with many of your same views. I'm still bullish on GGPO, but I've learned the hard way that it's definitely not as simple as it's being described here. Far from impossible, but also far from simple.
The only games that have used GGPO are various Capcom games from Backbone Entertainment and Blazblue.
Svensson: To be clear on a few points, to date, I believe the the only commercially released game using GGPO anywhere has been Final Fight: Double Impact (or at least, it was the only one... if there's something that's come out after it that I'm not aware of, apologies). I am aware of other games in development using GGPO, but not yet on the market that I'm aware of. Until they're in the market, let's not sing their praises just yet (though I am happy to see Ponder getting more support).
Other games have used "similar gamestate replay" concepts but not GGPO specifically. And please stop comparing 1st person shooters to fighting games in terms of networking and predictive code. They are apples and oranges in terms of the sensitivities of having predictive collision, arbitration and error correction. They are not less challenging, but they are different.
Lastly, I thought Blazblue used variable input delay, not fixed frame like GGPO (I'm sure someone will correct me).
@RoKtheReaper
In this context, "expensive" has nothing to do with money, he's talking about system resources. All the data being moved around makes it harder for GGPO to work than in 2D games.
@Greyline
Thanks for pointing that out, re-reading it, I found that he was talking about the context of how much the system would actually be using in terms of it's memory and processing power. So, they're basically saying that (I'm sure Xbox) wouldn't be able to really utilize it because it doesn't have the strongest processors and the power to do what needs to be done.
Damn, sounds like Xbox is holding the gaming industry back a bit. Which sucks since I have one. Maybe they should release a Xbox 540 or something.
"Expensive" here is probably means memory use, not just programming time.
GGPO is easy when used in conjunction with an old 2D fighter, as your PC has more than enough RAM to run ST or 3s several times over, but when it comes to a big 3D figher like Tekken or SF4 things become different.
Try firing up SF4, go in to a match, alt-tab out and start task manager. How much memory does SF4 take up? Now if you want to save the complete game state for another frame, (worst case scenario) you'll need at least that much memory again. Now do it over for 3-10 frames, if that's the amount of rollback you want to be able to do.
With an old game, GGPO could just store the entire game state, transmit it even, much the same way you could take multiple save states (and email those relatively small files) when playing ST or 3s over an emulator. SF4 uses a LOT more memory, and this approach becomes impractical pretty quickly.
"""Posted by RoKtheReaper on December 23, 2010 at 2:37 a.m. #1
"Expensive", to me it sounds like it once again comes down to monetary gain. Though, that's understandable, CAPCOM is a company, but are you placing a limit on the quality you will give to us?
We are already getting DLC for MvC 3, got a lot of DLC and including Yun and Yang (If they come) for SSFIV, made us buy a new disc and everything else.
I feel that CAPCOM should be looking to better their online, especially since they have been saying MvC 3 had online issues due to 3 on 3, and that the 3 on 3 with everyone controlling one char was thrown out. We have been supporting CAPCOM a lot lately, all of their products, and will in the future, so no matter the expense, giving us the highest quality of online play should go without saying if you really care about your consumers.
Nuff said."""
The use of the word "expensive" was in reference to the system resources needed to "pay" for certain things to occur while in gameplay. It has nothing to do with money.
Mr_Clack - yeah and they they need to move like 200 million people from all the other states into California so that the fiber networks will reach everyone, the companies can get a good return on their investment and we can all play with green bars.
LOL, he is talking about 3D, while they only need to process inputs + calculate 2D-hitbox collision in SSF4.
Only amateurs would send anything beyond this data in online matches.
At least in SSF4 there is no real 3D hit-detection, this is why there are so many weird crossups/attacks.
#10 What if you were to lose sycronization and the character ends up one character space futher than usual? How can input detection solve that? If you don't consider the entire game as a whole then you run into problems like that. Nothing is ever as simple as it seems Zero, if it's as complicated as they make it im sure it is.
That sucks, the online in this country and I'm sure a few others just suck. Sometimes I'll just stop playing the game and do something else, because lag often shows its ugly head when it's not wanted.
In a fighter where there is more than 2 characters in a game...lag would be a whole lot more detrimental.
I've often thought about how we could get online experience to similar to offline, and I'm sure something in the future will come out to solve this problem. Japan doesn't have much lag online and they use xbox, so it's not just about system resources as a problem. People have a variety of connections instead of just one solid connection, which means a "variety" of delay and lag issues. So either we need an ultra powerful system or just plain better internet to avoid it in the first place.
#12 Sending a "character position on stage" would be only 2 numbers in SSF4.
This game is completely dependant from frames (all moves have a certain frame number), no frames are skipped. This is why the game slows down when 1 client can't handle all calculations at once, it was especially annoying in the PC version (with "variable framerate ON").
So it's not really necessary to have a position-info, only supplementary, this is how SSF4 replays work.
I agree with you that there are maybe some other issues, but it's definitely not af problem of 3D, because the game uses 2D hitboxes.
@#14
I think the reference to 3d by Seth is because a 3d game like SF4 requires much more memory and processing power for graphics, than a fighter with simple 2d sprites, so you have much less resourcess to play with, not because the game uses 3d positioning or hitboxes.
Interesting. GGPO is probably possible on the PS3 for fighters seeing how the Cell processor can do specified tasks and multiple at the same time. Seeing how developers don't want to make the PS3 version superior in every way possible without screwing 360 owners out of content, we probably won't see GGPO as a standard until the 360 catches up hardware wise.
My 2 cents. Also this is the most productive bunch of comments I've seen in months lol. Cookies all around.
@Rave_Zero
But you see, that's exactly why they can't use GGPO netcode. GGPO is designed for use with old, emulated systems where it's possible to save the entire game state. With SF4, the "complete" game state is much larger.
Yes, it is possible to save the positions, momentums and status of the characters at any one time, but once you get to that point (and move away from complete save states), you're not running GGPO anymore. This is basically what Seth is getting at when he says they have to basically use their own netcode for SF4.
Doing a "rollback" in a system where you don't have the entire state saved to memory is a LOT more complicated. For instance, do you delete the entire scene and re-render the characters from a set of saved positions? Some motion or delicate positioning may be lost in this case.
Do you play animations in reverse until both machines reach a certain frame number when they were last in sync? Do you restart the match and fast forward to the last synced frame in a deferred or simple render state before restoring complexity?
You see there are a LOT of tradeoffs from not being able to save the full game state. Just open up a game replay in Starcraft II and try playing around with the game slider. You'll see it's quite easy to speed up the replay or skip forward, but very costly to skip back.
Frankly, you guys aren't considering what these developers would have to give up in order to allocate for perfect online play. I don't want it at the expense of having real matches still be excellent.
Besides, America's lackluster internet infrastructure is not really Capcom's responsibility.
to me the issue seems that the programmers and network engineers aren't really up to the challenge. They aren't trying to optimize their games while games like
Killzone 3 are graphically amazing have split screen coop and online coop with move support and 3D.
They either just don't have the skill to optimize GGPO to work for their 3D/2D fighters or they don't want to bother with it since they have a "working" system and for them japan is all that matters since it's made for their infrastructure.
I'm sure it's not easy but it's not IMPOSSIBLE...they just need to put forth SOME effort.
I could have sworn i read something about GGPO using key entry where it reads from what is being pressed so that the game thinks that someone is actually on player 2 or whatever,instead of purely reading online.From my understanding making it easier to process internet connection by making the game act(tricking the game) as if someone is simply texting u but the game responds to it. I don't get how if it does it with 2d it wont with 3d because the most it seems it is mostly sending the inputs as if im typing a instant message to them.
@tomotombo
Capturing input is not the problem, it's dealing with synchronization when someone lags.
Let's say you and me both have SF4 and we have a driver that transmits our inputs over the net. We start our copies of SF4 at exactly the same time. Any buttons I hit get sent to you, and buttons you hit get sent to me. So long as we have perfect, lagless internet the games will remain perfectly in sync and we're effectively playing each other. That's essentially netcode at its most basic.
But if one of our computers, or connections stutters for an instant, then that synchronization is broken and we'd be playing two completely different matches. I could have DP'd you on my end, but on your end my DP didnt' come out and I'm knocked down. At that point, we'd be sending buttons that are completely irrelevant to each other's game.
GGPO deals with this by constantly saving the game state, so when sync is broken it can roll back to the last synchronized saved state.
This just more Capcom PR bs. Seth's job is about 90% of the time telling us why our complaints are not valid (when they are really). Namco is putting GGPO into a 2-4 player DBZ game. 3D models and everything. Capcom = invalidated now. Everyone, I encourage you to bring that up to Seth, and ask him to get us someone who will answer the question and explain "why not" since he's incapable of doing so.
DHZ games are essentially third person shooters with fighting controls. I'm not going to reiterate how netcode for shooters work since I'm fairly certain you can just search or look up what has already been said.
And the comments here explained it better than Seth did. I'm sure these comments aren't PR bs. Anyone who knows anything about netcode programming would tell you the same.
You are assuming that the camera angle of the modern DBZ games means the engine is the same as an FPS. Until you have some actual fact on this? Your point is not counted at all. Its not a 2D plane fighter, but that doesn't mean it uses the same engine as an FPS.
Also: on the topic of "anybody who knows about 'netcode' programming"? Well hate to tell you this, but people actually involved in IT companies, private or public, who are involved in web programming and networking? Will tell you even the word "netcode" is not a real word or definition. In fact, if you look outside of the fighting game community, you will not find this word used. So obviously, you don't know too many people actually involved in programming ;p
"Expensive", to me it sounds like it once again comes down to monetary gain. Though, that's understandable, CAPCOM is a company, but are you placing a limit on the quality you will give to us?
We are already getting DLC for MvC 3, got a lot of DLC and including Yun and Yang (If they come) for SSFIV, made us buy a new disc and everything else.
I feel that CAPCOM should be looking to better their online, especially since they have been saying MvC 3 had online issues due to 3 on 3, and that the 3 on 3 with everyone controlling one char was thrown out. We have been supporting CAPCOM a lot lately, all of their products, and will in the future, so no matter the expense, giving us the highest quality of online play should go without saying if you really care about your consumers.
Nuff said.