For as long as I’ve been working in VR and the surrounding space (7 years) there has existed this ideal of an interconnected metaverse. People will share and browse spatial experiences, moving from one application to another in a shared, interconnected virtual world (or so the conversation goes).
But, beyond idealizing, how can we make such a future possible? What are the technical challenges, what are the social challenges, and what are the economic challenges? This article will drill into these barriers and explore possible solutions.
The Golden Goal:
Before diving too deep into the challenges, it will be good to clarify exactly what I mean by “standardized metalinking”. In an ideal system you would be in one social app, say VRChat, and drop a “portal” (i.e. metalink) to an entirely different app, such as Chemistry VR.
The group of people you were with in VRchat would all be able to move through the portal to the exact same location in Chemistry VR. All this really requires is deep linking, an already maturing concept, with the addition of standardized user data for connecting people people back up in the new app. In a perfect-perfect world there would be some sort of interim voice-chat app so that you never lose connectivity, but that’s not necessary to keep things connected.
Of course, if the user doesn’t have the app that is needed downloaded, there would be standardized handling for downloading the needed app, installing it, and finally launching the user into the desired experience at the correct location in the app (i.e. wherever the other people who joined through the metalink are).
The end result is that you can dynamically navigate with groups of people between apps, creating a truly open metaverse. There are plenty of edge cases I am passing over (such as how for-purchase apps would be handled), but hopefully you get the general idea.
Problem 1: Platform Disincentive
The idea of seamlessly interconnected apps sounds good, but then you hit the business reality that allowing seamless metaverse interlinking in your app means you’re giving people on your platform a direct way to leave the platform.
For example, if you’re in Altspace (a metaverse app owned by Microsoft), and they have seamless metalinking, you can meet a group of people in Altspace, then drop a portal to a world you found in VRchat, leaving Microsofts platform. Why would Microsoft directly support a feature that encourages people to leave their platform? In an economy of attention, this seems counter to self-interest.
I think the web-browser internet offers an interesting lens into how this disincentive may be flipped. When you are on Facebook, or pretty much any social platform, you can post hyperlinks to off-platform content. Why do Facebook, Twitter, and Linkedin allow this? Well, hyperlinks are a fundamental part of the internet, around since its origination, and preventing their use would drive users off these platforms. Additionally, hyperlinks actually add to the value of these platforms, allowing users to share content with their social networks, and giving users a reason to use these platforms in the first place.
Why aren’t metalinks viewed in the same lens? Perhaps it is a problem of critical mass. When all metaverse apps are using metalinks, then there is a lot of potential value that can be linked to. However, when there are only a few apps to link to, the tradeoff isn’t seen as worth it.
Problem 2: Security Vulnerability
Just like with web links, whenever a user goes somewhere you don’t control, there is the possibility for bad things to happen to them. This could be data fishing, seizure inducing visuals, or virus-laden downloads, to name a few concerns.
Web browsers have been designed to minimize the potential harm to your computer, running all web applications in a sandbox. However, many metaverse apps require (at least for now) an app installed directly on your system.
Perhaps web-based applications will one day possess full performance and feature parity with downloaded apps. I’m keeping an eye on WebAssembly, and hope that such a future is possible, but it seems like early days. However, even WebAssembly doesn’t completely remove the concern of malicious links, just like how hyperlinks are still a security concern.
So, how do we secure metalinking when users could be pointed to any arbitrary code? I don’t have a good answer on a technical level (at least not at this time). Maybe there is some sort of whitelist of trusted apps that is approved by a third party, or some sort of required sandboxing as part of the metalinking standard.
It’s also worth considering what a user-trust based system would look like. For example, perhaps metalinks are only something you accept from trusted sources (such as trusted organizations or friends). This is tricky though, as when the user is responsible for their own security, there are plenty of users who haven’t been adequately educated, and impromptu mistakes happen even for those who are.
Problem 3: Standardization
Everyone has their own real time networking stack. Asynchronous code has had much better standardization efforts with structures like REST and JSON, but even those are evolving and changing and not used universally. I think part of the reason real time networking has stayed a dark art is the varied needs of different real time apps. What you need for a 100-person battle royal shooter is very different from what you need for 4 people playing a tabletop boardgame online. However, there are distinct concepts that generally exist across all apps, and we can certainly identify which of these need to be supported for metalinking to work.
For example, “parties”, or groups of people who are connected together through voice chat or text chat, as well as spatially nearby and often existing in the same instance. User accounts are also pretty universal, containing some sort of display name. In the context of metaverse apps, avatar appearance is another widespread idea, however this one is usually custom across each app.
The idea of an inter-app avatar system is interesting, but outside the scope of this article, and also unlikely to become widespread in my opinion. Oculus has implemented perhaps the most widely used example of such a system, but it highlights the difficulties and dangers of relying on a third party for user-based appearance (such as platform lock, sudden design changes, and being at mercy of the design whims of an external team). Apps have their own design aesthetics, and the majority will choose to keep it that way, for good reason.
So, what would it actually take to create a standardized metalinking layer? Someone, or more likely a group of people, would need to build the linking layer, a software library with all the features needed to seamlessly link apps together, and it would have to work across platforms. The linking layer would almost certainly have to be completely open source, and may or may not involve a standards body. The software library would have to be easy to integrate.
Then developers (and non-technical stakeholders) would have to be convinced to actually add support for metalinking.
Creating a metalinking standard for groups of people to seamlessly move between apps is a core dream of many in the metaverse industry. There are a number of challenges to overcome to make such a vision a reality, but I believe it is an achievable goal. We are in the early stages of creating an immersive internet, socializing across distance in ways that were previously impossible. Metalinking is an important technological pillar for enabling the next phase of our evolution.
Are you interested in metalinking and creating a standard for interconnected metaverse apps? Please reach out to me on Twitter: @VRInsider