-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This script was forked from acceleration3's "cloudgamestream" so the most thanks goes to the original creator.
This script is made by an individual and is provided as-is, with no guarantee of updates. The project is licensed under the MIT license. This page is an overview of the script and provides in-depth information on how to use it. It assumes you understand the project based on it's README. Contributors should make sure the tutorial and information they write is as easy to understand as possible, so that as many people can understand it. This script is meant for people who don't understand much about the cloud (or even computers) and it also allows you to reverse any step. Nothing in this script is permanent. If you need help reversing a step you don't want, make an issue on GitHub.
Keep in mind, this script was made for other uses than gaming. Your use case always changes based on what you need. Sometimes, you may only need a workstation and only need access to it for a couple of hours each week. This may be because you are travelling and your computer is at home, doesn't have the equipment you need, or your home internet may be too slow to stream your personal computer. Cloud computers provide easy access to powerful computers, for a wide range of people, and in some cases, are affordable for long term use. This script is open and allows anybody, even someone in a commercial setting, to setup a cloud machine. Due to the script's flexibility, it can be ran on multiple cloud computers and automated to save time.
Security is of the utmost importance. Please report any security flaws you find as an issue. Please note that the script is using a security analyzer, so please check the errors listed there before submitting an issue. If possible, provide why this is an error or security flaw, and how to fix it, to better help contributors. All files that are downloaded are from official sources. If something is hosted on an non-secure file server, that's just the way it was provided to the public, and contributors cannot change this fact. If possible, solutions or alternatives can be provided. If you are worried about third-parties accessing your cloud computer, you can change network security settings to only allow access to the needed ports by restricting connections only to the IP address you provide. This process changes based on the cloud provider.
Any GPU is supported, the same goes for the cloud provider and Windows OS. However, that doesn't guarantee all features and automatic parts of this script will work correctly on your setup. If the server's operating system is a version of Windows Server, the script will work perfectly. The guides that are included in this wiki, like for AWS, are the officially supported set ups for this script and have been tested on real cloud server, therefore making them guaranteed to work with the script. When launching a server, make sure that you are running Windows Server 2019. If you can only select newer versions, it will still work, but it may not have been officially tested.
Once you've connected successfully to your server, copy-paste the code below into PowerShell:
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
$DownloadScript = "https://github.com/chocolatemoo53/cloudstreaming/archive/refs/heads/main.zip"
$ArchivePath = "$ENV:UserProfile\Downloads\cloudstreaming"
(New-Object System.Net.WebClient).DownloadFile($DownloadScript, "$ArchivePath.zip")
Expand-Archive "$ArchivePath.zip" -DestinationPath $ArchivePath -Force
CD $ArchivePath\cloudstreaming-main | powershell.exe .\welcome.ps1
Thank you goes to Parsec for creating that command. It was modified to download this script, instead of the Parsec Cloud Preparation Tool.
The beginning of the script, also known as step one, is located inside the "steps" folder. Step one is not very complicated, it uses some basic code to download then install a file from the internet. All files come from their official source. There are no buckets for files managed by anyone who works on the project.
This prompt allows you install GPU drivers on either AWS or GCP instances. AWS does a normal install as detailed in the AWS documentation while GCP uses an installation script provided by Google Cloud themselves.
This prompt asks you if you'd like to download audio drivers. If you decide to, the script will download donation-ware named VB-CABLE Virtual Audio Device, or VB-CABLE for short. At the time of writing, it is the only audio driver to work fully with each streaming technology. An exception to this is NiceDCV, as it provides high quality surround drivers for use with the program.
This prompt asks you what "streaming technology" you'd like to install. At the time of writing, the script supports NiceDCV, Parsec and Sunshine.
Here is a table comparing each program:
Feature | NiceDCV | Sunshine | Parsec |
---|---|---|---|
Supported devices | Desktop (Windows, MacOS (ARM, X86_x64) Linux) | Desktop (Windows (ARM, X86_64), MacOS (ARM, X86_64), Linux (ARM, X86_64), gaming consoles, RPI, Android, IOS, streaming boxes, Steam Link, FireOS tablets etc | Desktop (Windows, Mac, Linux), Android |
Supported clouds | AWS, costs money for others | Any | Any |
Supported resolution | 4k, multiple monitors | 4k, unsure about multiple monitors | 4k, pay for multiple monitors |
Controller support | Supported with Windows client | Requires a patch | Requires a patch |
Price | Free with AWS, costs on other clouds | Free and open source | Free but can pay for more features |
Support | From AWS | Community support | Unsure |
Documentation | Documentation provided | Documentation provided | Support site with info |
Step two will check if you're using a Windows Server. If you aren't, a portion of step two will be skipped as it is not required for normal Windows. If you are, it will apply the same fixes the Parsec Preperation Tool does.
Enable-MMAgent -MemoryCompression | Out-Null
Memory compression is enabled inside of Windows 10/11 by default to get more out of your physical RAM by compressing some of the pages.
Set-Service -Name Audiosrv -StartupType Automatic | Out-Null
Sometimes, in Windows Server, audio drivers don't start up automatically. So, occasionally, the driver will not turn on when the computer does. This gets rid of the chance of this happening, if there is even a chance it can.
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "ServicesPipeTimeout" -Value 600000 -PropertyType "DWord" | Out-Null
This simply gives more time for services created by the script to timeout. Which can be important depending on the scenario.
After applying fixes, the first prompt is your password. It doesn't have to be auto-generated, it's just common for cloud providers to auto-generate the password for you. This is stored as a secured value to PowerShell and then passed onto the registry. Auto-login is set up since some applications will not start up with the computer unless you are logged in. In the case with something like Sunshine, the computer needs to be logged in to make a connection.
The next prompt is your time zone, you can leave it blank and is only for convenience. It may be useful to set depending on your preference.
This step gives you the option to download (mostly closed sourced) software from their official sources. This step just makes things easier to get set up on your cloud computer. Since this script is also for gaming, there are a few game clients. Everything will install silently and be setup just like if you did it yourself! Why have it? It's only because most people want to quickly go through the process of setting up their cloud computers. The script helps to get rid of going to all the links you might normally go to on a new computer.
Like many projects on GitHub, you can contribute your code to this project. Here's the proper steps to do so:
- Fork the script
- Write your code
- Send a pull request and get approved