CLOUDGAMER01 - The Cloud Gamer project
I am a very uncasual gamer. Meaning I have the absolute craving to play something once betweem every 15-90 days. When this happens I play for 4 hours and rinse & repeat. Finding a solution for this has been very difficult, because I do want to play when I have the urge, and I want to play good games with good performance, but it's not worth spending $2000 on a gaming PC that's never gonna be used.
Here comes the Cloud
AWS now offers NVIDIA GPU accelerated instances (as does every other major provider by the way, the same GPUs actually). While these GPUs are not technically meant for gaming, they do just a fine job at it, especially the T4 & Tesla M60 instances. There are also ways to install the required Nvidia drivers to make it possible for games to use the cloud graphics cards.
Proof of concept
After a couple hours of work and planning, I got an instance in AWS running CS:GO (it's free on Steam, I needed something lol) and me controlling it via remote desktop from my MacBook. The experience was very much surprisingly amazing. There was no dropped frames, there was no noticable input lag - at least for me - and the quality of the picture was phenomenal. It felt exactly as if the game would be running on my local computer. I turned up all the graphics settings to as high as possible, and the instance was powerful enough to run it without dropping a frame. Now CS:GO is of course not the most graphics intensive game. My biggest target is playing Cyberpunk 2077 on it, that's basically what it will do exclusively for the beginning. Now I am not sure how the T4 instances will handle that kind of load, them being compareable to a GTX 1080. The other option is the Tesla M60, but not sure yet, it will need performance testing.
In any case, here's a video of me when I got it working and got very excited, naturally.
The possible solutions
Now it is still rather expensive to run a rig like this. The on-demand pricing for the GPU instances [I need] lays around $1/hr, which is not a small amount. Therefore naturally I thought about Spot instances, which would effectively cut the price in half. This comes with the risk of the instance being terminated however, which I am unsure of how often it happens. I heard stories that some Spot instances have never been terminated, but I can't expect that from GPU accelerated instances due to their exotic nature. I'll have to make a wager between the cheaper price of Spot instances and the uncertainty that my game can stop any time.
Of course in case I go with Spots, I will create an automation that can automatically recover the instance into an on-demand one - if I choose to do so and not just stop playing because I realize I need to do the dishes. This would allow for a 5-10min recovery time from the time of interruption to playing the game again. I am not neccessarly scared for my saved games, today's saving methods are better than that and this wouldn't cause any corruption problems. But just in case, I will create a snapshot of the instance just before it starts when I sit down to play.
I know there are solutions for this, Google Stadia, GeForce Now and all that stuff, but I want to run my own version. Those services restrict you to their platform because you buy the games through them, and worse, not all games are available. I want to play whatever I want whenever I want, and for that I need Steam (and maybe the Microsoft Store for Forza Horizon). I also don't want to be stuck paying the €10 monthly fee for those if I'll not play anything that month. This will also allow me to continue playing - and owning - these games in case I decide I do want a local gaming rig.