SauRayTM is our main offering. In this section we would like to answer the most frequently asked questions regarding this product.
How does it work?Our solution works by tracing the views of every player simultaneously on the server with every tick. As such it requires game servers with server-side game code. Additionally, it requires ray-tracing capable GPUs on the server though we have code to address GPUs lacking ray-tracing capabilities. We employ a three-pronged approach to server-side visibility determination:
- Ray-snapping and Temporal Visibility for Sub-pixel Players: the resolution at which players are traced is usually lower than native client-side resolutions. We have a proprietary approach to addressing this called ray-snapping. Our approach collects a list of players leaving sub-pixel footprints for every ray and snaps rays to sub-pixel armatures at random. As such, our visibility determination comes with a temporal component. Our ray-snapping occurs on both primary and secondary rays.
- Forward Projection of Player and Viewer Data: we forward project frusta and pick primary rays from in-between frusta at random. Additionally, we collate player armatures from the future atop present player armatures via forward interpolation. Combined, this strategy provides us with the ability to avoid popping during gameplay. In fact, we incorporate historical velocity information into deciding how far out frusta and collated armatures/geometries are stretched out. This provides us with the ability to handle players with varying latencies.
- Path-tracing for Future Pipelines: we have devised a simplified version of unidirectional path tracing with next-event estimation solely for the purpose of visibility determination. This is maintained for when ray and path tracing become more commonplace in competitive first and third person shooters.
How does this compare with previous attempts?We've considered a vast array of prior art while researching and building the solution over the last 4 years.
Efforts such as early iterations of Valorant's Fog of War are crude and suffer from a high amount of false negatives. We are certain that one cannot approach this problem error free in a computationally cheap manner.
Their later efforts much like Quake II's PVS system are easily taken advantage of by cheaters.
Our solution addresses dynamic visibility at low resolution in an excruciatingly careful manner and it has been crafted to account for player velocity and latency as well. We recommend careful study of the Forward Projection of Player and Viewer Data section above for pensive readers desiring clarification.
Even though we understand that some maybe skeptical, we must stress that the solution has been going through extensive playtesting at this point and we have well observed its strengths in practice.
If you require further clarification on how the algorithm covers corner-cases and side-channel attacks in multiplayer games or would like additional details on the efficacy of the algorithm please contact us directly and we will be more than happy to further elaborate. (For potential customers only.)
Why raytracing in particular?Primary visibility rendering alone achievable by other means is not sufficient for proper visibility determination for most games today.
Most modern games at least use orthographic and/or perspective shadow maps to render shadows. Accounting for that in our algorithm is casting one secondary ray towards the light source.
If games choose voxel-based AO or RTAO for ambient occlusion, we can account for that via a diffuse secondary ray.
Many revamps such as Fortnite RTX have raytraced reflective surfaces. For our approach that's simply a glossy secondary ray.
Repeating our glossy secondary rays back to back allows us to account for hall-of-mirror effects in the likes of Minecraft RTX.
Obscuring effects such as smoke or fire found in CS:GO are handled by our code tackling ray absorption and scattering probabilities.
Broadly speaking, our Path-tracing for Future Pipelines section above is designed explicitly to handle these aforementioned scenarios.
What is the additional cost of GPU incorporation?An RTX 2080Ti consuming 305 Watts will cost -- with Toronto Hydro pricing, where we are based out of -- $317.68/year. An RTX 3090 consuming 350 Watts will cost $368.17/year.
For cloud hosting, AWS G4d instances -- which are a good fit for our application -- are priced starting from 50cents/hour.
We target every card to handle multiple sessions simultaneously.