You say that, but as a user I wouldn’t notice the difference in this game played on cloud versus locally.
However there does seem to be legitimate portion of the audience that either can't tell or simply doesn't care about frame lag/latency issues. I would guess that group is relatively small though. Also as PC and console hardware continues to improve and 4k+/144hz+ gaming becomes more commonplace, cloud gaming is just going to be left in the dust.
Cloud gaming will work great when we have FTL transmission of data or possibly a datacenter in every 7-11/Walmart.
It is, at best, a niche service.
If you see someone is going to attack you, you want to dodge right away, wait for the animation to finish and attack after. With cloud gaming you see someone is going to attack you, press dodge, get attacked, you die.
Of course, single-player games don't usually do this, because it's very complicated.
So you gotta ask yourself, well when does this make sense? Does it make sense in a twitch shooter? It doesn't. Does it make sense in a popular mmorpg that runs with a tickrate of 600ms? Yes. Does it make sense in a RTS? Probably, except at maybe the highest levels. Does it make sense in a train simulator? Yes.
The whole industry will attack the goal from multiple angles and make it happen. I think making GPU ownership expensive to improve the value proposition of streaming services is one of the goals.
On paper I think it should be a total failure. In reality, I tried the RTX 3080 tier of GeForce Now and I couldn’t notice the input latency playing Last Epoch. If triple buffering was accepted, 3 frames of latency for streaming will be too, won’t it?
I hope it fails because never owning anything sucks, but I think it’ll be extremely successful.
Single buffering: You're drawing pixels directly on screen. Problem: Drawing isn't instant across whole screen, so human eye sees a blend of old and new image (and since screens draw top to bottom, this produces a horizontal "tear" somewhere, thus "screen tearing").
Double buffering: You're drawing pixels on a hidden screen while the previous image is displayed, then flip screens. This flip action is so fast it's practically instant, so tearing is solved. However, screens can only flip at set intervals (refresh rate). Problem: What if your drawing finishes even a little bit late, just after refresh rate sync? Now your program has to wait for the next opportunity to flip, which just makes everything hang.
Triple buffering: 3 is the magic number to fix all these problems. You always have two virtual screens to flip between, and a third one you can draw to regardless of flipping.
If the game renders on time, what you see on screen is always the latest completed image that was ready at previous vsync.
With two buffers, if you render too long and miss vsync and then call flip() which waits until the next vsync, you're wasting the frame waiting (because the system can only swap buffers at vsync, to prevent tearing).
The third buffer only exists so that the game can start working on the next frame, while two of the buffers are "locked" (one on screen, other ready for display, third available).
I worked on the netcode for EA games at one point in my life.
The highly popular battle royal and competitive shooters will never go cloud.
The majority of the people now think 24 frames a second looks natural and 60fps looks fake. They're twisted by their malevolent environment into a wrong and unnatural state, like elves into orcs.
How would you predict / simulate when an opponent jumps or crouches? And how much processing power would AI rendering take? I don’t know anything about AI.
I think the idea is to run the client side on a potato.
You're teetering on the budget before you even hit the network.
That is to say, there is no future in this universe where real-time, predicted gameplay can currently fit within 16ms (60 FPS) let alone 6ms (144 FPS).
You blow the budget immediately. Today's implementations lag several frames (overbudget). For myself and other game developers I work with, that's just unacceptable, and I don't know anyone right now who is considering software-level or gameplay-level accommodations for streaming the game over a service.
Take an empty game (update nothing, draw nothing) and send black over the wire. You blow the budget.
Let's not dice words: cloud gaming is the cloud industry's perpetual motion machine.