Official SSF2T: HD Remix General Discussion Thread

Obviously false. What was the financial incentive for holding the meeting over netcode this evening? The netcode is already better than what they have shipped in the past. Capcom has done dozens of things to show that they obviously care a great deal about the quality of the game, and they are going to great lengths to make sure the game is great.

But they’re in a bizzaro land where Capcom/Backbone will do some very hard things in the name of quality (screwing around with smoothing, etc), and not do a very simple thing that could solve problem once and for all.

Your second statement is the important one. The evidence to me says that Backbone does not understand why GGPO is great and their solution is only good. They’re blindly copying and then throwing ideas on the wall and seeing what sticks. Backbone added rollback because they know GGPO does rollback. But now they’re adding things to basic rollback that actually defeat the whole point of the algorithm: to preserve consistent move timing across a wide range of network conditions.

Copying the code may make some small amount of sense but really what they need is to understand the algorithms. It’s been clear from the start that they are trying to reverse engineer GGPO and they haven’t quite gotten it right.

UDP packets are not reliable, any system has to be prepared to send them multiple times. However I suspect (based on nothing) that GGPO pre-emptively deals with potential packet loss by sending redundant data whereas ST:HD only re-sends packets when they know one has been dropped.

If one out of every three packets is being dropped but every packet has the last 3 inputs you’re in pretty good shape. If one out of every three packets is dropped and you don’t resend packets unless you get a NAK that would cause much more noticeable degredation and much larger rollbacks.

Not what I meant. GGPO sends a packet every frame even if it could get away with not doing so. For example, if both players are just standing there doing nothing GGPO will (currently) continue to send 60 packets a second to keep them in sync. This is strictly unnecessary: if no one’s pushed a button, there’s no reason to send anything over the network. That’s a gross oversimplification, but that’s the basic idea.

So why send the packet? Because 3.6 KB/s is small enough that no one’s complained. :wgrin:

Since this is getting all techy (which is cool :wgrin:), I figured I’d repost some Q & A that I had with Gary Lake (Network programmer on SFHD) in one of the posts in his blog, in case people had missed it:

There’s a few noteworthy things here:

  1. Apparently they are sending re-dundant data. However, it’s unclear as to how much and how often.

  2. They’ve optimized the code to *not *send data every frame. For the most part, this sounds good. However, I’m now wondering if this means that they’re sending less redundant data because of this. If so, I wonder if that hurts things more than it helps on connections that are prone to packet loss.

  3. The phrase “Specators can often be treated as unreliable” seems weird to me. I’m not sure if that implies that only the initial setup between spectators and players is reliable, or if there’s more reliable packets being sent between players and spectators. I don’t know if it’s changed since the patch, but in the original beta spectators clearly caused lag in the matches you were playing. I wonder if some of the problem with SFHD’s online performance is caused by spectators? If nothing else, voice data from spectators is an overhead that GGPO hasn’t had to deal with.

I’m so conflicted on my feelings regarding SFHD’s net code. On the one hand, it’s really cool that they seem to care, that they’re doing open betas, patching the beta, putting up blog posts, answering questions, and inviting people to play tests. I mean really…all of that is way more than most companies even think of doing. And that’s rad!

On the other hand, there’s an obvious way to make this game play the way we want, and they’re not taking advantage of it. And not even inviting Ponder to the online play-test just seems silly to me. I dunno. I really hope they figure all this stuff out. We’ve been spoiled by GGPO and it’ll be a shame if all of this effort results in a sub-par experience. :sweat:

To be clear, I was invited to the online play-test, but the scheduled time conflicted with my day job and I was not able to attend.

I’m hoping that Capcom does another one of these gatherings, except this time with Ponder and a few other people in the mix. I think only 3 intended people showed up and it seemed like they had more coming but they weren’t on.

It also didn’t help that trying to even keep all the players in one room was a pain. I spent about 15 minutes trying to get into the room with Derek and Cigarbob, ironically after I said “I haven’t really experienced any game connecting issues.” We couldn’t even get a room with a full 6 because I’m pretty sure once we hit 5, the room gets kinda screwed over. The game randomly chooses not to start and no one can get into the room despite us having one open slot.

I will say this… Gameplay Netcode, sure, that needs to be worked on… But trying to connect into a game? I think that’s something that should be addressed first <.<;

Cool read, SweetJV.

I think, in the context of his response, what he meant was that they don’t worry as much about the perfection per-se of the data being sent to spectators, which is a good thing. The netcode should deal with the active players first and as well as possible, and everyone who’s just watching can nibble on leftovers.

These whole posts were so trooth.

I hope so too.

(I also hope the guy who shuts the conference room door yells “This discussion is about to explode!!”)


Something I thought of: emulation and ROMs (including arcade boards) have always been a bizarre, quasi-legal affair… not quite straight-up piracy and not quite a-ok. Most old-school video game companies have just turned a blind eye to it for their fans for whatever reasons: a fondness for longtime fans (they probably loved those games too), the fact that it’s not harming their profitability (it’s pretty well all out-of-print stuff), the overwhelming impossibility of actually stopping it (it’s the frickin’ internet), or how much they’d look like assholes if they tried (nobody likes Metallica).

Is it possible that Capcom as an entity would like to ignore GGPO as much as possible because of this? Emulation/ROMs are an issue I’m sure they don’t want to confront in public. The can’t condone it but they don’t want to condemn it. Collaborating with or consulting its creator or full-on implementing it in a commercial title is way deeper than just name-dropping in blog posts. They could be worried that directly acknowledging GGPO in such a major way forces them into that position. They wouldn’t want to take legal action, and they don’t want to take it down, but they don’t want anyone to believe it’s okay. They don’t want anyone to think it’s right.

Big businesses are often willing to go to great lengths to keep the general public from getting certain ideas in their heads. Maybe they’re just scared of GGPO. To them, it could be a terrifying, slippery slope towards not being able to turn a profit off of anything. Maybe they’re worried it will ignite some sort of anti-capitalist revoluion and cause the world to descend into anarchy. Of course I’m exaggerating here but it helps to get my point across.

Well, that’s good to hear!

So, I finally got my first chance to play the patched beta tonight. And I noticed a couple of things…besides the fact that my shoto play is mediocre at best :rofl:

  1. This version of the beta is still quite buggy. I sometimes had to try several times in a row to join a session in progress from someone in my friends list. I also got locked in a black screen once when my match was about to start and had to quit out. I also got the thing where your power bars are corrupt. Both people showed 3 wins and the power bars were completely whacked. After ~5 matches it was still this way, so I re-started to get rid of it.

  2. Net play seems better on OK connections, but is still awful on bad connections. I started playing around 12~1am maybe. Most of the people then were semi-local. But once it got to ~4am most of the people I played were far away and the laggy connections made the matches kind of ridiculous. If the developers wanna see how odd this game can get, 4am is a good time to do so.

  3. I’m not crazy about that new smoothing feature. Every time I re-started the game I played about a dozen matches with it on and then shut it off. It seems better with it off to me. The difference isn’t super noticeable, but it did seem slightly better to me with it off.

  4. I can’t put my finger on it, but something feels just slightly off with this game. Timing your first move to coincide with the start of the round. Timing reversals. Doing a late meaty roundhouse at max range. Part of me wants to chalk it up to me being sucky with shotos, or the wide-screen zoom-in being unfamiliar, or the HD sprites throwing me off. And that could be it. Still, something is nagging at me that something is just slightly off with this game. I’m not sure if it’s me, the aforementioned things, or the net-code. But for some reason it feels a little weird to me.

On a side post-Evo note, from the impressions I got, I think the overall changes being made to this game for remix sound really good. I think some match-ups will change, and that might freak people out at first. But for the most part, it all sounds really good to me. I could nitpick about a thing or two, but from what I can gather I think that this version of the game is going to be really cool. If they can get the kinks of the net-code figured out, I think it’s gonna be a lot of fun!

i just got back from southeast asia straight to playing ST and this is exactly how i felt about the new upgrades too…janky and jittery. the game got has slowed down and i can feel that. i’m not sure if i like it slower now since i got used to the faster speed but i feel that it is less scrubby. i feel that i can do more fake corner fireballs and people are getting punished more by trying to jump into me.

for the smoothing portion that we were talking about when we played. I think what Derek was implying, was that when the connection or ping gets bad, the smoothing feature will kick in. Basically meaning the game will go from a heavy rollback fast forwarding nature to the more jittery looking game that we are currently experiencing. I don’t think he meant that they will introduce extra frames of input delay. This is what was pretty much being said during the session. So i wouldn’t worry there. Unless you like the old fast forward and rollbacks more than jitters.

And as for input drops, the game still feels fine input wise. Everything still comes out like butter for me. and i get reversals a lot…

ill bbl to post some more on my thoughts

I think we can pretty much concede that SFHD won’t be ggpo quality, but just “good enough”. There’s always SF4 though:tup:

I thought SF4 was going to use SFHD’s netcode?

Sounds like they’re working real hard to get this right. It also seems that they believe they cannot simply slap GGPO in, hence all the time optimizing their own code. So seeing what they are spending their time on, I’m content to keep waiting. I wouldn’t want a sooner release if it meant an incomplete game was the result. But can you see the end clear enough to start releasing rebalencing updates again?

Can someone just quickly explain to me why it seems so darn difficult to produce good netcode for a 2D game than something seemly more complicated as Halo 3 which could have 20 odd players running around with snipers. :confused:

FPS’s usually do something like this:
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
http://developer.valvesoftware.com/wiki/Lag_Compensation

For a brief summary:

  1. There is a master server which has the authoritative state of the game. It’s running many milliseconds ahead of all the clients.
  2. Clients time stamp their inputs, execute them locally after some fixed delay, and then send them to the server.
  3. The server verifies the client input isn’t bogus, applies it to the game world, and sends updates down to each client.
  4. The client buffers some number of updates, interpolates the result at the endpoint and renders.

As long as the ping to the server is less than the input delay and the client buffer, you won’t see popping or rollback. This wouldn’t work at all for Street Fighter because the delay introduced would make the game unplayable.

For example, in the picture at the top of the first link, there are ~500ms of latency introduced between what you see on your screen and the actual state of the game. That’s the equivalent to 30 frames of input lag in SF.

Thanks Ponder :slight_smile:

Also interpolation in 3D is a lot easier to do. Or at least looks better.

I don’t think point #2 above is true. Typically what clients do is run their input immediately assuming that it will most likely be correct, then interpolate between what it computed and what the server computed. This is covered as part of the first link under “Input Prediction.”

You won’t see rollbacks because the client and the server will probably agree, and if they don’t agree the client can smoothly interpolate. (Most of the time)

You don’t really get input lag in most 3D games, what you get is typically state lag where the state on the client can differ from that of the server. From the first link:

One problem with 2D games is that you can’t do smooth interpolation between frames, and even doing smooth interpolation between coordinates can look weird.

Thanks margalis so SFIV and Capcoms other 2.5D fighter may not experience the same problems?

Fighting games will always experience these problems. There’s no way around it. What other games require that every single input be recognized almost immediately? There’s a reason why sniping in FPS games online either seems way too “easy,” or impossibly hard. In most FPS games, the game has to give you hits that you didn’t earn because it can’t determine if you actually should have hit the person or not - the game gives you the benefit of the doubt and just gives you the kill. There are a handful of games that don’t do this, and in those games sniping is near impossible.

Now imagine if Street Fighter did that - every time you do a reversal, the game gives you the benefit of the doubt that you did it with perfect timing, and you hit your opponent. Nobody would ever be able to attack a downed opponent. And the game would suck ass. So instead of that handicapped version of the game, coders are trying to make it so that every single input is almost instantly recognized and accurately applied to the game. It’s an impossible task, at least with current-gen internet technology.

At this point, I think it’s more of an attempt to mask the lag. You can either have the lag be ridiculously apparent, such as they did with 3s/AE online where the games ran in slow mo…or you can try to hide it completely by just not showing it, a-la Soul Calibur IV where your inputs become massively delayed, but the game runs at normal speed…or you can try the rollback system that GGPO and STHD are using. Personally, I prefer the first option, because at least I know when I’m playing that the connection is shit and the game is going to suck ass.

My major, MAJOR gripe with the STHD netcode is that the game seems to be running fine…until you realize that you can’t get a reversal at all. I’ve been in many games where the person I’m playing is complete garbage, but they are able to get free jump-ins and walk up sweeps because reversals don’t translate properly with lag. The experience becomes nothing like playing the game offline, because you end up having to adapt your game plan and stop trying to do reversals and such, and play extremely defensively. Or else, you can abuse the lag yourself. I’ve been in games where literally every time I attacked, the game showed me hit the guy, then the game took it back and I got reversalled. WTF? How can you even count that as a legitimate match? It’s obvious the guy on the other end is either just spamming DPs, or else for whatever reason he’s not experiencing the lag that I am.

I really don’t think we’ll ever have truly lag-free online play in fighters with current gen technology. Pretty much everyone has taken a stab at it and failed. GGPO is a good attempt and the best one so far, but even that has its issues. For now, we’re just going to have to write off online play as “casuals” and only consider offline play as truly tournament-worthy.

:confused: