Cyberpunk 2077 on Surface Go 2: RTX Online

Cyberpunk is a subgenre of science fiction in a dystopian futuristic setting that tends to focus on a combination of low-life and high tech. Notable examples include novels Neuromancer (1984) and Snow Crash (1992), movies Blade Runner (1982), Ghost in the Shell (1995), The Matrix (1999), and the computer game Deus Ex (2000).

The tabletop role playing game Cyberpunk was written by Mike Pondsmith and published by R. Talsorian Games in 1988, followed by the sequels Cyberpunk 2020 in 1990, Cyberpunk V3.0 in 2005, and Cyberpunk Red in 2020.

The computer game Cyberpunk 2077, based on the tabletop game, was announced in May 2012 by developer and publisher CD Projekt Red. Trailers for the game were released in January 2013, at E3 2018, and at E3 2019 where an initial release date of 16 April 2020 was announced. The game was delayed to 17 September, then 19 November, and finally 10 December.

DXR ray tracing in Cyberpunk 2077 – which enhances game graphics with physically-simulated lighting, shadows, and reflections – was exclusive to Nvidia RTX GPUs until the February update arrived on March 29, adding support for AMD RX 6000 GPUs. Ray tracing for PS5 and XboxSeriesX is expected in the “next-gen update” coming late 2021.

The game was widely criticised for failing to deliver on promises of deep character customisation, branching plot lines with meaningful choices, and a vast open world full of lifelike non-player characters. Sony removed the game from sale on the PlayStation store and offered refunds due to terrible performance on the PS4.

For gamers who have a powerful gaming PC and can ignore the bugs and missing content, Cyberpunk 2077 is still one of the best games of 2020. And with ray tracing enabled it becomes one of the most visually impressive games ever made.

Can Microsoft’s Surface Go 2 tablet PC run Cyberpunk 2077?

Microsoft’s Surface Go 2 is a 10.5 inch tablet PC running Windows 10 with about as much computing performance as my desktop PC had 10 years ago. You could do lots of things with your PC in the year 2010. This can do those things. And it’s the size of a book, with battery life between 3 and 12 hours depending on usage.

I chose the non-LTE model with Intel Pentium Gold 4425Y and 8GB RAM because the faster CPU in the LTE model is still too weak for serious computing, so it didn’t seem worth the extra cost. The hotspot feature on my phone works well for the rare occasion I’m away from Wifi. The 128GB NVMe SSD is fast enough, and it has a microSDXC slot for additional media storage.

The Type Cover keyboard is just a little too small for my large hands. After five minutes of Pacman DX on the tiny arrow keys my hand was actually hurting. As a highly portable device that allows me to write code literally anywhere, it gets the job done, but I would plan ahead and take a larger keyboard if I had to use this all day.

My only real criticism is that the USB boot menu only worked one time, then never again. Holding volume-down while turning on the device just boots into Windows ignoring my request for alternate boot options. Seems like a BIOS bug. I can still boot into Linux on USB by holding shift when I restart from within Windows.

Here’s some footage of old games running on the Surface Go 2 at 720p, captured on the tablet with OBS using the Intel Quick Sync Video encoder.

Now let’s see if a Surface Go 2 can play Cyberpunk 2077…

Short answer: No.

The game launches, character creation works, but as soon as the actual game starts it will crash out after rendering a few frames. It seems to be a low memory problem, since this device only has 8GB RAM with up to half of that shared with the GPU.

Here’s how you can really play Cyberpunk 2077 and other high-end games with RTX ray tracing on a low-end computer: Set up your own personal cloud gaming server using a Nvidia Tesla T4 GPU with Tensor cores, RT cores, and 16GB VRAM.

You will require the following:

  • A Windows/Linux/Mac device with Steam installed.
  • An account at Amazon Web Services and some money to spend.
  • 25Mbit internet download speed.
  • Ethernet, or good 5GHz Wifi.
  • Ping time less than 50ms to an AWS datacentre (see cloudping).

Start by logging in to the AWS Management Console. Switch to the region that has the lowest ping time for you. Go to the EC2 service, Security Groups, Create security group. Name the security group something like “Allow all”. Add an inbound rule with type ‘All traffic’ and source, there should already be a similar outbound rule. Press Create security group.

Now go to Instances and press Launch instances. Select the AWS Marketplace and search for “NVIDIA Gaming PC – Windows Server 2019” then press Select.

Take note of the pricing on the next screen, in US Dollars. EBS volume storage in my region is $0.12 per GB-month, or $12 per month for a 100GB volume that should be enough for one large game. I have to pay this regardless of whether or not I’m actually using it. The other cost is the hourly fee by instance type. I am selecting the g4dn.2xlarge instance type with 8 CPU cores (at only 2.5GHz, maybe not great for certain games), 32GB RAM, and 25Mbit internet bandwidth. The standard price is $1.346 per hour that the instance is running. If I play for 1 hour every day (on average) and always remember to shut down the instance when I’m not using it, the running cost will be about $40 per month on top of storage cost. That works out to a total cost of $635 in a year, less than the current price of a GPU, and far less than an entire high-end gaming PC.

Star Trek invented the Tablet PC about 30 years ago.

On the next page choose the g4dn.2xlarge instance type then press Next. Tick ‘Request Spot Instances’. The standard price for this instance is $1.346, but you can get a significant discount if you bid for spot pricing. You will pay a lower rate when there is less demand for these instances, at the risk of having your instance stopped (and being kicked from your game) if demand pushes the spot price higher than your bid. To be safe, set your Maximum price to be the regular price of the instance. You will almost always end up paying less. At the current spot price in my region, that yearly cost estimate works out to be only $384.

Another problem with spot instances is that sometimes you will be unable to start, even if the spot price appears to be lower than your bid. The spot price is a smoothed average and doesn’t reflect sudden surges in demand. You might just have to try again later.

Tick the box Persistent request and Change Interruption behaviour to ‘Stop’, otherwise your EBS volume and all your data there will be deleted when you shut down your instance. Press Next. Change the size of your root volume to 100GB (it can be increased later). Ignore the ephemeral0 volume, it is a high-speed temporary volume that is wiped when your instance is stopped (meaning it will survive reboot, but not shutdown). Press Next, add tags if you need to, Next, now select the existing security group you configured earlier. Press Review and Launch.

You will be asked to choose an existing key pair or create a new one. This will prompt you to download a file. Save this file somewhere, it is required to retrieve the login password later.

Your instance is now starting up. Wait 5 minutes.

Go to Instances and see your new instance in the list. Press the refresh button until the Status check column shows a green tick. Give your instance a name if you like. Tick the box next to your new instance, then at the top press Actions, Security, Get Windows password. Use your key file here to decrypt your new Windows password.

Find the public IPv4 address of your instance in the instance details. This address will change every time your instance is stopped and started. On your computer launch Remote Desktop Connection and enter your instance IP address. The username is Administrator. You should now be logged in to the remote desktop of your new personal cloud gaming server! The rest of these instructions take place inside the remote desktop session.

Microsoft Surface product placement in Ghost in the Shell: Arise.

Firefox is already installed for you. Open it and download the virtual sound device VB-CABLE. Extract the zip then run VBCABLE_Setup_x64.exe to install it. You won’t notice any difference here because local sound devices are hidden from the remote desktop.

Click the start menu and type ‘Services’. Find the service called Windows Audio. Start this service now and set it to start automatically.

Click start menu again and type ‘Device Manager’. Disable the Microsoft Basic Display Adapter.

Right-click on the desktop and select New Shortcut. Enter this:
tscon.exe %sessionname% /dest:console

Give the shortcut a name like “Disconnect without locking”. This is very important. If you close the remote desktop connection the normal way, the remote screen will lock and you cannot stream games. Use this shortcut to close your remote desktop while keeping the remote screen unlocked.

Install Steam and log in to your account. Install Cyberpunk 2077.

In Steam (in the remote desktop) open Settings, Remote Play, Advanced Host Options. Untick Enable hardware encoding to improve streaming quality.

Finally, use the shortcut on the desktop to close the remote desktop session without locking the remote screen. Each time you start (or restart) the instance you will need to log in to its remote desktop, make sure Steam is running, and use the shortcut to close without locking.

You can now log in to Steam on your Surface Go 2 or other low-end device at home. Mac and Linux can do it too. Steam should automatically detect that you are also logged in to your cloud instance, and any games you have installed there should show up in your local games library. Select your game and press the big green button that says STREAM.

If you purchased the game from GOG you might run into problems here. GOG Galaxy doesn’t work in remote desktop. To work around this issue, in Steam click the Games menu, Add a Non-Steam Game to My Library, then tick GOG Galaxy. On your local PC, find GOG Galaxy in your Steam library and click STREAM – this will appear to fail, but when you connect to the remote desktop again GOG Galaxy will now be running. Ignore the connection error, don’t click OK, just wait and it will soon allow you to install games. After installation, add Cyberpunk 2077 to Steam as a Non-Steam game.

You could also try alternate remote desktop software (VNC, Chrome Remote Desktop) and/or alternative game streaming services (Rainway, Moonlight). It might help to establish a VPN connection between your home PC and the cloud instance. I chose to use Steam for this experiment because most of the time, for most games purchased through the Steam store, it just works. You can even stream games to the Steam Link app on your Android phone or TV!

Remember to Stop (not Terminate) your instance when you are not using it, to avoid being charged the hourly fee. You can either shut down from the remote desktop, or change the instance state in the EC2 management console.

To permanently delete your instance and the EBS storage volume go to Spot Requests, select the request associated with your instance, press Actions, then Cancel request. If you just try to Terminate the instance itself, your Spot Request will automatically start another instance for you.

I strongly recommend that you also set up AWS budget alerts to notify you when your monthly spend exceeds a certain amount. This will help to warn you if you accidentally left the instance running longer than intended, or misconfigured it in some way that would incur higher costs.

Here’s the result: Cyberpunk 2077 running in the cloud, streaming to my Surface Go 2 (on good 5GHz Wi-Fi) at 1080p with ray tracing enabled using the settings recommended by Digital Foundry.

The streaming input latency is 3.9ms and display latency is 23.5ms as reported by Steam’s performance overlay. This is an imperceptible delay for most people, good enough for single-player or casual multiplayer gaming.

If you are unwilling to pay inflated prices for high-end gaming PC components, and don’t want to wait another year for the next-gen console update, then paying by the hour for an Amazon server is a surprisingly good way to play Cyberpunk 2077 (or any other PC game) with ray tracing enabled.