Skip to Content

The 11 ways in which the metaverse is shifting software development  

Capgemini
28 Mar 2023

Over the past 70 years, we have seen many technology disruptions that impacted the way we design, develop, and deploy software. The invention of C, the emergence of the personal computer, the rise of the internet, and the move from waterfall to agile to name but a few.

However, nothing compares to what might be about to happen – the convergence of artificial intelligence (AI), blockchain, and 6G/satellite connectivity combined with concepts like the metaverse will change the way we design, develop, and deploy software. For the purpose of this short blog, I will focus on the metaverse and the effect it might have on software developers. 

What is the metaverse? 

The metaverse is a virtual reality that allows us to interact with a fully virtual (and immersive) environment just as we do in real life, doing the same things we would in real life. According to Wikipedia, the metaverse “is a hypothesized iteration of the internet, supporting persistent online 3-D virtual environments through conventional personal computing, as well as virtual and augmented reality headsets.” A Capgemini publication focusing on metaverse in healthcare defines it as “a container of 2D or 3D virtual spaces, a persistent place parallel to the physical world, aiming to combine online digital and real-time interactions with the sense of presence. 

An immersive experience

For years, games like Roblox and Fortnite, but also older games like World of Warcraft, Minecraft, or Second Life, have developed a parallel virtual world where players can engage and connect with others in a mostly fantasy-like landscape. To illustrate the concept, one could also draw parallels with the film The Matrix; in the film, the main character “moves” between two reality-like parallel worlds.  

Many consider the metaverse as the internet V3, with V1 back in the 1990s, and the emergence of social media at the start of the 2000s as V2. Several use cases for the metaverse exist: for example, in the smart city space and in healthcare. However, there are also some who are more skeptical, who believe that the metaverse is already part of the past. The truth might lie somewhere in between. What seems clear, however, is that either the metaverse or part of the various metaverse concepts will impact the way we develop software: 

1. Moving away from mouse and keyboard 

When apple unveiled their iPhone in 2007, it heralded the start of the end of mobile phone keyboards. With the emergence of the metaverse, we might see the same happening to our PCs. The mouse, invented by IBM back in 1964, still the de facto PC input device next to the keyboard, might be slowly replaced by gesture, speech, and movement for end users (some state that using mind control devices might also become more mainstream). Of course, VR has been around since the mid-1990s after its invention in 1968, but due to various factors has not quite hit the mainstream. This might change now that developments in the metaverse have started, with more vendors announcing they are developing MR devices – Apple has started production in March 2023. 

For developers, the shift away from using text for coding is still a big unknown. If the shift occurs, then text input devices will slowly disappear. If it does not, then developers will have to deal with both traditional physical and new virtual ways of working. In any case, designing and developing software that supports different data input devices will require different skills, techniques, and tools compared to relying on mouse and keyboard only. It seems most likely that we will see a convergence in which developers use a mixture of traditional physical and new virtual ways of working.  

2. The move from 2D monitor screen interactions to full 3D with the use of VR, AR, MR, and XR 

It is not just our traditional user input devices that might change. We might also see our traditional user interaction devices change. Over the past 30 years, the PC monitor only changed in terms of resolution and size, but not really in concept: a screen that displays data in visual and text form, projected on a two-dimensional screen. The touch screen tried to allow for a better experience but failed to really take off. Driven by the metaverse, we might see a shift from today’s PC-based fixed and two-dimensional monitors to the use of mixed physical and virtual reality devices. Using virtual reality (VR) headsets or mixed reality (MR) glasses for user interaction combined further with either smartphones, gesture, or even mind reading might fundamentally change the way we design and develop applications. It is very likely that the shift will be a gradual process. The emergence of MR for both end users interacting with applications and for developers designing, developing, and delivering code might still be a way off. However, software developers must master the new (and currently various) software development kits (SDKs) to ensure that they can establish fully seamless and fluid interactions.    

3. New development platforms  

With the advent of the metaverse, organizations and communities are also starting to develop new programming languages. For instance, in December 2022, Epic Games launched the Metaverse programming language Verse. Verse is focused on making it possible to create social interactions in a shared three-dimensional (3D) world in real time. The web3 programming language family now includes Verse along with others like Clarity, Solidity, Curry, Mercury, and Rust. Verse also aims to support interoperable content by utilizing operational standards from several game engines, such as Unity, and live upgrades of active code. Another example is solidity. Created by Ethereum, solidity is a statically typed programming language designed for developing smart contracts that run on Ethereum. Solidity is used on the Ethereum blockchain, an object-oriented programming language, for building and developing smart contracts on blockchain systems. The question with all new programming languages is whether they will become mode dominant or widespread. Clearly only time will tell.  

4. Testing  

The quality of applications will be as important as in today’s applications. However, with MR as well as digital twin type environments, testing the use of both physical as well as virtual devices will be different as new testing facilities are needed to avoid manual interventions that might read “put the headset on, run the app, and see if it works.” The integration of MR and/or different VR devices as well as the use of different platforms might require different testing regimes.  

5. Being more aware of non-functional aspects like latency, security, and safety  

Walking around with Google Glass or any other VR or MR devices could pose various risk profiles, and developers must consider this when designing and developing metaverse-based solutions. In addition, latency – the time it takes for a service to respond (also sometimes referred to as “lag”) – is another aspect developers will have to consider more than in our current “traditional” 2D environment. User experience will be a key critical aspect in the metaverse, and a fully immersive experience can only be achieved if the rendering is fully fluid and seamless. With the end user being mobile or stationary with various data transfer opportunities (currently 5G, but soon 6G or even via low orbit satellites) it is important to ensure the developed metaverse solution fully considers that. With these requirements, more “traditional” aspects, like writing efficient netcode (referring to synchronization issues between clients and servers) and 3D engines, will become even more important.  

6. The move from two dominant mobile platforms (Android and Apple) to multiple platforms 

The metaverse will require massive 3D content to engage users, and 3D is expensive to make, to understand, to store, and to transport. Developing a metaverse application involves creating a virtual experience for platforms such as HTC Hive, Oculus Quest, and other VR or MR systems. Popular developer tools for metaverse focused on 3D creation include Epic’s Unreal Engine, Unity, Amazon Sumerian, Autodesk’s Maya, and Blender. And then there are the various (at the time of writing) development platforms that cover metaverse-related tools and accelerators like Webaverse, Ethereal Engine, JanusWeb, WebXR, Open Metaverse, Nvidia’s Omniverse, Hadea’s metaverse infrastructure, and the Microsoft metaverse stack.   

7. Increased importance of application programming interfaces (APIs)  

Interoperability (getting systems to talk to each other) will be one of the main challenges for developers writing metaverse applications. As with the advent of the internet in the mid-1990s, where multiple vendors as well as open communities developed and released new standards, the metaverse is also triggering numerous, and sometimes conflicting, standards. How it will all pan out is still open. However, what is clear is that software developers must have an excellent appreciation of data integration, particularly as data is being exchanged in real time between different platforms.   

8. Greater emphasis on real-time collaboration 

As applications in the metaverse will be used in an interactive and real-time manner, applications written for the metaverse will have to be able to respond to unpredictable events in a real-time manner, providing a seamless user experience. This means that software developers will have to use statistical techniques like deep learning on provided data and real-time user interactions to predict a response or next step, without the software having been specifically programmed for that task. 

9. Security and trust will be critical elements  

The success of the metaverse will also depend on users trusting the virtual counterparts; this means active and passive security will be a critical element. As the metaverse will evolve around the real-time exchange of virtual assets, new ways of securing and controlling virtual assets and interactions in real time will be needed. This will include authentication and access control, data privacy, securing interactions and transactions, and protecting virtual assets. In addition, passive security-related aspects, like strong network security protecting from cyberattacks, hacking, and other security threats, will be needed.  

10. The further use of tech like blockchain and NFTs 

One of the main use cases in the metaverse is the trading of goods and services. Therefore, it is likely that technologies like blockchain and non-fungible tokens (NFTs) will be supporting the exchange of virtual assets. And this means that software developers should have an understanding of how to manage NFTs as well as distributed ledgers like blockchain.  

11. AI will impact software development  

Another technology that will be part of the metaverse is AI. AI will be a key element in supporting the metaverse as it will help with end-user personalization, content creation to create more immersive and engaging virtual environments, as well as analysis of user behavior to help to identify trends and patterns, enabling developers to optimize the virtual world and provide a better user experience.  

Even without the emergence of the metaverse, AI will impact software development significantly. AI is positively impacting the way we design and develop software in these areas:  

  1. Generating code: several AI tools can generate code, including DeepCoder developed by Microsoft, Kite, TabNine, GitHub Copilot, etc. 
  1. Automation: AI can automate repetitive and time-consuming tasks in software development, such as testing, debugging, and code optimization. 
  1. Quality: AI can improve the accuracy of software development by identifying potential bugs and vulnerabilities in code before it is deployed. 
  1. Efficient resource utilization: AI can help software developers optimize resource utilization, such as server capacity and memory usage, to ensure that applications are running efficiently. 
  1. Increasing immersion: by, for instance, making aspects more dynamic and immersive in the environment 
  1. Creating virtual worlds: through, for instance, “text-to-environment” or “text-to-world.” Instead of placing assets using a mouse and keyboard, a developer could describe the environment instead. 

Today, many use cases exist where AI is aiding the entire software development process. The possible advent of the metaverse, or aspects of it, will further impact and change the way software developers work.  

Summary 

It is anyone’s guess as to whether the metaverse will indeed be the next incarnation of the internet. I remember an interview with David Bowie in 1999 in which he accurately predicted the impact the internet will have. He might have said the same about the metaverse today. In any case, technologies like VR, AR, MR, and AI will drive more and more user interactions into the virtual world, and software developers must deal with the shift in technology and the change in user experience. 

Special thanks to: Stuart Williams, Simon Spielmann and some support from ChatGPT