overview
A game recently came out - Valhiem - and I wanted to play it with a friend. Given the game is in beta (and doesnt support MacOS) I decided I would set up an instance with windows configured and install steam there. This brief walk-through is for causual gamers and mac users with decent internet connection who want to play steampowered games.
notes
- I initially went through this process and was (1) unimpressed with the performance, (2) frustrated with the lack of transparency in the supoprted regions, and (3) frustrated that I had to get approval for vCPU increases in each of the supported regions. This led to unnecessary conversations with suppport.
- going through this process highlighted some clear knowledge gaps, as I found myself asking questions like “why disable hyper-v” and “what does parsec offer that RDP (or teamsviewer) doesnt? is that the cause of the poor performance?
conclusion
I recommend this setup for those of use who are indeed casual gamers; you enjoy ocassionally playng with your frieds, but dont want to shell out 1500 bucks for a rig (or even 500 on a (very) dedicated potato). To put it in a formula you robots can understand, assuming you’d need to upgrade your rig (~1500) every 3 years, that means you budget ~500 a year for the hardware. This setup will run you ~$0.80/hr. So, if you game less than 625 hours a year (52 hours a month or 12 hours a week) then it is actually more cost effective to game virtually… COOOOOOL.
azure steps
- sign into your azure account
- configure a resource group (something like “cloud gaming blah”)
- provision a virtual machine - aside from the required fields, you can leave all else as the default values
- note: You will need to carefully determine which regions have the supported / recommended graphics card, NVIDIA’s Tesla M60; I selected the US Central South as the NV6 was available under the non-standard category
- re security groups and ip: for the purpose of this test, I made the vm public
- fire up your vm and connect via RDP - you can download the app from the app store and open the downloaded file from your azure dashboard
- install the latest nvidia driver (see sources below)
- install teamsviewer and parsec (see sources below)
- connect to the vm via teamsviewer
- close your rdp session
- on your vm, go to your directory
C:\Program Files\NVIDIA Corporation\NVSMI
- run the following command
nvidia-smi
- “This will get you a table that gives you both what mode your Tesla is set to (which will be TCC by default, check under the heading TCC/WDDM), and the GPU_ID, which is the thing under the Bus-Id heading”
- run
nvidia-smi -g {GPU_ID} -dm 0 e.g. nvidia-smi -g X019:00:00.5 -dm 0
- restart if needed
- navigate to your display devices in device manager, disable hyper-v
- your text should now be tiny as the tesla gpu is enabled
- connect with parsec (and enable parsec on start)
- download steam and your games!
- if you are having audio issues, I recommend you install vb-audio (link in sources)
aws steps
- configure your ami - I selected the windows 2019 base container
- as for your instance size, select the g3s.xlarge for its NVIDIA Telsa M60
- if you want to make it a bit cheaper, you can select the spot pricing option, set a maximum price close to the on demand price (0.409 at the time of this writing for my region) and check “persistent request”
- next, up your storage to ~100 (or whatever space your game(s) are going to need)
- security - to make things easy (and because the instance will primarily be in a terminated or deleted state), i allowed all IP addresses
- create or select an existing key pair
- download windows remote desktop connection from the app store
- connect to your pc!
- note: if you do not know your windows password or user name, you can decrypy your pem key in the aws console. go to ec2 > instances > your instance > get windows password under the “security” menu item.
- create a new passowrd in Local Users & Groups if youd like an easier to remember login
- next, open Server Manager and disable IE Enhanced Security (top right hand corner) for admins and regular users
- use internet explorer to download google chrome
- once installed you’re going to want to download DirectX and the NVIDIA Tesla M60 drivers.
- once thats installed, we need to run the following commands in cmd prompt to ensure the propper graphics card is used
takedown /f C:\Windows\System32\Drivers\BasicDisplay.sys
cacls C:\Windows\System32\Drivers\BasicDisplay.sys /G Administrator:F
del C:\Windows\System32\Drivers\BasicDisplay.sys
- install razer surround drivers for game sound
- install steam and youre good to go
- as noted above, i ran into some serious performance issues with this method