/parsec-google-cloud-gaming

Play games like Doom Eternal on any laptop with max settings!

Primary LanguageHCL

Parsec + Google Cloud Gaming PC

What is this?

This repo sets you up to play games like Doom Eternal on your own laptop! You can play with all graphics set to max since you'll be streaming the screen from a beefy gaming PC in Google Cloud.

We just need to set up two things:

  • A Parsec account. This lets us stream the screen from the server at super low latency. It's like Google Stadia but better, in my humble opinion.
  • A Google Cloud virtual machine with a Telsa P100 GPU running Windows Server 2019
    • If you haven't signed up for Google Cloud before, you get $300 in credits for free!
    • The virtual machine costs about $1.30/hour to run. Don't worry about getting overcharged — we'll set up your machine to shut down automatically when you're done playing

Guide

This should take about 30 minutes to set up. Could take longer depending on how fast Google responds to you via email after step 4.

  1. Sign up for Google Cloud. Choose the Google account you'll want to get your bill under.

  2. Once you're at the main Google Cloud console page (console.cloud.google.com), let's create a new Project

    1. Click My First Project at the top of the page a
    2. Click NEW PROJECT at the top-right of the modal
    3. Call your new project Parsec
    4. Wait until your new project has finished creating
    5. Important: Use the same button to change to your new Parsec project. If you do this correctly, you should see this:
  3. Using the search bar up top, search vm instances and click the result labeled "Instances" b

    1. You'll be brought to a screen saying

      Compute Engine is getting ready.

      Wait for this message to go away — this should take a few minutes.

    2. Click Create but don't do anything else. Move on to the next step.

  4. Request an increase to your GPU quota. We need to ask Google Cloud to let us create a machine with a GPU attached.

    1. In the search bar up top, search all quotas and click the result c
    2. Under the dropdowns, you'll see a banner asking you to upgrade your account. Once again, make sure that your active project is the Parsec project. If it is, click "Upgrade Account" (twice), then refresh the page d
    3. Click the dropdown for Metrics and click None to deselect everything.
    4. Search GPUs all and select the only option e
    5. Click the checkbox on the only result in the list, then click "Edit Quotas" at the top of the page f
    6. In the right-side drawer:
      • Fill out your info and click "Next"
      • Request a new quota of 1 (up from zero) and provide a request description — be creative 🤷‍♂️
      • Click "Done" on the small box first, and then click "Submit Request"
    7. Google now has to approve your quota increase. They'll send you an email when they confirm. This may take a while, but in practice it takes less than an hour. Move on to the next step while you wait.
  5. Download and install Parsec. Open Parsec and make an account. You'll eventually need to sign in on the cloud machine as well, so remember your username+password!

  6. Download and install VNC Viewer. You will this later to set up GPU and display settings using remote desktop on your cloud machine.

  7. Download the default Service Account key. This will give Terraform permission to create your machine later in step 9.

    1. Go back to the Google Cloud console
    2. Search credentials at the top and click "APIs & Services" g
    3. In the left-hand drawer, click "Credentials"
    4. Under the "Service Accounts" section, click the one named "Compute Engine default service account" h
    5. Click "Create Key" at the bottom, choose JSON
    6. Save the key as account.json to root of this repo
  8. Wait until Google Cloud approves your GPU quota increase from step 4.

  9. Create the virtual machine. You'll need to open the Terminal for this step.

    ⚠️⚠️⚠️ WARNING! ⚠️⚠️⚠️ This step will start your cloud machine and you will start getting charged! Don't stop following the guide here, or make sure to stop the machine before leaving!!!

    1. In the Google Cloud console, copy your project ID from the dropdown at the top.
    2. Edit the file terraform/main.tf and change the placeholder at the top with your project ID.
    3. Use Terraform to automatically set up your machine. Open terminal and run the following
    brew install terraform
    cd <REPLACE ME WITH PATH TO REPO>/terraform
    terraform init
    terraform apply
  10. Set a Windows password

    1. Go back to the Google Cloud console
    2. Using the search bar up top, search vm instances and click the result labeled "Instances" i
    3. Click on your newly created instance called parsec-1
    4. Near the top of the page, click "Set Windows password" j
    5. Follow the instructions and save the generated password
  11. Use RDP to connect to Windows VM

    1. Click "RDP" near the top of the instance info page
    2. Follow Google's instructions until you get to the remote desktop — the Chrome extension will work just fine
  12. Once you're on the remote desktop via RDP, let's set up Parsec. This step takes a while.

    1. Follow steps 3 and 4 at https://github.com/jamesstringerparsec/Parsec-Cloud-Preparation-Tool
      • You don't need to sign up for a Razor account
    2. Open "Auto Login" on the desktop and run "Setup Auto Login"
    3. Run "Setup Auto Shutdown" on the desktop. Choose a reasonable time — I use 30 minutes
    4. Open Google Chrome and download the latest Google Cloud NVIDIA driver from here: https://storage.googleapis.com/nvidia-drivers-us-public/GRID/GRID10.1/442.06_grid_win10_server2016_server2019_64bit_international.exe
    5. Run the downloaded .exe to install the driver
  13. Set up VNC

    1. From the start menu, search "tightvnc" and run "TightVNC Service - Control Interface" k
    2. In the bottom-right icon tray, click the TightVNC icon l
    3. Use password 4ubg9sde to unlock the settings
    4. Important: Change the VNC password to be your Windows password
  14. Restart the host and connect with VNC.

    1. Restart Windows using the start menu
    2. Wait 2 minutes for your host to reboot
    3. On your Mac, open VNC Viewer, installed in Step 6
    4. Copy the External IP address of your cloud machine from the info page on the Google Cloud console m
    5. Paste the IP into VNC Viewer to connect to your machine. The password will be your Windows password which you just set
    6. You should be connected to the host via VNC now!
  15. Last bit of Parsec setup. Home stretch!

    1. From VNC, open Parsec and sign in

    2. Go to Settings. Scroll to the bottom and click the small text saying edit the configuration file directly. Paste these settings and save the file.

      NOTE: Adjust the screen resolution as necessary. These values are tuned for a 15" Macbook Pro.

      app_run_level = 3
      network_server_start_port = 8000
      client_decoder_h265 = true
      server_resolution_x = 2880
      server_resolution_y = 1800
      encoder_h265 = 1
      
    3. From the icon tray in the bottom-right of the desktop, right click on Parsec and restart it.

    4. Right click the desktop and open "Display Settings"

    5. Click on Display 2 and check the box that says "Make this my main display"

    6. Set the scaling factor to 150%.

  16. On your Mac, open Parsec and connect to your cloud machine. Done!!!

At this point, you can install Steam and whatever games you want. Voila!

Don't forget to turn off your machine when you're not using it, or you'll be charged! Google Cloud charges by the second.


Troubleshooting