The road to success: how we made Shadow USB-friendly
Want to use your USB devices on your cloud computer? Sure thing! Here’s how we make your hardware work through Shadow.— July 29th, 2019 ago
We want your Shadow PC to feel totally unique to you. Not only should it show off your video games library in the best possible light, it should be customizable and - most importantly - allow you to use your physical hardware when gaming.
Most of us rely on specific equipment to be the best players we can be - whether you have a soft spot for the classic keyboard and mouse combo, have rocketfire reflexes on a controller, or use a robotic fire-eating T-Rex to do your dirty work. That’s why we’ve developed your Shadow computer to make it compatible with your USB devices over our network... so that you can use whatever hardware you need to become the next gaming superstar. Nice.
Putting our minds to the task
Originally, we developed USB compatibility for the Shadow Box, so that the information from your USB device (typically, a keyboard and mouse) could be transferred from the box itself to your Shadow computer via our network.
Simple(ish) as that sounds, the code for making this happen was extremely complicated.
You have noooo idea what’s behind this…
Fortunately, our devs were up to the task, and found an innovative way to make it work. We got our Lead developer Apps, Étienne de Thoury, to explain their solution in more detail:
"The data and signal from a device cannot be shared between Shadow and a local machine. So we thought of a system that could transfer all of this information directly into our network - without it ever reaching the local machine - as a sort of alternative route. This was a trick that already existed in the cloud industry, but we had to design it from scratch for Shadow.”
Clever, right? Well, it gets cleverer
After developing this, we then followed a similar route to make your USB devices compatible with Windows applications… with one big difference. Once you launch Shadow, and you’ve connected your USB device to your local PC, your device’s data goes straight to your Shadow server. By making this direct connection, we’ve been able to ensure greater compatibility and reliability between your devices and Shadow. *Happy sigh*
It’s worked so well, we’ve used this same technique with storage devices, including external hard drives and USB sticks (in which data flows over the network). Naturally, the throughput varies according to the speed of the upload throughput of your network - the only variable which doesn’t depend on us.
While we weren’t able to follow the same process with MacOS and Linux applications - because, simply put, they operate differently than Windows - we’ve managed to find another way to make USB devices work with them (yep - we aim to please). Again, we asked Étienne to expand:
"When we first began looking into USB compatibility across devices, there were very few MacOS developers. As a result, we didn’t have enough resources or time to fully devote to the development of this option. Thankfully, things are different now. We have the necessary means, and the code has been completely reworked to make it compatible with MacOS. It’ll soon be available on Linux, too!"
Good things come to those who wait
The ability to use your USB devices through Shadow is now available on both Windows and MacOS applications (with Linux on its way). There’s still a little work to be done to make this functionality top tier, but we’re on the right track.
Keep your eyes peeled for updates, and as always, let us know what you think over on Discord!
Want to learn more? Sign up for our newsletter if you want to stay informed about the latest news regarding Shadow!