Predictive Modeling To Increase Responsivity of Streamed Games
jones_supa (887896) writes Streaming game services always bump up against a hard latency limit based on the total round-trip time it takes to send user input to a remote server and receive a frame of game data from that server. To alleviate the situation, Microsoft Research has been developing a system called DeLorean (whitepaper) using predictive modeling to improve the experienced responsiveness of a game. By analyzing previous inputs in a Markov chain, DeLorean tries to predict the most likely choices for the user's next input and then generates speculative frames that fit those inputs and sends them back to the user. The caveat is that sending those extra predictive frames and information does add a bandwidth overhead of anywhere from 1.5 to 4 times that of a normal streaming game client. During testing the benefits were apparent, though. Even when the actual round-trip time between input and server response was 256 ms, double-blind testers reported both the gameplay responsiveness and graphical quality of the DeLorean system were comparable to a locally played version of the game.
Nobody can predict when I will suddenly chase a mammoth with a fork while buck naked.
Nobody.
It can't predict all three at once, I'll grant. But if you've already given the commands to strip naked and wield a pitchfork, then of course it can speculatively run the choice for pushing the joystick toward the mammoth.
Why on earth would you want to do this? Run the damned thing locally
Let me count the guesses: A publisher paranoid about prohibited copying may be willing to license its game at a lower price if the game program never leaves the server. Or it might be cheaper and faster to send a video stream than to send sufficiently powerful hardware and 50 GB of game at once. Or sufficiently powerful mobile hardware might not even exist. Or it might want to ensure that all players connected to the same server have comparable lag and the same inability to install cheat mods.
The player would choose this because he game he wants to play is otherwise unavailable.
"I have no clue what I'm reading about but am angry about it none the less!"
- Random internet commenter
A video game publisher is likely to view people stuck on satellite as a rounding error. For one thing, satellite players are already locked out of online multiplayer due to latency. For another, a publisher might be under the impression that people who can afford to live in the city are likely to buy more games and/or subscribe to a game longer. It's the same reason that many apps hit iPhone and iPad before Android: studies show that iOS users tend to spend far more online per capita than Android users.
The biggest problem for streaming games is going to be the ISP.
They don't like it when people use netflix, think about something like a game, where you are sending more stuff, not to mention upstream is being used more on these.
Streaming games would kill any download limits you have on your ISP and pretty much all of them have some sort of limit in place.
But what is the good of this if your ISP cuts your account, or nutters the connection so you can't play because you went over the 200-400gb limit for the month?
Be seeing you...
Its even easier to pull complete support for the game when it depends on their servers!!! This way they can sell Super Mega Game X+1 to those who used to play Super Mega Game X, forcing them to pay for the new shiny versions, which is really almost identical, with no compelling new features, except maybe slightly better graphics and a +1 to the title.
I now stay 100% away from any games which demand an internet connection to play. If a game is online only, but supports local server or can be emulated via Hamachi or something, then i'm cool with it. Otherwise no.
If this means i can't play game X, then i won't die from the lack of it. Plenty of other games out there which I can play, and play how i want.
Similar in many regards, yes. Quakeworld, from what I understand and recall, focused on two things: predicting where you were going so that it could prepare those parts of the world in advance, and predicting where others were going so that it could draw them as accurately as possible on your screen even if the connection was slow (I may be incorrect about Quakeworld having this feature, where a predictive bot run locally on your machine effectively replaces the other players for a few ms at a time, but I know it's been in a number of other games as a feature to help smooth out visible lag). The difference, however, is that Quakeworld made a single guess, and wouldn't know if it guessed correctly until it heard from the input source again, so there could be some significant discrepancies between what was displayed as a result of a prediction and what the reality of the situation actually was.
In contrast, what Microsoft is doing here is making numerous guesses regarding which choice you'll make, generating the frames for each of those choices in advance, sending them all to you in advance so that they can be buffered, and then instantly displaying the correct one as soon as it gets your input to know which one it is. It's like loading frames for the next 200ms from a handful of alternate futures, and then selecting the correct 200ms once we know which potential future ended up being the actual one. Which is to say, the one it's displaying is always exactly correct, whereas in games that implement the predictive bot I mentioned above, people have been able to take advantage of the high latency and predictive modeling to invent new strategies, such as changing one's direction frequently so that the character model showing up on other's screens is rarely in the correct spot where the player is actually located.
Back in the 1990s, Microsoft developed something similar. Their idea was to render frames in layers, with the more distant or less active layers rendered less often. if the viewpoint changed, the background layers were scrolled, rotated, or transformed to match, rather than being re-rendered immediately. It never caught on, because graphics hardware became fast enough to re-render everything on for each frame.
This new thing is similar. Mispredicted frames are viewpoint-warped as a temporary measure so the user sees something. The image is wrong, but close enough to look OK until a new rendered frame is sent. It looks OK for Doom, on which it was tested, because Doom is mostly about the shooter and the opponents moving; there's not much general activity in the background. GTA IV/V would probably look much worse than normal.
The whole concept represents a desperate attempt to make something "cloud-based" that shouldn't be.
they pretty much only need to guess what happens if you pressed lmb.
of course, if they were testing with something with only digital on/off inputs, the whole thing becomes much more easier than sending 100 different frames for 100 different possible mouse moves(and calculating those frames at the server end too! it doesn't only need more bandwidth it needs the game that is being streamed do a lot more.. and have it's engine rewritten too... which makes this a lot less appealing).
it's the analog inputs that make this a fubared concept... of course they can guess that if you're moving the mouse at one frame to one direction you might be doing the same thing the next frame.
world was created 5 seconds before this post as it is.
Apparently the authors of this research have never actually driven a DeLorean. It was stainless steel, weight 3000lbs, and only has 130hp.
So basically it's a car the weight of a Buick with the engine of a Geo Metro.