Cloud Gaming and Video Streaming Solution
- #Computer vision
About the Client
Boosteroid is a cutting-edge cloud platform that delivers an advanced cloud gaming experience for everyone.
First, this project aimed to find a new use for GPUs after they became less popular in the mining industry. Therefore, our client has developed data centers and installed many servers, enabling many use cases for applying the solution to real users.
We helped our client develop a service for the sale of playtime and bring this solution to a completely new and accessible level for the user. Boosteroid has some competitors on the market, like Nvidia GeForce Now and Google Stadia. Our challenge was to make significant architectural solutions to provide the lowest playback latency, HD video quality with high FPS, and smooth gaming experience to compete with these solutions worthily.
We entered the Boosteroid project at the very initial stage of building the system. In terms of the project, we worked with solutions for multiple data centers and the cloud. We developed and implemented some different tech solutions:
1) A private cloud solution spanning multiple datacenters with peculiar properties such as:
- Attachment of drive with the game on the fly
- A pool of running VMS to minimize startup time
- PCI passthrough of NVIDIA GPU in KVM and ESXi hypervisors
- 3 types of networks: management, video/audio, and game data, also, the own traffic shaper with 1ms precision
- Copy to/from VM user save data
- NAS with games with caching of most popular ones
- Monitoring system (latency, crashes, etc.)
2) Software running on Windows VMs to emulate keyboard and mouse and grab video (Desktop duplication API) and audio
3) Software to manage a WebRTC streaming media server (Janus) and control games running on VMs and such aspects as resolution, FPS, etc. Development was on NodeJS and C.
The application of this technology is quite varied. As a result, Boosteroid now sells this solution as PaaS and SaaS to other companies which produce games and other software.
Let's discuss your idea!
We developed native apps for macOS and Windows using C++ and Qt. The primary language we used for the web part was Python.
The FFmpeg framework was modified for encoding and decoding video, and we used the SDL 2.0 cross-platform framework for virtualization and mouse move analysis.