Hacker News new | past | comments | ask | show | jobs | submit login
Run your own high-end cloud gaming service on EC2 (lg.io)
201 points by arcticbull on April 12, 2015 | hide | past | favorite | 71 comments



I might not mind if Valve just made all the games available this way. No download, no waiting: a button in the Steam client starts streaming the game immediately.


OnLive tried to do this and went bankrupt recently, IIRC.


I think they already do. You begin the download and after it has downloaded some portion of the game you can launch it and the stream the rest.


I didn't know about this. Which games?


Blizzard games also do this, you usually only have to download about 25% to start playing


Not Steam, but Ubisoft did this for instance with the latest Far Cry and Assassins Creed.


Biggest win I see is you could even be rid of the steam client.


would you pay $2-$3/hour for such a service from steam?


Probably not. $0.50-$1/hour, absolutely.


Same here. Assuming you game for 5 hours a week that works out to be under $300/year. Much cheaper than buying and keeping a gaming PC up to date.


If you only game for 5 hours a week buy a console and save $270 next year. ( minus $30 for an XBL or PS Plus subscription for online play and free games ) Also it's locally rendered thus no input lag and you don't need to tie up your entire internet pipe when you want to game.


I think this ignores a lot of other points.

Console requires a high quality TV.

Console may require controller or other accessories to play local multiplayer.

Console games are significantly more expensive, especially for a more casual gamer.

The games they like to play 5 hours a week may only be available on PC.


It's kinda weird how hackers are pioneering the technology that's going to be the DRM of the next decade.


Computer people aren't known for doing things that are in their long-term self interest.


Only if you view DRM as intrinsically evil.


This looks hard. Somebody should automate this and charge me a few bucks for it ;)


Like, umm, Amazon's AppStream? [1] There's a process that involves, approximately, running an installer on a virtual Windows desktop, after which you can stream an app to a Windows or Mac desktop or laptop. Or to a Chromebook (!!). You can even stream to an Android or iOS device, but without a physical keyboard or mouse you can't DO much with apps. [2]

And considering how much work we've done to cut down on latency, I wouldn't expect the Steam streaming app running over a generic VPN connection to even come close in performance -- the VPN is almost certainly going to run over TCP, while AppStream will run over UDP, meaning in any but the best network environments AppStream will clobber a VPN connection for latency.

[1] https://aws.amazon.com/appstream/

[2] Disclaimer: I work on AppStream for Amazon, but my opinions are my own and don't represent Amazon. I'm just commenting as someone who has a lot of experience playing with the product.


Ahem - a bit late to this thread, but any pointer as to how to run a steam app with amazon appstream ? I've tried installing both games from humblebundle packages and steam + one game, but it seems to fail to properly package the app and launch it.


Hmm. I don't know what's different, but I KNOW Steam games work on AppStream. I remember playing Arkham Asylum from my own Steam account.

As a developer I have tended to prefer the "standalone instance" route, and I almost certainly installed Steam that way: Follow the standalone instance instructions [1] and then log in to it as a remote desktop, installing whatever you need.

If the Steam install process needs GPU acceleration, then you'll also need to set up a VNC server on the instance and connect that way. Windows' "Remote Desktop Connection" can't use the GPU, where a VNC connection can.

BUT beware: Make sure your VNC password is as strong as possible; maybe even turn off VNC when you're not actively using it.

Good luck!

[1] http://docs.aws.amazon.com/appstream/latest/developerguide/a...


Thanks for the insights - Digging into it, my first install was standalone and failed for no proper reason (trying to run guacamelee from the humblebundle - no meaningful error message was given).

Steam games seem to fail whenever something needs to be admin, most likely installing directX on first - run. I'm going to try running them once first before packaging the appstream and then see how it goes.


Did this work? I'm looking into doing this as well.


>the VPN is almost certainly going to run over TCP, while AppStream will run over UDP

OpenVPN offers UDP mode, and I believe Hamachi (the VPN software mentioned in the article) uses UDP by default as well.


That would help a lot, then. But the Steam in-house streaming feature may not have the same latency compensation features that we've built into AppStream.

I mean, why would it? You're not likely to have a high ping time inside your LAN.


doesn't appstream require that the app is appstream-aware? my understanding is that you can't just take an arbitrary windows binary an appstream-ify it.

The VPN solution might have worse performance than an appstream app, but it works with the existing catalog of steam games.


The app is NOT required to be AppStream-aware, no. (Not since we created "Zero Touch" mode, anyway!)

We periodically install random Windows apps (including games) to test the stack. Games work well. Too well, you might say. ;)


Yeah for sure. 1900 hrs? I wouldn't do 100 in a calendar year so this would be a way better option for me than having to constantly upgrade to keep ahead of new boxes. (well constantly == every other year).


It's not quite the same thing, but X.IO [1] from OTOY does a lot of the things mentioned, and can even run Steam directly without having to use in-home streaming (and we can take advantage of things like NvFBC to cut down capture time).

Going that method you lose the price advantage you'd get with the spot market, but a lot of the underlying complexity is removed.

Disclosure: I work for OTOY

[1]: https://www.x.io


How would you go about running steam on X.IO ? do you have to "Appetize" steam or the game itself ?


It would be awesome if someone created an AMI after they finished those driver steps, at least. If I do it I'll be sure to post back here.


I know you can't share AMIs derived from marketplace snapshots, so I suspect the same may be true of Windows instances. The marketplace instance restriction is rather annoying as CentOS and Debian publish their official images through the marketplace.


If I was to sell this as a SaaS type of thing, would I be infringing on any of Steam's TOS or anything?


Forget the TOS, it's certainly copyright infringement, since the licenses don't give you the rights to distribute game assets to third-parties.


A SAAS where people sign in with their own steam accounts (oauth), and stream games they own, would be fine though right


It's hard to say. Cablevision did win the lawsuit relative to their remote DVR service, which is promising.


I've been wanting to do this myself and prepared by registering several iterations of steam + host + box + cloud + remote.

The major annoyance is that since Steam doesn't let you do it outside your LAN, you have to use a VPN solution to make the remote server appear like it's local. I've been building my infrastructure and prepping for everything with the hope that one day they'll allow for the ability to enter a remote address.

If not, and when I'm ready, I'll just have to get my users to download some kind of utility that automates all the VPN functionality, graphics driver installation, and server-side management.


I'm pretty sure thats Nvidia GRID. Also you don't have to pay for the games there, they are part of the subscription. You do need a local Nvidia GPU though.


Agreed.


I wonder how this compares to nVidia's commercial GRID product[0]. They claimed latency up to 150ms from their recent announcements. I'm sure AWS can spike to worse than 20ms.

Either way, I still think adding latency will poorly effect certain types of games: online/twitchy ones predominately. It's cool how easy it is to set something like this up on AWS, though.

[0]: http://shield.nvidia.com/grid-game-streaming


I have never noticed latency spikes like that from Amazon through transit… especially not for anything as trivial as 10Mbps which even a Micro instance is capable of sustaining.


Its not about the instance, its about the datacenter. They share routers, and somebody somewhere needed the bandwidth at the same time you did. So random latency.

We run office collaboration software in the cloud but not on Amazon. Rackspace has better latency guarantees, or at least better average latency.


I believe GRID at least partially runs on AWS

http://www.theverge.com/2015/3/3/8146065/nvidia-grid-1080p-g...

>which is backed by Nvidia Grid supercomputers worldwide and Amazon Web Services


This would even be great if you have your own tower computer/high power computer and have an okay laptop... (even save on paying for EC2, with better ping!)


Isn't that how Steam streaming is supposed to work out of the box?


That is how it works by default.

It's worth pointing out that some titles don't really support home streaming well. For example, some don't capture using game controllers as input well. Others don't pass through sound properly. It's not a perfect solution by any measure.


And some of the shittier korean mmorpgs on steam that use their own intrusive rootkit anticheat will permanently ban you for attempting to use a macro tool (PostMessage()ing keys from another process)


For this, check out Splashtop. I've been using it for years and it works great. They even have Win8 touch integrations so you can play Civ 5 touch, and an OS X client so you can use a Mac from a tablet or phone.


How does it compare to Steam In-Home Streaming? Can you use it over a (sufficiently fast) network?


I haven't tried Steam's streaming yet or Nvidia's Shield based streaming (have a Shield, but needs a 6 or greater series card and I have a 5 series).

Splashtop does work with OS X, tablets, and phones, and also works over the internet (with additional latency obviously). I'll give Steam's streaming a shot sometime soon.


How does Splashtop compare to a vanilla VNC remoting?


Against VNC there is no comparison. SplashTop is smooth and fast and uses way less bandwidth.

A better comparison would be against Steam's own streaming, which I haven't tried.


Just recently set up my local headless Linux server with PCI passthrough and a Windows VM for streaming games over the LAN, works really well! A neat benefit is the ability to connect multiple graphics cards with multiple VMs and effectively run two gaming machines in one, at near native performance.


The OTOY AMIs do something similar to this. They use the GPU's onboard encoding as far as I know, but they don't stream through Steam - it goes through some custom HTML client.

https://aws.amazon.com/marketplace/seller-profile?id=795808b...

(Disclosure: AWS employee)


It runs through a custom HTML/JS client over web sockets with a video codec designed to be decoded with low CPU overhead [1], or a native client [2] for better performance, especially with game streaming.

For anyone interested in the space, we also have https://x.io which wraps our streaming tech up with a bunch of other stuff to make running an app as easy as making an API call.

Disclosure: I work for OTOY

[1] http://aws.otoy.com

[2] http://cloud.otoy.com


Also: Look at Amazon's AppStream. It sets you up with Windows app streaming automatically.

(Disclosure: I work on AppStream at AWS.)


Can AppStream use GPU acceleration? Does it support custom apps?

Edit: sorry for not reading the info - the answer is yes, one of the use cases listed is CAD.

https://aws.amazon.com/appstream/use-cases/

Looks like it's not supported in Sydney which kills it for me. Any hints as to when that might be coming?


Sorry, but I'd get fired if I started leaking any information about future plans. If I even knew. Which I can't say if I do. ;)


I am asking a tangential question here. Is there any service that can stream android games / apps?


What on earth is the use case for this - using something that's only available on Android on a non-Android device?


Quickly testing Android apps on your laptop without having to deal with an emulator?

Concrete example, I've just finished the first beta of our companies new Android app. Now I want to show everybody in the company to get feedback and generally let them know what is happening.

Hard: Convince everybody to install the beta on their phones, and then convince everybody with an iPhone to borrow an android phone and test it there.

Easy: Send everybody a link that they can click and have the latest beta show up running on their desktop.


I imagine you could run something like BlueStacks on an Azure cloud and allow people to remotely control it. Probably costly though.

http://www.bluestacks.com/



I can also confirm that Football Manager 2015 runs pretty well on a c4.8xlarge 36-core Xeon machine, for they eye-watering cost of about $1.65 an hour in Spot instance costs.

Always wondered if you could break even hosting leagues on there.


Wow, this is so incredibly cool. As a big fan of OnLive, I saw a lot of potential in the approach being used for making old school classic games available remotely, without you having to manage to keep them around locally.

It's really neat that you can do this yourself, and seeing the costs as low as they are is pretty encouraging too.

Nice job!


How about spot insance + EBS. Can your "EBS" not be terminated after spot instance is overbidded in this case?


Yep. That's correct. EBS isn't terminated when your SPOT instance is.


Thanks. Looks like that'd be the cheapest way to run g2.2xlarge.


I would probably recommend setting everything up with an on-demand instance to begin with. You don't want your whole machine to be terminated as you're configuring things.


Well it's a good point. 2 min is probably still too low.


How do you get the $0.11/hr rate as opposed to the spot rate?


Nevermind, found it :-P


i'd be interested in seeing a screencapture of this.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: