I’m still not sure what use the traceroute information will really provide. Yeah you might see a node in the route slowing you down, but what can you really do about it?
Not much, beyond having pinpointed where the problem is. Its very hard to get backbone routing problems fixed, best you can do is know about it and not curse at the bad netcode because of it
And most importantly, it does show how your own connection is working, and if the problem is in your router, or your ISPs network then you can fix it / complain to have it fixed (or change ISPs).
I don’t think it’s necessary or meaningful to use a real “ping” protocol in the game. The game client has to communicate with your opponent to actually play the match, right? Just time how long it takes to get a response to a gamestate packet you’ve sent (gamestate packets would obviously need to include some sort of “oh hey, I recently received packet number X from you too BTW” info), and you’ve got your ping - the exact same ping that the game’s netcode experiences.
Yeah, regardless of the type of packet, the round-trip-time should be approximately the same.
But I just wondered since routers most likely apply some sort of Quality of Service or other traffic shaping, that they may process ICMP packets with higher priority than TCP packets (I’m fairly sure most games these days use TCP), or vice versa.
Also, TCP fits your description of “oh hey, I recently received packet number X from you.” It’s the SEQ and ACK parts of the TCP header.
If you are wired, the other guy is wired, and ping is 60 or less, the amount of lag is equal to zero. Even up to 90 the lag is just almost non existant.
Any other scenario is unpredictable.
I’m far from an expert on network coding, so I don’t know if games really get down to the nitty-gritty of the TCP protocol or if it all just gets abstracted away by the API. I thought some (many?) games use UDP because in games it matters less if you’ve missed out on some gamestate info, compared to getting the packets as quickly as possible? Although that tends to apply more to 3D games with constant movement than 2D ones with precise inputs.
But yeah, that’s why timing the in-game packets are the most accurate, since you don’t know what shaping or other overheads are going on with any other protocols.
after trying netplay a few more. I have to say its is no doubt the best implement of GGPO out their and by far the best netplay we have in fighters. How ever i feel they haven’t even optimize GGPO on console yet so I expect improvement in the future, even if it isn’t with skull girls.
I think its times like this we really need to address the fact that people need know how to manage their network. No matter how good a netcode may be if someone isn’t managing their network in optimize matter than its fruitless as someone say before.
One of my friends who I play regularly has weak internet (4mps download/ 1.5 upload). No matter how often we try to play our connection was bad and hes a state away. (Im florida, hes Georgia) I’ve been trying to convinced him that he needs work out his connection( was on bad router and wireless). After trying direct connection and port forwarding, we were playing fighter as if it was offline. But to be more accurate it was playable to the point we felt most 80% of matches felt honest. In the end he learned that he needed manage his network to play online games, specifically fighter in effective way.
Sometimes I’ll play a person and we have like 30 ping, but it turns out to be pretty laggy…what’s up with that?
You may have a point. I’ve never developed a game so I can’t say for sure, but I just assumed that it would be using TCP because missing information should be bad for the game as it forces the game to “guess” more often. I guess the only way we can know for sure is if we get a firewall and play some AE PC and see what the firewall says.
Ping and latency are almost never constant.
I guess I stand corrected. AE PC appears to be using UDP, if my test is correct. Basically I fired up AE PC and joined a game, with Process Explorer running in the background. According to PE, AE only makes two connections, both UDP. One is port 3074, which is XBL/GFWL’s standard port. The other seems to be a randomized port past the 50,000 range (or past the range of reserved ports).
What’s interesting here though is that I never seem to make any direct connections to other players whether I’m joining or hosting. This must mean that SF4 isn’t p2p, but instead based on (GFWL/XBL’s) servers. I guess I should have figured, since anybody and everybody is able to host, regardless if their firewall/router settings are even configured correctly, unlike other online games (eg: StarCraft 1).
Sorry, this is starting to stray from Skullgirl’s netcode, but if AE PC’s netcode is any metric of how most fighting game netcodes are implemented, then this information should help I think.
Always keep your input at 1 frame delay, which means your console has exactly 1/60th of a second to make adjustment to input delay. That ought to be the default for the game with no change allowed. 0 delay is theoretically not possible without lag or frame skipping.
I do this, it works fine and I don’t have to adjust my timing really.
You’d need to provide more information about your internet connection. If you have cable/optic fiber, you’re usually good to go. If you use DSL or some kind of DSL lite service, then it’s probably your service. Use http://www.pingtest.net/ to check your ping and jitter to local servers. If your jitter is anywhere above 50ms, then your ISP is overselling their lines, and you should probably find a better one.
The slowdown is actually a bad decision on optimization in terms of online play. What Mike Z probably did was to force 0 frame skip, which retains frame smoothness while sacrificing game speed/pace. The PC GGPO, however, always retains game speed/pace while have auto frame skip on, which is a much better solution. I made the prediction about 0 frame skip based on my experience with Kaillera. If you had used “Do no frame skip” on kaillera, your game will be slow, but it will draw all the frames. If this is true about SG’s GGPO frame setup, then I urge Mike Z to change the 0 frame skip to auto frame skip (or tell the players how to do it themselves), as this will allow people with 100+ms pings to play with only minor frame skip.
Yeh, sometimes I get duper lag on 2 delay & 50ms~ range, but that’s not Mike Z’s problem~
Here to say that the netplay itself, is GGAF, & yeah, I’m on dat not-awesome wi-fi, sao, it’s all me~
For real big dick Gs~
im having problems and cant imagine that im suffering from packet loss somewhere.
have a stable 40Mb down 8 Mb up with a good router. theres a switch before the router tho but iy should be a good one.
ok this is my result prom pingtest.net and speedtest (and this is done with my laptop which is on wireless. My xbox is wired. lemme put in a cable and test again. )
aight done
http://www.pingtest.net/result/61355687.png
http://www.speedtest.net/result/1907138488.png
no jitter, no packetloss. a solid connection. I don’t see where my problem lies. on cable btw.
“Simulated” ping between 2 SG clients might be better than a real ping since some ISPs will likely block the latter.
with some of the memory issues causing problems. could it be that? i stilll have a first generation xbox 360 core.
The way I understood the slowdown happening, is that that happens if the latency goes above the GGPO 8 frame buffer. Anyway, that kind of latency can’t be made to work fine in a fast paced game, its either huge slowdown, or teleporting all over the place.
As a side note, cable (the kind that goes through TV antenna network) is much worse than xDSL. DSL is a dedicated line where you don’t share your bandwidth, whereas cable shares bandwidth between a segment (so your neighbors youtube browsing can cause latency in your gaming). Also the protocol used in cable is designed for bandwidth at the expense of latency, so that’s another negative. So if you have a choice, for gaming go for xDSL or fiber optic.
And regarding good ping -> bad connection, it can be many problems. Packet loss, jitter (variable pings), spikes in latency, line congestion. Ping is just a metric, that tries to estimate the average latency. Sometimes it can be inaccurate. If its always inaccurate for you, its probably something on your end, test you connection.
The best way to estimate latency is always to measure ping with the actual game protocol, with real payload. That way you eliminate some prioritization issues that can happen. Also, all real-time game protocols are UDP based, you can’t use TCP, because the buffering it does makes it hard to meet any latency guarantees. You always build a custom protocol on top of UDP, although you still need to implement robustness in fighting games, because you absolutely cannot lose inputs in transit, that would desync the gamestates, and then you’d need some way to resync.
we have a business account for our cable connection. our bandwith is guaranteed not to drop. and havent experienced it either running loads of speed tests. also im playing hdr riht now and its flawless while when i boot up sg and play the same person i get hella slowdown.