HD netcode Vs SF4 netcode

Discussion in 'Street Fighter HD Remix' started by Dancovich, Feb 13, 2010.

  1. Dancovich

    Dancovich New Member

    I bought SFHD a little after its release, I got a 360 and I always liked to play online. I'm not some master player but I think I play relatively well and I have a good win X loss ratio.

    For some reason, even with SSF4 knocking the door, I bought SF4 because it was cheap at an online store. I tried to play it online and the connection SUCKS MAJOR BALLS.

    I don't understand, SFHD runs fine here, with very little lagged matches and when they do happen the netcode is excelent and makes me think it is not so lagged as I might think, but in SF4 there is so much input lag that I must pratically see into the future to execute any move. I noticed offline how its easy to do reversals in this game, but I'm unable to do them online and I can do reversals in SFHD online, it's that slow.

    So how CAPCOM didn't see this? And how they didn't release a patch to fix the issue? Now that SSF4 is hiting the door there is very little hope they will fix it, so to me online play in SF4 is broken and useless, I'll just keep playing SFHD.

    Good job CAPCOM, in releasing a fighting game where just the ones who have excelent connections can play online.
  2. carbsmith

    carbsmith New Member

    SFIV's netcode is pretty cool beans in Japan, apparently. Overall Japanese games tend to lag behind on networking, unfortunately, because a) they have less experience with making online games, and can be a bit insular, and b) the network infrastructure in that country is insanely good compared to our rather crummy North American broadband.
  3. SpicyCrab

    SpicyCrab Well-Known Member

    It also helps that their country is so small, it is much easier to avoid lag when the players live a block from each other.

    The truth is that the SFHDR team figured out how to make good netplay (by emulating GGPOs method?) and the SFIV team announced far in advance that they would not be doing the same. Every one knew the net code would not be as good and then... surprise surprise, it wasn't as good.

    Kinda funny because split second timing is so much more important in SFIV.

    I have to say that I was able to do most of my combos and timings pretty consistently in SFIV when I used to play, as long as the connection was good, at least.
  4. carbsmith

    carbsmith New Member

    Eh, that's not strictly true. ST is a heavier on reactions since there's no reversal buffer and well, things that make you die happen faster. If SFIV's input lag was consistent it would be more comfortable at say, a flat 4 frames than HDR.
  5. Dancovich

    Dancovich New Member

    To me it is rocket science why a team would say something like "hey, you see this awesome netcode the other team used in this very similar game to mine? We are not going to use it".

    Does somebody know if SSFIV is announced to have a different netcode? I think if the problem was really serious in SFIV they should have learned and changed it, lets wait and see.
  6. carbsmith

    carbsmith New Member

    Strictly speaking, it's not that simple. HDR was developed by Backbone, not an in-house Capcom studio, and SFIV was developed in Japan together with Dimps, which is also not part of Capcom. The annoying part is that Capcom was convinced to license GGPO but it still isn't getting used, but then I couldn't say where exactly SFIV's networking was in development when. HDR would very much be considered a side project, and I doubt the SFIV developers were more than vaguely aware of it-it hasn't even been released in Japan after all.

    It's annoying they weren't aware of or didn't think highly enough of the kind of approach GGPO takes, but they're far, far from a special case in that regard. If you want to see dropping the ball, take a gander SNK or Namco's way.
  7. Final Atomic Buster

    Final Atomic Buster Active Member

    Maybe they've tested this with the masses, and average joe prefers a smoother looking game at the cost of delayed input to one that doesn't lag execution and can look choppy.

    I personally think those people are idiots.

    However, if I were developing, and the marketing and PR departments come out and say "but you'll lose sales because people will say that the game doesn't look smooth when playing online" and then say I can't make a decision that won't "sell", then I guess I'd have to add it in.

    But even better, I'd give players the option to choose either one. Of course, that might mean splitting the online community into two groups (GGPO code vs Lag code), but I'm pretty confident that players will choose the GGPO one pretty quickly - especially when they notice no one is playing the lag version.

    If Sirlin isn't bound by some NDA on it, maybe he can give us some insider info on why Capcom Japan won't use the GGPO netcode for their games?
  8. arstal

    arstal Member

    I think some of it may be due to low RAM on consoles.

    a PC SFIV could handle GGPO easily, but you'd need 1-2GB Ram I believe.

    GGPO, on my old comp, 3S had problems, but none on my new comp, other then it being 3S, which meant I couldn't stand playing it for more then 10 minutes.

    consoles have what 256MB of RAM.

    Seriously, the lag on SFIV about 3 weeks ago after seeing 10 straight lag abuse throw Ryus (frame adv jabl+ throw= impossible to break 100% even if you know it's coming, and impossible to break out of without mashing reversal DP, which not all chars have)- made me give up the game in disgust.

    I'll give SSFIV a chance, since SFIV is not a bad game, but I expect the lag to disgust me pretty quickly to where I'll stop playing. The input delay stuff works better in 3d-style fighters like Tekken though.
  9. carbsmith

    carbsmith New Member

    Input delay doesn't work for crap in Tekken, it's far too frame intensive. Pressing the LP button over and over is like an inescapable loop sometimes. PC memory size isn't directly comparable because of the OS overheads and stuff, but GGPO implemented properly shouldn't be requiring multiple times the RAM.
  10. arstal

    arstal Member

    Doesn't it involve running multiple instances of the game? That should increase the RAM, though I can see smart programmers heavily minimizing that.

    (wouldn't be possible in emulation though)

    Unfortunately most programming teams working in gaming aren't efficiency hounds. (especially on the PC side- Stardock's pretty good at it though, one reason why I'd love to see Stardock and Sirlin team up at some point, though will NEVER happen)
  11. Dancovich

    Dancovich New Member

    I don't understand, why should this GGPO code (didn't know HDR was based on that) require more memory and be unable to be used in consoles? Doesn't HDR use it?

    Well, maybe CAPCOM didn't know the code used in HDR was going to be better and they didn't know SF4 code would suck so much, but now they do and I believe that if they do make the same mistake in SSF4 then I'll keep my distance from that game.
  12. carbsmith

    carbsmith New Member

    GGPO only runs multiple instances of emulated games because it pretty much has to treat the game as a black box and just sends control inputs in and picks up a gamestate on the way out. If you could just minimize the amount of crap going on to the minimal things actually necessary for online gameplay rather than running the entire game it's a lot more efficient-plus which, how much processing power do you think game logic in a 2D fighter uses?

    The only technical hurdle that there would seem to be with GGPO and SFIV is the particle effects and junk, because those don't exactly rewind. Those unfortunately include not just hit effects but fireballs as well in SFIV.
  13. BeastofBurden

    BeastofBurden Well-Known Member

    both suck tbh. when it comes to console mvc2 netcode is better suited for the two games.

    otherwise pc ggpo is still the king
  14. Sirlin

    Sirlin Steward of the Realm Staff Member

    BeastofBurden, seriously...

    I can tell you what's public knowledge. HD Remix uses the same stuff as ggpo and Tony Cannon reviewed it himself. HD Remix does have voice chat and spectating though, and voice chat takes up bandwidth.

    I laughed at Final Atomic Buster's speculation. Everyone knows that ggpo/hd remix networking method is the best. I think no one seriously disputes that. But you can find in some Capcom statement somewhere, there are technical issues incorporating ggpo-style networking into SF4. A game has to be designed with that sort networking in mind. Free processing power, the way particle effects work, they way the sound system works, etc are all in the thick of the problem, though you might not realize it.

    If I make a fighting game, here's the decision tree I'd use:

    1) It will use ggpo
    2) All other decisions stem from 1.

    Corollary to step 2: Any decision (tech or design) that disqualifies 1) is not a reasonable decision.
  15. Thenarus

    Thenarus Member

    If only you worked for COJ with a mentality like that...seriously, SFIV's netcode drops so many matches for me that it's basically unplayable online at any remotely competitive level. Hopefully Super will address this somewhat, but I doubt it with the comments made in the blogs. HDR's is clearly superior.
  16. Dancovich

    Dancovich New Member

    Well, I think if GGPO have to run the entire game in multiple instances then I see why SF4 can't use it.

    But you don't have to use GGPO, you just have to use its idea. You can make a system that works transmiting only the elementary data necessary for online play and you keep only the necessary data to rollback the game in memory.

    The data that really uses up memory is the graphics and sound data, and those are just used when you actually have to render a scene, you don't have to do that to keep rollback data, you just in memory rollback the scene, apply the changes, return to a valid state and only then you render the new, fixed scene.

    Hope CAPCOM sees it as simple as I do :p
  17. Final Atomic Buster

    Final Atomic Buster Active Member

    I had a few points, so I'll ask what it was you laughed at before respond.

    Thanks for explaining the technical issues to why SF4 can't have ggpo like netcode. It really is a shame that the game has to be designed with it in mind... And kind of not what the average person would realize since ggpo was created well after all the games it works with (therefore, none of those games were written with it in mind anyway)
  18. Sirlin

    Sirlin Steward of the Realm Staff Member

    FAB, I was referring to your idea that maybe there were focus groups and people said they liked high input delay instead. The best focus group is the 1000+ post thread where everyone pleaded to use ggpo-stye networking.
  19. carbsmith

    carbsmith New Member

    As mentioned, particle effects+rollback = problems. If you have Halo 3 you can see this in the replay system, which is incapable of doing a simple rewind, and even if you do a "jump back" to a point with a lot of explosions and effects it often won't look the same as when you play through it. It was a massive technical hurdle for Bungie to even offer those limited points to back up to.

    I forgot about the processing overhead still being an issue because of the way the game was produced. SFIV is barely crammed on to consoles from the arcade version, so yeah, there's like no spare overhead there no matter how do-able it would be if they had it in mind originally.
  20. arstal

    arstal Member

    I have a feeling that GGPO fighters won't be a console feature until the PS4, but it will happen from capcom then.

    Well, hopefully Blazblue also. Blazblue may not be using GGPO, but it's definitely compensating somehow, and Blazblue only uses 50-60% the 360's power, so it could spare some processing. (that quote was from Aksys)
  21. daniel c w

    daniel c w Member

    The only memory that has to be avaiable multiple times for GGPOing is the data that represents the logic, and that is not a lot - I dare to say that it is more in the magnitude of kilo- than mega-bytes for the average game.
    The majority of memory in games is used for assets.

    Quite the opposite should be the truth.
    Game programming is propably the most performance-hungry softwaredevelopment sector. Even premature optimation isn't froned upon here.
    A 5% increase in performance would be unnoticed by the typical office/web-application user, but in gaming it can make the differance between a fluid & an intolareable framrate.
  22. daniel c w

    daniel c w Member

    Do you have a link, that shows the problems?
    Or could you explain the problems to me?
    I do not really get why retunrning to an older state is a problem when using particle effects.
  23. Dancovich

    Dancovich New Member

    From what I understand about the way particle systems works, it is very difficult to reproduce the same effect twice, so after a rollback the particles that were emited won't be emited exactly the same as before.

    I think you can see this effect in HDR, to me when I'm using Blanka and I do an eletrocute move and it "hits", after a rollback to fix the fact that my oponent actualy defended the "shock" effect will keep showing, ignoring the fact that he wasn't hit.

    But to me it is a minor issue. The above effect in HDR has zero impact on gameplay, so not reproducing the particle effect the same way should be no problem too.
  24. Sirlin

    Sirlin Steward of the Realm Staff Member

    The blanka thing is just a bug, not the general way things work. In general, you'll notice that rollbacks of a fireball or whatever do account for the particles correctly.
  25. arstal

    arstal Member

    I'm thinking more along the PC lines then console- look at performance specs for some games, and you'll see. This is becoming less of a problem, especially for the PC-exclusive games. Big boys and console ports do suffer though.

    I think we're really starting to see the PC and console markets diverge more then they have in the past, which is a good and bad thing.
  26. daniel c w

    daniel c w Member

    Well, if somebody would say, that PC-game-programmers don't optimize as much, as console-game-programmers do, I wouldn't disagree, but there are 2 good reasons for that:

    A: there is no standard-PC, no final set of hardwarespecs to focus on

    B: the software has to be cooperative. You do not know which other applications the user started, and which resources the OS may take away from you. (On consoles you know exactly, what may happen, and it is only a tiny fraction of the problems you may run into on a typical Windows-Desktop.
    In the last generation of consoles, the game had the whole machine for itself, and that is almost still true today.)

    Anyway: I still believe, that game-programmers are the most optimizing ones.
    (the second place is porpably held by programmers who do supercomputing)
  27. daniel c w

    daniel c w Member

    Would you tell me more?
    What makes it difficult to reproduce the same effect twice?

    And why would it even matter?
  28. carbsmith

    carbsmith New Member

    My understanding, and this has all the potential in the world to be wrong, is that it's because of the determinism used. So in SFIV, since the entire fireball is a particle effect, if someone throws a fireball and a second later you need to roll back 10 frames or whatever, the game can't pick up what the fireball looked like 10 frames ago and instead would have to run back 60 frames and run through 50 frames of animation to get a "50th frame fireball"

    The best I can come up with for Halo 3 is this.
    There's some other mention of campaign not being able to jump back partly because of the way NPC dialogue is determined as well. Now, keeping in mind Halo 3 has to have a jump back point every 10s for as long as a 30min multiplayer match, which is 180 different frames, maybe some of that limitation is less relevant to GGPO rollback, but it still depends how the graphics engine functions. As I mentioned, even when you do step back in Halo 3, some effects can be missing.
  29. daniel c w

    daniel c w Member

    Thank you carbsmith.
    And thank you Dancovich.

    I'll take some time to look into it.
  30. Dancovich

    Dancovich New Member

    Because particle effects are simulations, you start at a state and end in another.

    In the case of a particle system you start with the "particles" in a determined place and then give each particle a direction and speed. Depending of the particle that direction and speed can change mid-simulation.

    Now, when you rewing lets say, 10 frames, you must know the direction and speed the particles had 10 frames ago. If a game has a simple particle system, like I think HDR have, you can afford the memory and resources to keep, let's say, 30 frames of animation in case a rollback is necessary. But if you have a complex particle system with hundreds or maybe thousands of particles, keeping even 10 frames of directions and speeds for each individual particle is a huge resource hog. In a game like SFIV I think it is very easy to have that amount of particles showing at the same time. Add the fact that modern video cards can simulate the particle effect in video memory (in the past you had to use the system memory) and video memory is also used to keep textures so if you had to keep 10 frames of particle data in video memory there wouldn't be any left for textures and the game would look like crap.

    Now your second question: "And why would it even matter?". Well, honestly I think in the special case of SFIV it doesn't, you just need to know where the entire fireball was 10 frames ago (its just one XYZ coordinate) and be done with it, the fireball don't need to look exactly the same, but the only ones who can answer this question is the programmers of SFIV.

    I'm not an specialist so if anything I just said is wrong please someone be kind to correct me, but I think that is basically the reason GGPO is difficult to implement in SFIV and other resource intensive games.
  31. PoisonDagger

    PoisonDagger Active Member

    Seems like it's only difficult/resource intensive to use GGPO for a 2D fighting game if you implement the graphics incorrectly - for instance, relying on techniques that can't be easily rewound. It's a 2D fighting game. You can afford the extra memory for extra animation precision and statically-animated particle effects if it helps contribute to an online experience free of input lag.

Share This Page