3 ms·
It's worse than that. Assume you're at 60fps like the average non-serious gamer. Assume you're lucky enough that video encoding / decoding adds only 1 frame of
by bscphil 7y ago
It's worse than that. Assume you're at 60fps like the average non-serious gamer. Assume you're lucky enough that video encoding / decoding adds only 1 frame of latency. Assume Google's proprietary technologies can minimize rendering latency so much that that's lost in the noise (I don't believe it). You've still got network latency. How bad is that?
Well, I'm in one of the 10 largest cities in the United States. Pinging 8.8.8.8 shows an average of 20 ms RTT, which is just over one frame. So is the total a 2 frame delay? No. Think about how Youtube works: they choose to introduce more latency than exists in the raw connection for reliability. My ping time shows a std deviation of over 10ms to 8.8.8.8. So if Youtube ran at a 20 ms latency (the true network latency), just about every other frame would have to briefly pause to wait for the next frame to arrive over the network. So you introduce latency. Youtube introduces about 3 seconds of latency on my network (a very rough estimate).
With a video game, the situation can't be fixed like that. You can't just run your video game behind your inputs by 3 seconds to iron out network latency spikes. So you've got to pick a percentage of packets that are going to arrive late (briefly pausing the stream), and just hope that you never get huge latency spikes of a second or so. (This actually happens all the time on busy networks due to buffer bloat.)
If you pick 95%, 1 out of every 20 video segments are going to have to pause for the network to catch up. Given we're expecting 60fps video, I'm assuming that's considered unplayable. So lets make it 99%. Assuming latency follows a bell curve, that means you have to introduce 45 ms of latency to allow smooth playback. That rounds to 3 frames of latency.
So all together, the "ideal" experience in my major city is to play a video game with 4-5 frames of latency, and realistically my developers are probably asking for a 100ms input-to-paint window. That's TERRIBLE to the point that it's probably only really usable for "clicker" time-waste games and turn based stuff. And the thing is, latency doesn't follow a bell curve. In my test lasting less than 30 seconds, I saw ping times well over 60 ms, and hardware associated with gaming will have its own latency issues too. So I expect even a stream running at 100 ms latency will still have brief pauses and jumps every few seconds, and probably noticeable ones every few minutes.