As someone who's writing a viewer (client) for Second Life/Open Simulator, I can comment on that.
The big problems reported by new users are:
- "What do I do now"?
- "How do I fix this &#@#* clothing problem"?
- "Why is this thing so slow"? (usually from experienced gamers)
Entering Second Life is not like entering a game world. It's like being arriving in a new big city.
The world is completely indifferent to you. It won't make you do anything. You can stand in one place
forever. Some new users never get beyond the entry Social Islands. (Social Island 10 is the Port Authority Bus Terminal of Second Life, inhabited by the same kinds of losers found in real world bus terminals, from panhandlers to idiots with large boom boxes.)
Once new users get past that, they're in a world the size of Los Angeles with about 35,000 to 55,000 logged in users. The population density is very low. Users who just start walking down a road can walk for many hours without finding much of interest. They'll pass stores, houses, gas stations, warehouses (driving around and making deliveries is a game within Second Life), motels, truck stops, airports, and marinas.
Many of these are beautifully detailed, but deserted. This is what happens when you have a user-created world where people can rent land and build. They rent land and build, but aren't there much. Second Life is fun for people who can create things and make their own fun. There's not a huge amount of compelling passive entertainment. Roblox and Fortnite have built in casual games with a metaverse tacked on. Second Life has a metaverse with a few casual games. That's the "what do I do now" problem.
Clothing is created by users from mesh primitives, and so, there are a large number of incompatible avatars and clothing systems. Getting mesh clothing from different sellers to layer properly is a huge headache. Making it work is dumped on the user, with a large number of tuning parameters. This is the single biggest technical headache for new users. This whole area needs to be automated. Roblox has done that, with their new automatic mesh adjustment system. So it's possible to solve that, but it's not being worked on much. That's the clothing problem.
The graphics can be good, although since all content is user-generated, the quality varies. Frame rates can vary from 10 FPS to 150 FPS depending on the content in the area. It's that awful because Second Life was designed to run on the hardware of 20 years ago. The clients are mostly single thread and not GPU-oriented. That's fixable for gamer computers. I get a consistent 60 FPS with my own client on a system sized for a modern AAA title. The existing clients will run on low-end computers, although badly, which mine will not.
The overall architecture of the system isn't bad. It's quite distributed. Each region (256x256m in Second Life, can be larger in Open Simulator, a C# re-implementation of the servers) is run by a separate server process, and those run at many different server locations. Second Life currently has all their servers in one location on AWS, but the system does not require that. At times in the past, it's been split between data centers.
It looks like a huge seamless world, and crossing between regions works. Mostly. Region crossing failures are still frequent. The current dev team doesn't understand the problem and avoids working on it.
The biggest problem with the user created content is that lower levels of detail tend to be badly constructed. Second Life was designed before automated level of detail creation worked well, and the
built-in mesh reduction algorithm was terrible. It's recently been upgraded from terrible to mediocre. The good algorithms are either brittle academic code or expensive (Simplygon or Unreal Engine.)
That's the performance problem.