🌐 Is WebXR The Future? 🥽

Posted March 10, 2022 by Peyton Smith ‐ 2 min read

Is XR ready for the web? Is the web ready for XR?

The web has been an amazing place for gaming since its inception, and not just for finding or watching games, but also for directly playing them. I’m almost certain you have played a game inside of Adobe Flash Player before. Although it’s visuals and performance were nothing like modern gaming technologies, it was still everywhere and incredibly popular. Nowadays, most games are played through OS native applications and need to be downloaded and installed from the internet or a distribution platform.

Why is this?

We can benefit from a system a lot more by running directly on top of it, rather than through a sub-layer such as a browser.

Does this mean that games in a browser are bad?

Not at all! One huge downside to building native apps is that you have to make a different application for every single platform you want your game to be playable on. However, on the other hand, browsers like Chrome, Firefox, and Edge are built to provide nearly identical functionality on any platform they are available on, meaning that if you build your game for the Web, you’re building your game for any platform with one of these browsers. We aren’t quite yet able to match the fidelity and performance of native games inside the web, but we are getting really close and are able to create really good looking, performant games for the web.

What does this mean for XR?

This means you can create a single experience that works for both flat-screen and XR devices! Not to mention this eliminates any need to download and install an application, which immediately diminishes any immersion to be had.

How do you make a good WebXR experience?

Right now the best way is to use Google’s WebXR with javascript or typescript. There are other options such as AFrame too. I got to play a little with Unity-WebXR-Export, a tool that lets you create XR experiences inside of unity and ship them to the web, however support for this package is limited to a few developers’ free-time and is not yet production ready.