Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the last few weeks I’ve been sharing a series of short posts on some of the high level concepts I covered which will hopefully be useful to other people new to virtual worlds. The previous post talked about how you can structure the world so that everyone can move around easily to find everything that they want. This post talks about how virtual worlds can become the workplace of the future.
Not long after joining the Oculus Rooms team a couple of years ago, I first heard Michael Abrash talk about his dream of a virtual office where he could collaborate with colleagues from around the world in VR. My immediate thought was that of course this would happen: I had already done it very successfully for years. This note is an attempt to distribute that past future more evenly.
When I started working at Linden Lab in 2005 I was living in the UK and working from home. After a day of hacking on Second Life‘s server infrastructure I would spend several hours every evening in Second Life working with my colleagues who were in San Francisco in real life.
One of the first engineers to arrive at the San Francisco office was Zero Linden who was a big fan of pair programming. As soon as he was online we would meet in our virtual office where our avatars would sit next to each other and we would discuss software architecture and test cases in Second Life while we used a shared editor to hack on C++ or Python in another window . Over time we started using our virtual office space to host office hours for other engineers with questions about the Second Life server and our initially spartan virtual office grew to include experiments in using Second Life to visualize our work and parts of the Second Life software architecture.
After an hour or so of pair programming with Zero to hand off the code I’d been working on during the UK daytime, other Lindens would start arriving at the San Francisco office and we would start using Second Life for larger scale team meetings. Even without tracked headsets, the 3D positional audio and instantly recognizable avatars made these meetings more successful than video conferencing. Because everyone was in Second Life together I felt far more present than I typically do using video conferencing to join a meeting in Menlo Park as the lone participant in London. Everyone was an equal participant in every meeting.
I expect this to be a common model for collaboration between remote workers in VR: the virtual space provides a forum for communication, conversation and annotation while existing applications, editors and tools are brought in to VR to provide familiar and powerful ways to create content together. I’m particularly excited about the possibilities for people to collaborate on very complex problems at the limit of human comprehension like large scale software development which are often hard to discuss in real life, but possible to visualize, understand and explore together in VR.
While the creators of virtual worlds are likely more open to meeting in them than average, I can imagine many people with remote colleagues also being open to using virtual worlds to allow everyone to contribute more effectively in team meetings. Virtual worlds will be especially valuable in meetings which require a lot of media presentation or recording as that can be more easily automated than in real life.
As Linden Lab became more international with offices in Brighton and Singapore we started holding regular company all hands in Second Life. While these were often plagued by technical troubles due to the high attendance pushing the software to its limits, they were also great opportunities for remote employees to meet people they might not have seen for months and for serendipitous conversations to occur in the hallways outside the conference rooms, just as they do in real life.
This is also a use case I expect to become important in VR and something that is already better supported by Oculus Venues than it was in Second Life. After attending OC3 and OC4 in person I was disappointed that I couldn’t justify the time away from my family to attend Oculus Connect 5, but delighted that I could attend in Oculus Venues where I had a better view of Hugo speaking on stage than I’d had in real life. I am sure that VR can enable myriad opportunities for networking and serendipitous conversations which don’t happen when people just catch up on conference talks on YouTube.
After working for years both on and in Second Life it is clear to me that using VR for work collaboration is both very valuable and very possible. It’s also clear that there is a lot of overlap between the social and work opportunities for VR. The Linden Lab all hands in Second Life looked a lot like the Accelerating Change conference in Second Life. The office hours held for Linden Lab engineers were so successful I started holding office hours for people building in Second Life. The time I spent working with Osprey Therian on Combat Cards in Second Life was just as rewarding and productive as the time I spent with Zero Linden working on scripting APIs. A lot of the most valuable use cases for VR will combine work and fun and we should beware false dichotomies. Any Metaverse worthy of the name will be both the future of work and the future of fun.
Small Places Loosely Joined
Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the next few weeks I’m sharing a series of short posts on some of the high level concepts I covered which will hopefully be useful to …read more
A Tall Dark Stranger
Over the past few years I’ve spent a lot of time helping people new to virtual worlds understand how they work. Over the next few weeks I’m going to share a series of short posts on some of the high level concepts I covered which will hopefully be …read more
The Conversation Around Content
Over the last few years I’ve spent a lot of time helping people new to virtual worlds learn how they work. Over the next few weeks I’m going to share a series of short posts on some of the high level concepts I covered which will hopefully be …read more
Before my recent post about leaving Facebook, it had been a while since I’d updated The Creation Engine and it turned out I had some housekeeping to do. After pushing the Pelican output to https://github.com/jimpurbrick/jimpurbrick.github.com I got a mail from GitHub saying that …read more
0 to 1
This blog is 10
Replicated Redux: The Movie
The recording of my recent React Europe talk about Replicated Redux is now online and I’ve written several other posts describing designing, testing and generalising the library if you would like to know more about the details. If you’d like to play the web version of pairs or …read more
Replaying Replicated Redux
While property based tests proved to be a powerful tool for finding
and fixing problems with ReactVR
the limitations of the simplistic
It’s easy to think of applications where one order of a sequence of actions is valid, but another order is invalid. Imagine an …read more
Building Safety in to Social VR
Testing Replicated Redux
Opening a couple of browser windows and clicking around was more than sufficient for testing the initial version of ReactVR pairs. Implementing a simple middleware to log actions took advantage of the Redux approach of reifying events to allow a glance at the console to reveal precisely which sequence of …read more
ReactVR Redux Revisited
There were a couple of aspects of my previous experiments building networked ReactVR experiences with Redux that were unsatisfactory: there wasn’t a clean separation between the application logic and network code and, while the example exploited idempotency to reduce latency for some actions, actions which could generate conflicts used …read more
Creating A Safe Environment For People In VR
At the 3rd Party Dev State of the Union at EVE Fanfest 2016 earlier this year, CCP FoxFour drew my attention to a limitation of the current approach used by crestmatic to generate CREST documentation: it only discovers resources always reachable from the API root from the perspective of the …read more
Strange Tales From Other Worlds
Towards A Generic Media Type System
The early days of RESTful hypermedia API design tends to involve lots of homogeneous collections. In the case of CREST vnd.ccp.eve.Api-v1 pointed to the logged in vnd.ccp.eve.ccp.Capsuleer-v1 which pointed to a vnd.eve.ccp.CharacterCollection-v1 of contacts which pointed to many vnd.ccp …read more