The original Oculus Home screen was slow, buggy, and filled with sloppy code.
What’s the point in strapping a virtual reality headset to your face if you can’t figure out how to use it?
Virtual reality’s rise means that average people will be able to visit tropical beaches and shoot aliens in space—all without leaving their homes. But before doing so, they need a starting point, or interface, that lets them easily interact with virtual reality apps.
The interface must be easy to use, quick to respond, and similar to the familiar on-screen buttons, links, and menus that people use to navigate on their regular computers. That’s why a new startup called Envelop, partially funded by Alphabet’s goog venture capital arm GV, recently debuted a new virtual reality interface that mimics Microsoft msft Windows.
But even for some of the biggest companies selling virtual reality headsets like Facebook fb and its Oculus Rift, building these new interfaces is difficult. Speaking at Facebook’s annual engineering conference on Wednesday in San Jose, Oculus software engineer Khoi Nguyen described the challenges of making a new technology user-friendly.
The original Oculus home screen, which he said was slow and cobbled together, was rebuilt from scratch to ensure everything would run as smoothly as possible. The interface’s design didn’t necessary put off users, Nguyen explained, but rather it was the software plumbing that needed a serious overhaul.
Get Data Sheet, Fortune’s technology newsletter.
Nguyen, who had a video game background, wasn’t well-versed in creating big engineering infrastructures like those used by Facebook or Google that are able (for the most part) to accommodate millions of users simultaneously. He conceded that he was also unfamiliar with some of the cutting edge development tools and data processing engines that big web companies typically use.
The first version of the Oculus Home, Oculus’s interface, relied on several software services that his team of two other coders could not update because they were discontinued over time, he explained. Updating some of the older software services would inevitably end up breaking another.
These bugs didn’t crash the interface completely, but it did hurt its performance.
For example, the simple task of loading Oculus Home on a headset took much longer than it should because of the conflicting and outdated software. To mask the delay, Nguyen’s team devised a trick to divert people’s attention from frozen screens that needed time to load.
When the headset was turned on, the home screen would appear on the user’s display like normal. But then it would briefly fade to black before fading back in view. Showing something happening on-screen helped to mask the delay.
“It didn’t feel right,” Nguyen said referring to masking the delay.
Because his team built the interface in a disorganized way, they ended up with sloppy code, he said.
“Quickly the code became spaghetti,” Nguyen said. “It wasn’t delicious at the end of the day.”
It was also difficult for his team to update and improve the interface because much of the excess code was copy and pasted, another frowned upon method of software development.
Still, the interface worked, and people could still download and play virtual reality apps. It wasn’t until after Facebook acquired Oculus in 2014 for $2 billion that Nguyen and his team could re-engineer Home with the resources of a giant corporation that has expertise in cutting-edge software development and data processing.
For more about virtual reality, watch:
His team used two of Facebook’s open source, or free software tools, React and Flux for building user interfaces as Home’s new underlying technology. They also built bare bones software components that they could reuse more efficiently than copying and pasting code. These custom software blocks allowed the team to add new features to the Home screen, like text boxes that appear on users’ screen while browsing virtual reality apps, in a more organized way. This resulted in less messy code that could make the interface seem slow.
In addition, Nguyen and his team built a more efficient way to store data that also keeps track of all the changes when users scrolls through apps on the Home screen or decide to play something. Essentially, the virtual reality interface has been mapped out so that his team can better understand how one software change impacts another.
Before, it was difficult to keep track of all those changes, leading to problems like the software draining too many computer system resources, thus causing annoying delays or software bugs.
It took seven months to rebuild Oculus Home, which was ready on Nguyen’s birthday, March 16, 2016. The rewritten software makes problems easier to diagnose and fix, he said, and he’s “confident I can jump into any file and know what is going on.”