Shadow PC Review
Shadow PC, https://shadow.tech, is a remote hosted Windows 10 gaming platform. Of course, you can use it for whatever you like, but with a GPU, CPU, and RAM combo built for gaming, I'm going to use it for gaming. The Shadow service is still in beta at the time I'm writing this article, so many features are not available. I'm going to review the beta service, but keep in mind, as with all beta things, anything can happen, and it typically does. I also should note that they offer a beta client, but for the purposes of this article, I am only using the production code of the Shadow client. Like other remote access hosted systems, Shadow uses a hypervisor to carve out virtual gaming machines (VM). You might have used a VM at work, and you also use VMs if you use Wix or store files in "the cloud." The difference between those VMs and the Shadow VM is that the Shadow VM was designed to support gaming clients. The secret sauce is the streaming tweaks that send you reliable, encrypted traffic between the VM and the client, so you end up with a smooth-ish private-ish gaming experience. Evaluating their hypervisor and security methods are beyond the scope of this article, but buy me a beer sometime and we can chat about it.
Test Goals and Configuration
My goal for using and testing Shadow is to play the latest games in 4K UHD (2160p) with very low latency (< 50 ms round trip, including the client to VM leg) at a high frame rate (> 50 FPS at the VM and client). This goal will allow me to travel from my central-USA home with a cheap-ish laptop to anywhere near (about 3,000 KM) the Shadow data center hosting my VM, and connect to Shadow for a great gaming experience. Also, if I forget my laptop, or in the case of my Alienware laptop the solder comes off the RAID controller during the flight, I can use whatever machine is available (Windows, Mac, or Android) to game when I land. The specifications for the default configuration of Shadow should enable me to meet that goal: GPU - NVIDIA Quadro P5000, equivalent to a 1080 on this platform GPU RAM - 1 GB Native resolution - 1920 x 1080 CPU - Intel Xeon E5-2620 @2.1GHz with 4 cores System RAM - 12 GB Storage - 256 GB flash (SSD) Network - 1 Gb/s with tier 1 IPv4 peering (no IPv6)
In addition, you need a broadband connection for the client to get the most out of Shadow. According to Shadow, you need at least 15Mb/s to run the Shadow client, although you can set the client to 5, 10, 15, 20, 30, 40 or 50 Mb/s. I am lucky to have a 1 Gb/s fiber connection at home, so I'm all set, and used the max of 50 Mb/s.
Before testing, I made sure I updated Windows and the NVIDIA drivers. Then I installed two AAA production release games that should have no trouble, one beta game that should not be a problem, and one game in alpha, so it will present some challenges due to not being optimized. The games I have tested are Elder Scrolls Online (ESO), Riders of Icarus (RoI), Citadel, and Star Citizen. Each game was configured with ultra-high graphics and anti-aliasing.
Since Shadow boasts Windows, Mac, and Android clients, I tried them all. I decided to stick to the Windows app for this test because that is my main use case.
The Shadow installer was in French, but luckily Google can translate a little, and I recognized a little and was able to creep along without making too many mistakes. One weird and very annoying thing happened with the Shadow installer. When I rebooted the Windows rig I was using to run the client, the Shadow shortcut lost the link to the app. I could see the link source, but Windows no longer recognized the symbolic link. Then, when I opened the app from the installed folder, it re-installed the app and Windows recognized the symbolic link again. I uninstalled the app, re-downloaded the (French) installer, and re-installed the client. I didn't know the root cause, but it is Windows, so re-boot and re-install, right? Well, the Shadow app did the same thing when I rebooted. I sent a note to their support team, who responded quickly (a few hours) and asked me for dxdiag from the local OS (I know, I questioned this too, and I figured they have to jump through hoops, so do I) and log files. While I was gathering data, and trying to respond to the ticket (my French is, uh, no bueno, so I think I was responding to whatever "afficher le ticket" means), my third reboot worked. Now the app doesn't lose its symbolic link after reboot. The 64-bit Windows client gave me some grief but eventually worked. The Mac client and the Android client both worked smoothly, and an iOS app is in development. I ran all the games that would run (no RoI) on all clients, so I can report that they all worked, except for RoI.
I ran into a ton of trouble running several games, so this gaming solution is not for the faint of heart. You need to have some solid PC and VM troubleshooting skills to use Shadow at this point. Hopefully, that will change as the product matures. Installing some of the games presented unique challenges. ESO seemed to install without error, but when I ran the game client the installer popped up and wanted to install the whole 86 GB game again. Of course, by that time I had run out of storage with the dinky 256 GB they offer, so I uninstalled ESO and ran the installer again. The second time worked, and ESO ran without error after that installer glitch. Citadel installed just fine, but RoI threw several errors (in addition to the C library error, amateurs). After three hours of troubleshooting, I was only able to get RoI to run up to the loading screen, then the game would crash and not recover. To be fair, RoI gives everyone some lip installing and running, but I am generally able to resolve all issues in an hour. I like to try RoI when testing games because it is a white hot mess, and if anything is slightly amiss with your system, RoI will crash and burn like a diesel smoking bus full of Ebola victims.
Another game installation issue I had was with Star Citizen. This game is in alpha, so I expected some wonkiness. The game installer didn't recognize the storage device offered by the hypervisor and Windows. I tried to open a support ticket again, but faced with a wall of French merde, I simply decided I didn't have the time. For some reason, their support site thought I was French this time. Anyway, as a hack, I decided to try installing on a Windows virtual drive. That hack worked, and I was able to install and run Star Citizen 3.2. As a consumer, I shouldn't have to resort to hacks to make stuff work. Now I need to mount and monitor an additional drive every time I boot up, and split up valuable storage extremely inefficiently in order to play. In addition, playing off a virtual drive adds a layer of delay on top of Shadow.
4K gaming with the current version of Shadow, 1.0.15, is precarious. With regular stops and stutters, gaming becomes a little infuriating, like fishing in Ultima Online with a 9600 Baud modem. Switching from 1080p to 2160p dropped FPS to 30, and increased the delay to the point that the games stuttered. At 1080p, I typically see 50 FPS. I was able to use some TCP tweaks to get ESO up to 45 FPS at 4K, so there is some hope of getting a great gaming experience.
Network delay also caused some issues. For the games that worked (all but RoI), network delay ranged from 90 to 167 ms, with an average of 135 ms. That high delay will wreak havoc on modern games. Star Citizen had the lowest average delay of 115 ms due to connecting with a Star Citizen server in Germany.
Regarding system memory, 12 GB is not sufficient to support modern gaming. For example, Star Citizen threw a warning about needing more available system memory. If I turned everything else off, I was able to free up enough memory to run Star Citizen.
From a bandwidth utilization perspective, with a 4K game running and two 4K kaleidoscopes courtesy of youtube, the Shadow client sailed along quiet and efficient. The peak utilization was 1.5 Mb/s, which is very impressive. I wasn't using the H.265 codec at the time of this test, so I was very pleased to see Shadow using an efficient compression algorithm.
The general feel of playing a game while streaming it from Germany was surprisingly realistic. My senses perceived a very slight movement delay during gameplay. That could have easily been a result of the decreased framerate since I'm used to 4K at 120 FPS on my main game rig. Still, it was very difficult to tell the difference between my local game and my remote game. Occasionally the mouse would do wonky things, like increase sensitivity by 1000, but not register in the mouse control panel, so any movement whatsoever spun me around in the game. Also, moving the mouse between the remote session and my local machine would sometimes result in a view change in the remote session, almost as if the remote system had to learn what device just connected. I'm not sure I would try any hardcore endgame content until I felt more secure in my ability to compensate for the remote game session. However, that feeling eased a little after playing in the remote gaming session for a few hours. Based on that practice, I believe the combination of designing the Shadow service to run from USA based locations and playing on the remote gaming session will acclimate me to the experience.
Based on my results, below are the pros and cons analysis, along with some recommendations for improvement.
1) provides a safe-ish, smooth-ish gaming experience with AAA production games 2) Windows, Mac, and Android clients (iOS coming too) 3) ability to tweak TCP input performance 4) at USD $35 per month, it would take you about 43 months, or 3 years and 7 months to save up enough money to buy a similar desktop system that would be obsolete by the time you save up all that money to buy the system. Of course, that calculation changes if Shadow changes the price, and also assumes that Shadow continues updating/upgrading their systems so you are always playing on the latest hardware (even if it is virtual).
1) data center in Germany 2) support site in French 3) installer in French 4) only accept USA orders in CA, so you have to fudge it a bit to sign-up 5) no options for super-sizing your VM - no added cores, storage, GPU RAM, etc., you get what you get and you don't throw a fit 6) locked into whatever their hypervisor supports 7) no options for overclocking 8) 4K performance drops to 30 FPS 9) several games have issues running on this platform 10) average network delay of 115ms is way too high modern gaming 11) only 12 GB of system memory limits the games that can be played 12) no IPv6
Room for Improvement
The good news is that Shadow has nowhere to go but up. Seriously. To compete in North America, they will need hardware in the American football city data centers. The VPN to Germany isn't going to win, it kills the gaming experience with high network delay. They also need to localize in American English, with every aspect of their service. From cradle to grave, American consumers expect an American experience. Shadow also needs options, tons of options. I want 1 TB storage for my games (some of my games take upwards of 100 GB, so that is still only about 10 games, today). System memory was a limiting factor too. A minimum of 16 GB would qualify Shadow for more demanding modern games (you know, other than Roblox or Minecraft). My main gaming rig has 64 GB, and I use half of that regularly. I would also like to overclock the hardware and SLI the GPUs, but I realize that is challenging. I also want to be able to copy files from my Shadow desktop to my local desktop, without any lip.
Quality Assurance has to be funded at least as much as development at Shadow, and QA needs to report directly to the CEO - and definitely not to anyone in development. QA needs to test the crap out of every Windows gaming permutation, focusing on the most popular games first, and get bugs squashed with a ton of political clout. A game like Star Citizen will surely test everything and push the limits of everything you can get out of the VM. If you've never developed a Windows game, testing every third party driver is a daunting task. At least they don't have to test AMD crap. QA needs to be sure that the gaming experience is at least no worse than any other Windows gaming experience. I got a chuckle out of writing that, but please try to impress me. When performing QA on a game you must ask yourself, "Would I play this game?" The same goes for gaming systems.
Shadow also needs global server load balancing, with local caching, and high availability systems throughout the supply chain in order to consistently deliver the best gaming experience. They may not need the scale of Netflix, but they certainly need the reliability.
Shadow is off to a good start, and I will continue monitoring their development and will be sure to pass along any juicy tidbits. However, currently, I cannot recommend Shadow to people I respect.
A NUC in Time
Tired of playing like its 1999? Shadow is working on a NUC-like (Next Unit of Computing) box to allow you to use their service and game like a 2018 pro at 4K (2160p). At the time of this writing, Shadow supports 4K display on their GPU, but the performance recommended resolution is 1080p. Switching to 4K negatively affects the video lag currently, and drops the FPS down to 30. I hope they fix their server-side optimization such that their box, as well as any other 4K client, can use 4K without performance degradation.
I've uploaded a gameplay video at https://youtu.be/vOejffRIrCY that was recorded on the remote Shadow PC, as well as a snippet that was recorded on the local host to show you how it plays and what it looks like on the local host. There is a full-screen option on the Shadow client, but I wanted to show you what it looks like from the local host perspective.
Very early in the beta cycle, and very early in the funding and scale cycle. Don't buy this yet, unless you like troubleshooting PC and VM issues and have some serious technical chops. With servers and support in Europe, it may be a while before they are ready with a USA product.