Minimum acceptable lag for a match

Hey guys, just wanted to get opinions on what the threshold of an “acceptable” amount of lag would be when playing Skullgirls on the PC. Personally, I decline anything that shows up as red numbers (around 150+ ping I think?) but seeing the number of matches I have to decline before I finally get a good one, I’m thinking maybe my threshold is too high. Is it?

How exactly would your threshold for “acceptable” lag change anything? If you have a large amount of lag in matches above 150 ping and you don’t want to play in laggy matches then don’t accept matches above 150 ping. I’m confused by your statement.

Hmm, fair enough. Let me rephrase my question.

When playing ranked matches, what is the ping number which would make you decline a match instead of accepting it?

I’m just trying to get a general feel of what most people here usually decline.

I’ll accept pretty much any connection. I drop my combos without lag, it hurts my opponent more than it hurts me.

It depends how you set up GGPO delay. I live in Eastern Europe and I managed to have some decent connections with players from West Coast USA by setting delay to 5. My ping with them was around 150-180. Though, I would prefer to play European players with 0 Delay. If I see a ping number like 200-300, then I usually don’t play with them unless I manage to find a good delay setting.

0 frame delay, look for 110ms or less

<200 is my border. ~180 is my usual connection to US-WestCoast (I’m EU) and if they have a stable, good connection, I can play this in 2-3 delay.
It’s not good by any means, but doable. 200+ magically turns everything to shit and makes the game rather unplayable.

It really depends on both players setting their GGPO delay at the recommended number. I’ve had perfectly playable matches with 250+ ping because the other guy set his GGPO to 5 frame delay like I did, but I’ve also had unplayable matches at 90 ping because the other dude refuses to set it to anything except 0 frame delay.

5 Delay is not “perfectly playable”. At best it’s completely ugh.
There is no reason to put delay to anything other than 0 on 90ms unless you play on some shitpiece of a wireless connection.

On another note, I played a 440ms match against someone from Japan not too long ago (possible that this was just a spike and real ping was lower) -no way to set Delay as it was in a Lobby- and it was laggy, but playable. Weirdowhat.

Before lobbies, I used the recommended delay. I never went below 2, even in a match with 60 ping. Glad to hear I can go lower with no issues.

How is the delay handled in lobbies? Is it automatic now?

I believe GGPO’s frame delay only affects the machine which sets it; it does not affect the remote machine. From what I understand, having a frame delay set to 5 means that the game will wait for 5 frames to play your animations, but will still send your button presses to the other player as soon as possible. The other player therefore should neither know nor care about your frame delay, since it does not affect when HIS data gets sent or received.

@Vulpes: I took your suggestion of going for matches with sub-200 ping, and it seems to be quite favorable (thanks for the tip). It’s amazing that you had a 440 ping match with no problems, but yeah, perhaps that isn’t so much the average latency as it is the singular lag spike when getting opponent info.

Lobby delay is whatever you set your GGPO Delay to in your default settings on the Main Menu.

I guess we have different standards for what is and isn’t playable. I’d rather have less rollbacks/weird stuttering than 0 frame delay all the time.

I know it doesn’t effect the other player’s frame delay, but I thought it caused rollback on both sides if one player was getting it from, for example, their frame delay being set too low on a higher ping match.

Ah thanks. I hope they change that so we can adapt our delay on the fly, or implement some sort of auto-delay system.

I would also rather play on 5 delay @ 250ms than on 0
But the connection is dogshit in either case

They should have delay options in the lobby menu, rather than just the main menu.

Nope, from what I know of GGPO, it’s only rolling back your side if it detects you are lagging. For the sake of answering my own question in my original post, I did a little bit of reading and calculated out some numbers.

I am by no means a GGPO expert and I have no clue how the Skullgirls netcode was implemented, so this could be all wrong. Please take this with a grain of salt!

Skullgirls runs at 60 FPS. That means each frame is on the screen for roughly 17 milliseconds. Any button hit during that frame has 17ms to process all logic before the results are drawn to the screen. Now, if your connection with the other person has 17ms ping, then you should be able to run GGPO with absolutely zero frame delay and it will play smooth as butter. Of course, nobody has 17ms ping, so GGPO implements frame delay. If you delay by one frame, then that means you have twice the amount of time, or 34ms ping, before the next frame is drawn to the screen. However, this means that if there were conflicts between what happens this frame and what happens in the next frame (since you delayed it by a frame), there needs to be a “rollback”. You can then extrapolate this logic to larger frame delays. Delaying it 2 frames means you can play 17*3 = 51ms ping with no perceivable lag. Delaying it by 5 means you can play 102 ping with zero perceivable lag. Note I said “perceivable”… I’m referring to the player experiencing frame drops or freezes mid-game here, not rollbacks (which is part of the game system).

“But wait!” you say… “I have seen evidence of the contrary!” Well, there are several factors to this. It is possible that you can see rollbacks or lag even in great ping with a large rollback. This is because lag is not CONSISTENT. If you have a lag spike, then the rollback will kick in. Also, remember that rollbacks happen only when there’s a CONFLICT which needs resolution. If you are on the other side of the screen and do a j.LP and hit nothing, then it doesn’t need to roll back because it doesn’t conflict with whatever the other person is doing (yes, I know that Peacock can super you and depending if you blocked or did the j.LP, you can get hit…this is a terrible example I suppose)

tl;dr
In other words, think of the GGPO setting as a buffer. If you set it to 5, then anything you do in the past 5 frames is tentative, pending confirmation from the other player. Your GGPO delay should not affect anything on your opponent’s end, and neither will his on your end.

That’s not quite how it works. I’m no expert, but I’ll try explaining it as I understood how rollback netcode works:

GGPO delay sets a fixed input delay for you locally. So with delay=2 your inputs are processed after 2 frames. This gives GGPO 2 frames of buffer to work with to avoid rollbacks, since if the ping is faster than 2 frames, the enemy inputs arrive in time to be processed on the “correct” frame. If they arrive later, and there are conflicts, it will roll back the action and play back the inputs in order to see what happened.

The benefit is that the delay is fixed. In many other netcodes, the delay is variable during a match, so it messes up your combos, because you can’t get used to it. This is also why an “automatic” GGPO setting would be lousy, since large part of the idea is that you set it to a fixed number. Of course, the larger the number, the larger ping you can accommodate without rollbacks, but the larger the fixed delay is. That’s why you want as small a delay as possible, but no smaller.

Also remember that consoles already have a natural input delay of 4+ frames, plus anything your displays bring into the equation.

As for delay changing the opponents experience, I don’t see how it would affect the opponent, but I’m not knowledgeable enough to say for sure it doesn’t. Just that it shouldn’t :stuck_out_tongue:

Personally I just roll with delay=2 and don’t play if the match becomes horrible.

Hmm… the only problem I see with this logic is that rollback is clearly visible to the player. If your inputs are indeed not processed until two frames after you hit the button, then the rollback would happen but the player would never actually see it, since it would then never be rendered onto the screen. That’s the reason why I thought that the input happens immediately LOCALLY, but if a rollback must occur, then the rollback happens, and whatever animation you happen to see on the screen gets immediately changed to the correct animation, thus giving us the rollback glitchiness (is that a word?).

Agree. I haven’t really seen very many other netcode API’s myself, but the little bit I HAVE seen corresponds to your assertion.

I read Evolution169’s post as a different interpretation of “automatic”:
= You are matched up with someone in the lobby
= Ping is calculated between you two
= An automatic GGPO setting is set based on that ping, and that setting is used (unchanged) for the entirety of the match
= When the match is over, and you are matched up again with someone ELSE in the lobby, a different automatic GGPO setting will be set based on the new opponent’s ping

Of course, that’s just my interpretation, and what makes the most sense to me as “automatic”. Also, love the fact that the PC retail version of Skullgirls has GGPO settings now for every match you play in a lobby!

Are you certain of this? Having a natural input delay seems a little strange to me. Out of curiosity, where did you hear about this?

Yep same here. It shouldn’t affect it, but neither of us implemented Skullgirls’ netcode, so at this point it’s really just our best guess. :slight_smile:

And yeah, after everyone’s suggestions on this thread, that’s what I’ve been doing too. I play with delay = 2, and I accept all matches with sub-200 ping

4+ frames of delay has been known since the old arcade days. Even CPS2 boards have 4 frames of delay.