The rewards of streaming interactive 3D applications for business use-cases are many, but so are the challenges for doing it right. For companies that want to share their photorealistic configurator, training simulation, or other immersive 3D content on a global scale, the experience needs to be engaging, intuitive and seamless. But what do you need to know when you're considering streaming interactive 3D content for your business from a cloud platform, and how does it work?
First, cloud streaming at scale is vastly different than streaming to a small number of users. Game engines like Epic's Unreal Engine and Unity have their own streaming solutions, called Pixel Streaming, and WebRTC framework, respectively. These solutions focus on getting an interactive stream out of the game running on one workstation or VM and into a web browser for another computer to access, which is small-scale one-to-one sharing.
3D Streaming challenges
Small-scale interactive streaming is about capturing video data, encoding and transmitting it, and then decoding it as quickly as possible. Cloud streaming builds on the core functions necessary for small-scale streaming but more importantly, it is about managing GPU-enabled cloud infrastructure on a global level — distributing games and interactive 3D models to different geographical regions, load balancing global traffic, and scheduling users, all in the most efficient way possible.
Interactive 3D streaming in the cloud presents the challenges of a globally distributed user base, variances in network connectivity, and end-user devices (some users may access content from a high-performance gaming computer, while others rely on smartphones), all of which can present problems for creating a reliable experience.
PureWeb's mission is to make experiences as consistent as possible for enterprises that want to stream enterprise gaming content to large, global audiences who may not have a GPU-equipped computers capable of running the 3D application.
We use several measures to do this. First, we leverage high-performance streaming protocols like WebRTC, which is designed for real-time streaming and is built on top of the UDP transport protocol, which is more appropriate for the real-time use case. We also minimize video encoding time by using GPU-enabled hardware video encoding. Additionally, the application integration mechanism provided by PureWeb allows us to run multiple concurrent copies of a streamed game from a single GPU-enabled cloud instance.
How to get the best cloud reliability
Facilitating large-scale real-time streaming of 3D applications for enterprises requires specific equipment and processes to lead to a more consistent and reliable experience. That’s crucial for users who have little patience for programs that lag and glitch. You want to ensure you have the best processes in place. So what should you be looking for to ensure a seamless experience?
1. Cross-region redundancy and geographical load balancing
Cloud streaming solutions are highly sensitive to network latency, so it’s often insufficient to deploy a 3D model to a single region, which Amazon Web Services calls availability zones.
If all of your users are located in a single, unchanging geographical location, one region can work. But if you have a global reach, you need to maintain streaming endpoints in multiple different regions and ensure that users get routed to the closest possible region available when requesting a streaming session in order to reduce latency. PureWeb’s cloud streaming platform deploys models to most of the GPU-equipped regions in AWS, and we use latency-based routing provided by Amazon Route 53, combined with a custom scheduling and health-check system to ensure users get routed to the most optimal region.
2. Always up-to-date infrastructure support
The backbone of cloud streaming is the GPU-enabled infrastructure that's necessary for rendering 3D content in the cloud. Cloud providers like AWS regularly add and refresh the classes of instances available. So providing the best performance and price means adding and maintaining support for new instances.
For example, by the time AWS publicly released their G4 series of instances featuring the Nvidia T4 GPU, PureWeb had already added support for them, due to our close relationship with the AWS GPU team. This in turn reduced costs and provided customers with the ability to cloud stream real-time ray-traced content before anyone else.
3. The ability to deploy multiple users to the same high-performance GPU cloud servers
PureWeb's ability to run multiple copies of a game on a single virtual instance is where we really make our gains in scalability and cost-efficiency. Even if you get only two concurrent sessions per instance, you get twice the cost-efficiency and scaling response of someone who's only able to scale a single game session per instance.
Some lightweight games can get three concurrent sessions on even the smallest class of AWS GPU, while others can't even run on a single copy on the smallest class of GPU.
Until recently, PureWeb could only support multiple concurrent sessions when using Unreal Engine games. But given the recent changes in Unity, we are now able to add support for multiple concurrent users of content produced with Unity.
4. Real-time log and metrics aggregation and instance health checking
If an application crashes in production and nothing is monitoring it, did it really crash? Of course. Any production-grade software system should have timely, relevant, actionable logging and metrics, and this is especially true when building a software platform that runs customer applications.
You can't assume that real-time 3D models and games running on your cloud platform will never crash. When they do, it’s crucial to be able to quickly detect the issue, log meaningful data about the crash, and route traffic around the problematic application necessary. This allows time to fix the problem without compromising the availability of the customer application or the platform as a whole. This error detection, avoidance, and recovery process should be as automated as possible, so that even if something does crash, by the time you get the notification, the system has already begun to self-correct.
At PureWeb, we see logging and metrics aggregation as critically important, but it's not part of our core offering. We rely on Datadog, a third-party service that monitors all aspects of system health and alerts us of potential issues in near real time. Our custom health-check and scheduling system ensures that problems can be easily routed around, and an adherence to the principle of ‘immutable infrastructure’, ensures that any problematic infrastructure or applications can be quickly terminated and replaced automatically.
5. Effective DevOps tooling
Building and managing a cloud platform is a significant challenge, and it’s often fraught with problems. Rather than spending a lot of time trying to get things right the first time, it’s better to invest that time making it easy to implement fixes. Then, if things go wrong, changes can be pushed quickly and without compromising system availability.
At PureWeb, we strive to continuously deploy to production where possible, via a staging environment where necessary, and invest in tooling for any manual operations to minimize human error. This might seem like a massive upfront investment, especially when there are high-value features to deliver to customers, but the investment in robust DevOps tooling pays for itself quickly. Plus, investing in build and deployment tooling should not be seen as a one-time cost, but rather as a continual investment by the entire development team.
One critically important aspect of DevOps tooling is to acknowledge the Windows-centric nature of 3D content development. While both Unreal Engine and Unity can run on a variety of different platforms, Windows is where most gamers live, so that’s where game developers live.
As a result, Windows is generally very good for 3D graphical experiences. At the same time Linux is still favoured by developers for creating and deploying scalable web services in the cloud.
At PureWeb, we acknowledge and embrace the virtues of both of these operating systems, and have DevOps tooling that can build and deploy Unreal applications in Windows, where necessary for stability or compatibility reasons, or to Linux using our cross-compilation build pipeline, resulting in improved cost savings for our customers.
Streaming interactive 3D gaming content for enterprises is a complex proposition. Those attempting to buy or build their own streaming platform may think the work is done once they've streamed a piece of 3D content to a web browser in a one-to-one fashion. But converting that to a global scale for publishing high-performance, photo-realistic models across any platform and web browser takes far more work and expertise.
PureWeb can stream multiple sessions of a game from a single instance, maximizing system utilization and minimizing cost. Paired with a robust platform for cross-regional replication and load balancing, this can ensure that end users will get an exceptional (always reliable) streaming experience on any device from almost anywhere.
To learn more about PureWeb's interactive cloud streaming solutions for real-time 3D and photorealistic renderings, download our PureGuide to Interactive 3D Streaming, or request a demo if you’re ready to discuss your project with our team of experts.