• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Killer In-Sync? (Update: Not really)

Unison

Member
I am no tech guru... Maybe Double Helix can explain what's going on.

It could just be atrocious netcode for sure.
 

Copenap

Member
Except on his end the match had a hang up when DSP 'won' on his side. People would keep getting unfinished matches if it was common.

Yeah that's true and I don't think it happens that often, just wanted to point out that it looks like you don't necessarily notice when it happens.
 

Parakeetman

No one wants a throne you've been sitting on!
Btw OP maybe you should request for a mod-edit of the thread title so more folks actually have a better idea of what your post is about.
 

Resilient

Member
You know what I'm "getting real tired of"? People making smartass posts and talking down to people when they themselves don't even properly comprehend what's actually going on.

hang on, how is it not exactly what is going on? the opponents aren't moving to the exact same inputs on both videos. some are similar when the sync drops in and out. at the point of the de-sync, the game is stepping in to smooth the match out. at that point you're fighting AI. AI doesn't need to be an AI opponent in the sense of going into arcade mode and fighting the computer, but it can be the game stepping in and controlling the desync opponent. So how have I not comprehended what is going on again?
 
It's 2AM on the west coast. They're probably all sleeping.

It's ok an AI will answer for them while they're asleep.

OT:
dis-gon-be-gud.gif


this new gen is the gift that keeps on giving (on the forums at least, so much hilarity)
 

sonicmj1

Member
hang on, how is it not exactly what is going on? the opponents aren't moving to the exact same inputs on both videos. some are similar when the sync drops in and out. at the point of the de-sync, the game is stepping in to smooth the match out. at that point you're fighting AI. AI doesn't need to be an AI opponent in the sense of going into arcade mode and fighting the computer, but it can be the game stepping in and controlling the desync opponent. So how have I not comprehended what is going on again?

Examples?

A lot of the time the characters are in different animation states because they've been hit or something, so the moves come out differently. But I didn't see anyone make a completely different movement on one screen than on another.
 

Toxi

Banned
Wait... Darksydephil?

Fucking Darksydephil just happened to be the guy who helped find a huge game issue?

God has a sense of humor.
 

Resilient

Member
Examples?

A lot of the time the characters are in different animation states because they've been hit or something, so the moves come out differently. But I didn't see anyone make a completely different movement on one screen than on another.

They're littered throughout the video. I'm not saying it's an AI opponent but there is AI taking reign and you're fighting it when the desync happens, paired with the delayed inputs coming through. The game has to be taking control at some point, it's not a cut-dry case of the inputs just being delayed.
 

JBourne

maybe tomorrow it rains
Wait... Darksydephil?

Fucking Darksydephil just happened to be the guy who helped find a huge game issue?

God has a sense of humor.
It's the first time I've seen a DSP video where he isnt crying and yelling "I'm not doing anything!"
 

Papercuts

fired zero bullets in the orphanage.
They're littered throughout the video. I'm not saying it's an AI opponent but there is AI taking reign and you're fighting it when the desync happens, paired with the delayed inputs coming through. The game has to be taking control at some point, it's not a cut-dry case of the inputs just being delayed.

AI would have nothing to do with that, as far as I can tell it's just a desyc of the action while still keeping all of the inputs. If one side of the net is basically saying this move hit the player, the combo starts. The other side is saying the move was blocked so the move didn't hit, and KI's combos require a ton of rapid button inputs after so you see random special moves as the inputs are still being read. You see it a lot while Sadira is full screen away while doing a combo in one match, she's standing there throwing out random moves on the other.

GGPO is supposed to roll back the action when it encounters lag which can lead to weird stuff like landing a KO in third strike and having it immediately go back before the last hit and maybe you get hit instead. This seems like an issue where that rollback got messed up.
 

FyreWulff

Member
I am no tech guru... Maybe Double Helix can explain what's going on.

It could just be atrocious netcode for sure.

While I'm not Double Helix, I can try. This is some serious issue with their lockstep networking.

Most if not all fighting games use a form of lockstep networking. This means the session networks your button inputs and ONLY your button inputs. Sometimes some extra data, but due to the nature of lockstep you want to be sending minimal information down the wire.

The best way to think of lockstep networking is you're playing on your console. Your console then simulates an invisible Controller 2 plugged into your console having it's button's pressed. The buttons it presses it gets from the other person over the internet. For all the simulation knows, someone is actually playing with you on the same Xbox. Your button presses are sent the same way to the other person's console.

This... they arent even playing against each other past a point... the life bars arent even synced... the match just stops for one player when the other player's game has a lifebar hit zero.

Life bar / health data is not sent over the network in lockstep usually, so not surprised to see the lifebars not update in sync. Neither person is truly host, it's up to the lockstep networking working correctly for both boxes to stay in sync with health bar information.

This is... I mean, I've watched it once, but my brain is having trouble wrapping itself around what is going on. If this is totally legit, that's not just a few errors in syncing up, that's game-breaking stuff going on.

If you can't have any faith in what is going on on the other person's screen in the exact same fight, how can you play this to any serious level?

It's legit. The simulations drifted apart, but the button presses are still being received and processed.


The craziest part is how you can see it resync at times mid match, then desync. At times you can see the characters doing the same moves in different screen positions.

Yep. It gets a couple of lucky resyncs, but drifts again. They're doing the same moves in different positions because their Xbox is receiving the button inputs and playing them on the local simulation.

I can't watch the video from work, but can't this be just an effect of the rollback? If the game is lagging badly, it's normal to see characters teleporting or repeating moves, as the netcode tries to keep the sync.

Rollback needs a proper state to work. The state went out the door and has taken a bus on a shopping trip. It'll be back in 5 hours.


It doesn't pit you against AI, not sure where you got that. But it is fucking strange and my brain can barely comprehend what's happening with the desych stuff.

It does seem to happen with the local replays too. I've atleast seen it going through survival, sometimes I get a fight that plays out differently and messes up but still seems to keep the inputs. So a combo gets missed/blocked and it puts it out of wack, as my character then does random moves from full screen that I didn't do and it diverges from there. Online replays haven't done this for me yet, but it's super weird.

And this might be a deep engine issue if LOCAL replays drift. The interesting thing about lockstep networking is if you get lockstep networking working in the first place, you pretty much have most of the groundwork to do local game films and replays. If a film can drift, this means the engine may be having determinism problems. It could be a specific move is bugged, the input playback engine is bugged, or the simulation's framerate is not properly being accounted for and a drift occurs there.

Determinism is the idea that an action will always result in the same reaction across all boxes in the session when you press a button. For an example, in Halo firefight: I press the B button to melee. Everyone else's box sees me press B, my Spartan punches on their box. My punch was in front of an Elite, which connects with the elite. The boxes all know the elite should be dealt 25 damage, and the Elite should play his rage animation. The HP of my spartan or the elite and the engine command to play the animation are not networked. Only the button press. So that effects or AI won't respond the same way every time you play the game, boxes will share a random seed at the start of the session, and they'll use this seed so the dice rolls always end up the same way for everyone.

Lockstep is great when it works but it will bite you in the ass hard if you let it desync. Async (like versus mode in FPS, MMOs) can fix itself but it also consumes tons more bandwidth and by it's nature, everyone is slightly out of sync for the entire game - something you don't want in a fighting game.

It's certainly fixable, but there's definitely a bug in the engine here, and doubly so if drifting occurs in local replays.

They're littered throughout the video. I'm not saying it's an AI opponent but there is AI taking reign and you're fighting it when the desync happens, paired with the delayed inputs coming through. The game has to be taking control at some point, it's not a cut-dry case of the inputs just being delayed.

No AI is taking over. The button inputs from the other player are being processed, but since the simulations have drifted apart, the same button inputs won't always produce the same output on both boxes.

If AI takeover was a thing, it would have noticed DSP's box shut off the networking when he went to the victory screen because the match was over (hence why the other player just freezes - they're not longer being fed inputs, so the networking is properly waiting for new inputs to arrive), assume DSP left, and replace him with an AI.
 

sonicmj1

Member
They're littered throughout the video. I'm not saying it's an AI opponent but there is AI taking reign and you're fighting it when the desync happens, paired with the delayed inputs coming through. The game has to be taking control at some point, it's not a cut-dry case of the inputs just being delayed.

I can't see any case of something happening on one screen that isn't matched by inputs on another. The closest thing to it (at 1:36 in the video), where Sadira jumps on Calve's screen and does a spin-in on DSP's, actually corresponds to two QCF+Attack commands on Calve's screen. Blockstun in the DSP game ate the jump command, while Glacius's attack didn't come out at all in Calve's game.

You're gonna need to give me some evidence. Having an AI waiting in the background to pick up the slack if a desync is detected instead of just rolling back using the GGPO code they're already running isn't just significantly more resource-intensive from a development standpoint; it isn't an actual solution to the problem, and it's something that would piss people off if they noticed it (and they would, since it changes match outcomes). Simple bugginess is much more likely than the developers being dicks to their audience for no reason.

EDIT: Also, if there were an AI, all matches would conclude, since the AI could just finish regardless.
 

Resilient

Member
AI would have nothing to do with that, as far as I can tell it's just a desyc of the action while still keeping all of the inputs. If one side of the net is basically saying this move hit the player, the combo starts. The other side is saying the move was blocked so the move didn't hit, and KI's combos require a ton of rapid button inputs after so you see random special moves as the inputs are still being read. You see it a lot while Sadira is full screen away while doing a combo in one match, she's standing there throwing out random moves on the other.

GGPO is supposed to roll back the action when it encounters lag which can lead to weird stuff like landing a KO in third strike and having it immediately go back before the last hit and maybe you get hit instead. This seems like an issue where that rollback got messed up.

You're right, I used to notice this heaps when I'd play 3s over GGPO. Sorry for the snark earlier folks.
 

Nibel

Member
Hanmik showed me this video via Twitter and I can't believe what I am seeing

Everybody fights a different match and wins - it gives the term "co-operative online gaming" a whole new meaning
 

GavinGT

Banned
I've played dozens of matches online while voice chatting and never experienced this. I'm leaning toward it being an obscure bug.
 
FineEdgeGames1 day ago said:
Kind of ironic that the one time DSP doesn't blame the game for something is the one time that it is actually the games fault.

lmao

This is some next level shit. I got a headache watching that video
 

vulva

Member
One thing of note is that even if it isn't a common issue, if there becomes a consistent way to repro this bug, it could still really hurt the online community until a fix comes out.
 
If this was widespread, I assume people would have noticed it already

They have.

All of my friends playing the game say they get "quitters" and connection droppers all the time when they start winning the match.

I'm starting to think this isn't the other player quitting, so much as it is the game losing sync so badly and this bug occuring. It would explain why there is currently no punishment for a player leaving a match mid way through.
 
Also, this explains why no one... despite literally playing all over the US has experienced any sort of rubberband or pausing during gameplay. It's simply impossible due to latency, network structures and packet loss to have as smooth of an experience as this game portrays. I didn't realize the problem was this bad... but when literally everyone bragged about how awesome it was playing this game and how it felt "local" , there just had to be some weirdness going on behind the scenes.
 

GavinGT

Banned
Also, this explains why no one... despite literally playing all over the US has experienced any sort of rubberband or pausing during gameplay. It's simply impossible due to latency, network structures and packet loss to have as smooth of an experience as this game portrays. I didn't realize the problem was this bad... but when literally everyone bragged about how awesome it was playing this game and how it felt "local" , there just had to be some weirdness going on behind the scenes.

I've definitely experienced pausing in some matches.
 
Personally I think this is quite a smart solution to fill the inevitable gaps in connections in such fast paced games. Even better if the AI learns from your opponent and actually anticipates what the opponent WOULD do. Connections won't get better anytime soon, so I think this pretty cool. And people didn't notice the difference, which makes it pretty impressive also.
 

FyreWulff

Member
Nice post! Pretty interesting stuff.

I can try to fool around with it some more tomorrow to see how common it is locally, anyway.

The thing about online networking, whether lockstep or async, is everyone assumes it's a magic switch you throw and a game is online, and it's cases like this where the multi-verse puppet show that it really is gets exposed.
 
Personally I think this is quite a smart solution to fill the inevitable gaps in connections in such fast paced games. Even better if the AI learns from your opponent and actually anticipates what the opponent WOULD do. Connections won't get better anytime soon, so I think this pretty cool. And people didn't notice the difference, which makes it pretty impressive also.

When you get completely different match outcomes, which effects ranks and records in a competitive environment... how is that okay?
 

Papercuts

fired zero bullets in the orphanage.
Also, this explains why no one... despite literally playing all over the US has experienced any sort of rubberband or pausing during gameplay. It's simply impossible due to latency, network structures and packet loss to have as smooth of an experience as this game portrays. I didn't realize the problem was this bad... but when literally everyone bragged about how awesome it was playing this game and how it felt "local" , there just had to be some weirdness going on behind the scenes.

There are definitely pauses and normal lag situations even if the netcode is all around really solid. It also has different messages for a quitter vs. connection dropped.
 

Durock

Member
Well this explains a lot. When a friend and I are playing online, there has been times when we would both win the match. On my end I would have already won for instance and then all of a sudden he'd be saying that he won, or vice versa. Now we have an explanation as to why.... =/
 
Just imagine the fights at the schoolyard when kids will call each other quitters and losers, when it's just the game screwing them over.
 

Toxi

Banned
I feel stupid for believing in the AI theory after watching the video again.
Also, this explains why no one... despite literally playing all over the US has experienced any sort of rubberband or pausing during gameplay. It's simply impossible due to latency, network structures and packet loss to have as smooth of an experience as this game portrays. I didn't realize the problem was this bad... but when literally everyone bragged about how awesome it was playing this game and how it felt "local" , there just had to be some weirdness going on behind the scenes.
If you look at the posts here, what happened was a desynch where commands were recorded but the result often wasn't. While that's a colossal bug, it's not something you intentionally program.

Killer Instinct "feels local" because it has rollback multiplayer instead of an input lag system (which means you don't have to adjust timing as much). It still has noticeable lag sometimes like other GGPO titles.
 
Top Bottom