Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In the last few years, lots of companies (such as OnLive or Gaikai) have begun providing games "from the cloud" as an online stream, which doesn't require the full game to ever be downloaded.

How does streaming of a gameplay session work? I have only basic knowledge about internet protocols, so I'd appreciate a good description of the technical aspects.

share|improve this question

closed as not a real question by Byte56, Maik Semder, Nicol Bolas, bummzack, Trevor Powell Mar 18 '13 at 22:06

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

from my understanding, you send their servers your input, which is then processed by their machines. The whole action is processed, then the output is pushed to your screen, reducing the processing power by your computer a ton.

i cant really get more technical than that, but from my understanding its pretty simple.

Please correct me if i am wrong, i would love to know more also.

share|improve this answer
It's usually not a simple "send input, wait for update" kind of thing. The server is constantly streaming video/audio updates and the client is sending input as fast as possible. If input gets lagged, the game keeps playing and keeps streaming; likewise, vice versa. This removes any hard requirement to recode games; you just stream output and proxy input. It's like a more advanced version of VNC/RDP geared for low-latency and a constant FPS. – Sean Middleditch Mar 17 '13 at 7:28
@SeanMiddleditch Yes i completely agree with you, i guess i should have been more verbose about that. Thanks for the information :D – sinistersnare Mar 17 '13 at 9:28
-1 Too general. This could describe any client-server architecture. – Anko Mar 17 '13 at 18:52
@Anko Yes, however i feel like this is a basic answer to what he wanted to know, as Sean said, its a lot more optimized than just "in-process-out", however i feel like that can be implied with a little research. How would you answer the question, I saw that this question had no answers, and was trying to give this guy at least a little perspective. – sinistersnare Mar 17 '13 at 19:42
@sinis The asker wrote that they already understand internet protocol basics. I just don't see how this answer adds anything you couldn't guess from the question's title. – Anko Mar 17 '13 at 20:02

There are some services that implement streaming like described previously: User input is uploaded to the server, rendered frames and sound-data is downloaded to the browser. This reduces processing load on your local machine, but you need a really good internet connection for this to be fun.

The way the company I work for handles it works like this: You download a little bit of data, say the assets and code for the start menu. Input-handling, processing and rendering and takes place in your browser via HTML5 canvas (or a native plugin for older browsers) and while you are busy setting up your profile, clicking start etc the assets for the first room in the first level are being downloaded and so on. The next time you play, the data is already in your browser-cache. It's up to the game-designer to only download as much data as you need (eg: only when the player approaches a corner do you download the mesh-data for whatever is behind it, only when the player picks up the plasma-gun do you download the sound-files for plasma shots).

I know, strictly speaking this isn't 'streaming' but it's the same result: You don't download everything at once.

In regards to the technical aspect, there's nothing magical going on. Game-assets are being stored in shared collections on Amazon, accessed via their SHA1-hash and we use AJAX requests to get them.

The only data that is constantly being send back and forth is for multiplayer games. (We're using websockets)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.