1. Hey Guest, looking for Virtua Fighter 5: Ultimate Showdown content? Rest assured that the game is identical to Virtua Fighter 5: Final Showdown so all current resources on here such as Command Lists with frame data, Combo Lists and the Wiki still apply. However, you can expect some VF5US specific changes to come soon!
    Dismiss Notice

Justifying Online VF ( Ver.C Tier List Side Topic)

Discussion in 'General' started by SDS_Overfiend1, May 27, 2008.

  1. Sorias

    Sorias Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    You may not like the idea of predictive inputs... but it doesn't change the fact that it's the correct answer to the problem. That's just how computers work... the internet doesn't guarantee every packet takes the same route, nor does it guarantee that packets arrive in the same order they were sent. The most lag free connection imaginable can still occasionally have a single packet that takes unusually long to arrive, it's just built into the system.

    To combat that, the game just has to be smart enough to respond on it's own for short amounts of time. If you start an evade, you're stuck in it for 19 frames, noone cares how much lag occurs during those 19 frames because it's guaranteed you're not doing anything else. That breaks down, though, when you get to blocking and/or 0frame throws, since there's no execution time to allow things to sync before the proper action takes place. At some point, the computer's just gotta guess, and if it's wrong, then hopefully the lag time is short enough that it can correct before anyone notices. Human eyes aren't responsive enough to tell if there's 3 frames of throw escape animation, and then suddenly the game switches to the 4th frame of a successful throw and continues from there, because it took 3 frames before the internet informed us that your opponent didn't actually escape.

    Of course, it's easy to point out some serious flaws in my simplistic example above. That's why it's hard to write good netcode... the designers have to know exactly what the game engine says is possible at any given time, and make sure that the computer's guess always chooses the option that would look the least distracting if it's wrong and has to correct. And, at some point, if the lag's too heavy, the computer just gives up and pauses, which I'm sure we've all seen.
     
  2. BlackDragon37

    BlackDragon37 Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    Dude, it's GGPO.

    GGPO.
     
  3. Slide

    Slide Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    GGPO wasn't so great.

    Anyway, VF5 online is special because VF's buffer window is so huge compared to other games, it works out really well for it. You can buffer moves in VF and have them come out, fastest timing.

    Most other games, don't give you this kind of lead. So basically like, say you have a move that's -12 and you know it is when you guard it, you're already inputting your PK or your throw in the guard stun and recoveries. So once the window opens PK or throw will come out fastest timing.

    Other games, they don't have such large buffer windows, so it hurts.

    All of this is IMO.
     
  4. GodEater

    GodEater Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    That's....something I never expected to hear. GGPO is a fantastic representation of net code and what it can do.
     
  5. XBJX

    XBJX Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    From my personal experience, ggpo is just as terrible as xbl and psn. Anytime on ggpo, when I hit my opponent, their damage sometimes won't go down or when I hit them on the last hit, the KO icon appear and stay there while they're standing, still fighting me. I'm the minority here, since most people have playable connections that I've heard.
     
  6. seven5suited

    seven5suited Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    I think it depends on what you think the problem is. Predictive inputs making it preload animation solves the visual smoothness, but does absolutely, positively nothing for the problem that is being complained about in this thread. When complainer X hits P at frame 306 (of the total game) they don't want it registered at frame 307, and no kind of predictive inputs will help that because it's already after the fact by the time the system compares predicted versus actual. It's physically impossible to SOLVE the problem, which is why my halving-the-clock suggestion is a way to MINIMIZE this problem.

    In fact, I would even go so far as to argue that the fact that all he could allude to is a potential solution to ANIMATION problems versus INPUT REGISTERING problems (which is what can sabotage the VF experience) makes me even more pessimistic about it being taken care of any time soon.

    Either the game has to wait 'til the data shows up to compare who hit what when (which it seems to do now, to a certain hiccup tolerance), or it goes on and ignores that missing data for seamlessness (worse idea).

    <best guess> With the error-correction algorithms that are probably in place, it takes more than a lost packet or two to cause problems. So, as internet connections get better this problem will shrink until it is virtually gone. (and we will be in the nursing home playing VF17 by then) </best guess>

    At the risk of being repetitive, the existing problem is the system needing to know EXACTLY what frame you tapped up or down to initiate that evade. You're right that no one cares about the 19 frames of evade, but you'll never get that 1/60 of a second back if it's missed at the FIRST FRAME of the input, predictive inputs notwithstanding.

    So, what this guy is describing does 0% to solve the problem that separates online VF from offline VF. But, it'll LOOK great.
     
  7. Sorias

    Sorias Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    You've misunderstood both the problem, and my explanation. If you hit P on frame 306 it is *literally impossible* to guarantee that your opponent knows by frame 307 what button you pressed, it's just how the internet works.

    My description wasn't about animation issues at all... what predictive inputs means, is that on frame 307, the opponent's machine says "Most people press P on the previous frame, so I'll assume you pressed P as well, but I don't know for sure yet." At that point, there are 10 frames of execution before that punch could possibly come out, so by frame 316, the opponent's computer will finally get that information from your machine, and then it can confirm whether it guessed correctly or not, and adjust accordingly. But, this final step is the important part... adjusting correctly is very hard.

    There is an animation issue... you can't lose frames or create distracting looking changes when you have to update from an incorrect guess. But the much more important issue is to update correctly at all... on frame 316 everything has to be exactly correct for whether or not P was pressed on 306. If the machine makes a mistake of even a single frame while rolling back false predictions, then everything breaks, as you've noticed.
     
  8. Manjimaru

    Manjimaru Grumpy old man

    PSN:
    manjimaruFI
    XBL:
    freedfrmtheReal
    Re: Justifying Online VF ( Ver.C Tier List Side To

    However, if the lag exceeds the execution time of the move then predictive input doesnt help. It does help some though.
     
  9. Sorias

    Sorias Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    Yes, that is correct as well... that's what I was talking about in my first post, where beyond some threshold, the game just has to pause to sync up. The technique makes a pretty huge difference, though... being able to use predictive inputs for just 5 frames, means the game is playable with ~90ms of lag (about what I get to google right now), instead of ~20ms (I don't have a connection this fast to anything).
     
  10. Slide

    Slide Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    So I guess predictive inputs helps a game with neutral states, with a game like VF i'd assume it's easier just based on how frames work.

    I wonder if this has anything to do with how you can watch a replay and certain moves hit instead of being guarded and other weird shit like that online.
     
  11. Sorias

    Sorias Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    Suprisingly, I don't think it actually matters. The entire concept of predictive inputs was actually created for FPS games, where it's been very successfully applied for years. I think it's actually simpler there due to the limited number of actions (if someone's moving, the computer just assumes they keep going straight (the "teleporting" phenomenon is exactly this technique... the computer correcting locations it was unsure of)... if someone's being shot at, you don't have to "undo" shots at the wrong place, because the player shooting is still being rewarded for correctly aiming at the image of their opponent on screen, it's not so significant where that image is, exactly, as long as their always pointing at it. In many ways the exact split-second changes in action have much more minimal effects in games like that)

    <div class="ubbcode-block"><div class="ubbcode-header">Quote:</div><div class="ubbcode-body">
    I wonder if this has anything to do with how you can watch a replay and certain moves hit instead of being guarded and other weird shit like that online.</div></div>

    No, that's just cause the VF replay recorder is unreliable... it would show things incorrectly like that even back in VF4 days long before any netcode was created.
     
  12. seven5suited

    seven5suited Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    Maybe we're saying the same thing without realizing it. (Mind you, I'm enjoying our discussion.)

    I'll use the word justice in this case. I pressed P at frame x and you pressed P at frame x+3. My input arrives 3 frames late, so the system gives us a simultaneous-hit. That's unjust. However, what's the solution? Waiting 3 frames to make the comparison? No, that's holding the game up potentially while other movements may have been initiated, that need to start as soon as they go in so your brain's sense of timing plays out properly. How can predictive inputs solve this conundrum? They cannot. They only work when they're right, but how could the system have predicted my random P or whatever either of us does afterward? I don't know. I say it cannot, in a game like this with almost unlimited combinations of options.

    That's why I am discouraged by predictive inputs. They can in theory provide smoothness, but not justice. The illusion of justice is worse than the obvious injustice we have now. (out of context, that's a pretty profound sentence...)

    So, if we could agree that you can't solve the problem without breaking the laws of physics or giving perfect internet to everyone, I could legitimately argue to you:

    Halving the clock to 30fps in vf6 would be one way to accommodate reality. (Meeting the internet half way, so to speak.) The challenge would be to rework the system in a way that keeps the essence and depth within the new parameters.

    If you must shove a square peg (VF) into a round hole (internet) you have to shave off some of the edges (slow clock) or they get shaved off for you (bigger lag issues). One thing we might agree on is that you MUST shove the peg in the hole, because the future of gaming is online, not in person, and no one wants to see VF go away.
     
  13. Gernburgs

    Gernburgs Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    I have question, because I know nothing about this... If they make the lag the same for both players so:

    player 1 hits P at frame 306, player 2 hits P at frame 307...

    If there's 3 frames of lag for both people then: Player 1 input arrives at 309 and player 2 at 310, it's still one frame apart and player 1 is rewarded for hitting the button first. Is part of the problem that you can't make the lag exactly the same for both people???

    306=307-1 (-1 frame due to later press by player, not lag...)
    306+3=307-1+3

    It just seems to me, as long as you add 3 frames to both sides of the equation, the answer stays the same...
     
  14. seven5suited

    seven5suited Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    Since the data has to arrive or be counted as absent before the system even knows what to do with it, what you're saying is actually similar to what I meant by "waiting 3 frames to make the comparison" which, in effect, holds up the game pending arbitration. This would delay both players 3 frames or more, which is making the lag effect equal for both players.

    Either way you get a delay that may mess up your timing for things that require inputs which can't be too soon or too late in order to work.
     
  15. Gernburgs

    Gernburgs Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    What if you lengthen the input buffer in online mode???

    The input buffer could lengthen to compensate?
     
  16. Tricky

    Tricky "9000; Eileen Flow Dojoer" Content Manager Eileen

    Re: Justifying Online VF ( Ver.C Tier List Side To

    then people would start to get screwed up offline when trying to buffer. W/e they do has to be uniform.
     
  17. Gernburgs

    Gernburgs Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    What if they just lengthen the buffer on some moves online just so you don't drop combos. It doesn't have to be for everything but the game should allow you to do it earlier because they know you can do the combo but there's lag.
     
  18. Sorias

    Sorias Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    This isn't how it works. All internet packets are timestamped. If a packet arrives on frame 310, it doesn't say "opponent pressed P", it says "opponent pressed P on frame 307". Then your machine has to update the current state, to your opponent being three frames into a P, and work out the math from their accordingly. More importantly, lag is not consistent between the two players, they won't both have a delay of 3 frames. In fact, every individual packet has a different amount of delay, so they don't even necessarily arrive in the order they were sent. Again, that's just everything on the internet works, I'm not gonna explain it all here.

    Honestly, the hits/counterhits are really easy... there's usually enough time there to wait, and figure it, and yes, in this case predictive inputs just make it looks smoother, unless the lag is over a tenth of a second, everything should come out exactly accurate.

    The problem is blocking, and zero-frame throws and other instant attacks. If you hit a 10-frame P on frame 307, and I didn't actually hit G until frame 316, then your computer is stuck going "Did the punch hit or not???", until sometime later when my guard packet finally gets delivered. That ends up causing real delays, because your computer can't decide whether to show you the hit, block, or counterhit animation until it knows for sure. A stupid predictive input function would be "always assume guard until I know for sure". It will show you the block animation, and then if it finds out later that I didn't hit guard, it will switch over to the proper hit animation, and the players will just have to adjust to some choppiness in what they see on-screen. If everything actually gets blocked, the gameplay will appear at 100% normal speed, and look smooth, if anything hits there will be a weird timing difference from offline play.

    A much smarter predictive input function can actually make reasonable guesses based on what characters are being used, and current frame advantages, and what moves is currently being executed such that it will be correct much more than 50% of the time... it's just a very complex AI function. But, yes, it will always eventually guess wrong, and have to alter the game to fix whatever it guessed, and that's why we do see weird timing in online play.
     
  19. KoD

    KoD Well-Known Member

    PSN:
    codiak
    Re: Justifying Online VF ( Ver.C Tier List Side To

    It's been a long time since I've done any network programming, but I was under the impression that timestamp was an IP header option, and not a very widely used one. See TCP/IP illustrated p. 95 & 253 for descriptions of the options, and this article http://www.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-24.pdf for how common it is for timestamp option packets to just be completely dropped. There is an incrementing identification field in every IP header, but afaik this is just used for reassembling fragmented datagrams (each fragment gets the same ID copied into its header), and doesn't really have anything to do with timing.

    I'd be curious to hear from someone with actual game network code experience (or who has at least e.g. read the zsnes code). There are situations in vf that require correct reactions to an event within ~200ms; once you cut that in half with network delay, I really don't see how any amount of code wizardry / rollbacks can make things work correctly.
     
  20. seven5suited

    seven5suited Well-Known Member

    Re: Justifying Online VF ( Ver.C Tier List Side To

    That's the right way to say what I was trying to.

    That's why I contend that a fighting game made for online must have a slower clock than 60fps. If they can keep 60fps animation and read inputs in 1/30 sec. increments you'd have a system that is more immune to small lag. Simply halving the frames guide and rounding up or down to the nearest integer would be a change, but keep VF at the same depth and balance. (IMO)
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice