[HN Gopher] Second Life on GitHub
       ___________________________________________________________________
        
       Second Life on GitHub
        
       Author : ohjeez
       Score  : 176 points
       Date   : 2022-12-24 16:51 UTC (6 hours ago)
        
 (HTM) web link (community.secondlife.com)
 (TXT) w3m dump (community.secondlife.com)
        
       | culi wrote:
       | > In 2022, the renewed general interest in the Metaverse
       | translated into significant media opportunities for Second Life.
       | Over 21,000 articles and other stories included Second Life in
       | 2022 - nearly 5 times greater than the amount of media coverage
       | we received in 2021.
       | 
       | Out of all the metaverse projects being worked on, SL coming out
       | on top would be an incredible development
        
         | rnd0 wrote:
         | While I love me some SL, it's a sad sad statement about the
         | current state of tech world that SL is the best we can do...did
         | we really peak in 2002?
        
           | slackfan wrote:
           | Yes. We had virtual worlds and an internet that wasn't yet
           | completely broken. The Patriot Act was yet to be fully
           | implemented, and we were recovering from the dotcom meltdown.
           | 
           | Good a peak as any.
        
           | cdogl wrote:
           | This idea peaked in 2002. Second Life fills a valuable niche,
           | and I'm glad it exists, but most people prefer videogames.
        
       | brirec wrote:
       | TFA suggests that the official git repo for the Linux kernel is
       | on GitHub. I wonder if they really did their research
        
         | Philip-J-Fry wrote:
         | The source is published to GitHub though, no?
         | https://github.com/torvalds/linux
         | 
         | It's an easy mistake to make, the code _is_ there and there 's
         | nothing to suggest it's a mirror.
        
           | Arnavion wrote:
           | That said, every PR receives a bot comment indicating that
           | the GH repo is a mirror and the user needs to submit a patch
           | to LKML. And yet there are currently 312 open PRs on the
           | repo. I've always wondered how people manage to know enough
           | about the kernel to be able to contribute a PR to it, yet
           | don't know the GH repo is a mirror _and_ seemingly ignore the
           | bot response and leave their PR opened.
        
             | mdaniel wrote:
             | I'm surprised with the massive number of auto-close-bots on
             | GH (combined with the kernel's development culture) that
             | they don't just auto-close them
             | 
             | I've also never understood why GH allows turning off
             | issues, but not turning off PRs
        
             | ratcline wrote:
             | I believe this is often people who ARE in fact contributing
             | via the mailing list -- but want a track record tied to
             | their GH account.
        
             | scatters wrote:
             | People are aware the PR isn't going to be accepted; they
             | just want to publish it _somewhere_.
        
         | cactusplant7374 wrote:
         | What is the reason for hosting it elsewhere? My cursory Google
         | searches have failed me.
        
           | ithkuil wrote:
           | The historical reason is https://github.com/torvalds/linux/pu
           | ll/17#issuecomment-56546...
           | 
           | Perhaps some of these issues have been fixed by now, but the
           | Linux project has been going on just fine without GitHub (git
           | was even invented for the Linux kernel project itself even
           | before GitHub existed) so there doesn't seem to be any reason
           | to switch even if all the mentioned problems were to be fixed
        
             | _Algernon_ wrote:
             | Some good old Torvalds roasting going on in that thread.
        
               | squeaky-clean wrote:
               | Ironically his rant about why authors should do the line-
               | breaking
               | 
               | instead of your text renderer is really frustrating to
               | 
               | read because of all the seemingly random line breaks
               | 
               | throughout his comment.
        
               | solardev wrote:
               | Yikes. I didn't know the dude was so prickly. Glad I'm
               | not a contributor.
        
               | Longhanks wrote:
               | With his attitude, the kernel has reached enormous market
               | share, excellent performance, high quality and worldwide
               | adoption. I'm sure it will be fine without your
               | contribution.
        
               | solardev wrote:
               | Lol yes I'm sure it'll be fine too. It made me lose some
               | respect for him, but he couldn't care less what I think
               | lol.
        
               | __alexs wrote:
               | He's mellowed a bit as the years have gone on but yeah,
               | he sure is a character.
        
               | _Algernon_ wrote:
               | I do find them fun to read, but yeah being the target of
               | one must be rough. Though it probably contributes to the
               | quality of the Linux kernel.
        
             | sergiotapia wrote:
             | He's amazing
        
           | [deleted]
        
           | codetrotter wrote:
           | Linux kernel development has been coordinated via mailing
           | lists for ages.
           | 
           | Linus wrote the git version control system specifically to
           | suit the development of Linux.
           | 
           | GitHub made git mainstream, and they made lots of great
           | features for the masses.
           | 
           | But there is no reason for the Linux project to change the
           | way that they like to work just because of that.
           | 
           | Still, a copy of the Linux source tree is also hosted on
           | GitHub. So it seems to me that everyone gets what they want.
           | Linux get to continue their development in the way that they
           | like to do it. People on GitHub can easily find the copy of
           | Linux on GH, and browse the sources there. And they can
           | create forks of the Linux sources on GH too.
        
         | Shared404 wrote:
         | Was coming here to say almost the same thing - pretty sure the
         | kernels "de-facto home" is not in fact GitHub.
         | 
         | Perhaps it was just a marketing person writing this who googled
         | "Big open source github".
        
           | cfuendev wrote:
           | Lol, thought the same when I read "CPython".. Okay? Why not
           | mention stuff like Godot and Monogame? Those are things the
           | OSS-Gaming community are more familiar with. And why not say
           | "The CPython Interpreter"? As if everyone knew what CPython
           | was.
        
       | LightG wrote:
       | For any users, how active is it these days?
       | 
       | I dabbled with it many years ago and ... Christ, can it really be
       | 20 years since release?!?!
        
         | rnd0 wrote:
         | concurrency ranges from 23k to 45k or 49k at any given time.
         | God only knows how many of those are bots/scripted agents
         | though.
        
       | branon wrote:
       | Second Life has always really interested me, seems like it's got
       | a quite the meaningful heritage behind it. If they are looking to
       | move into the full VR/AR/Metaverse space, I can see that
       | wisdom/prior art coming in very handy.
        
         | T-A wrote:
         | https://www.engadget.com/2020-03-27-why-second-life-linden-l...
        
       | Animats wrote:
       | It's been open source since 2007. Linden Lab recently moved the
       | sources from Bitbucket to Github.
       | 
       | The Firestorm viewer sources are at
       | "https://vcs.firestormviewer.org/". It's a major fork.
       | 
       | Technical documentation of the client-server protocol is at
       | "https://wiki.secondlife.com/" It's out of date, but it helps.
       | 
       | The real progress is that the build procedure has been cleaned
       | up. It used to require ancient versions of Visual Studio on
       | Windows. Firestorm can be built on Linux. I've built it and
       | submitted patches that went in.
       | 
       | This is just the client side. The server is proprietary. But
       | there's a compatible server, Open Simulator. It's not a clone;
       | it's in C#, while the original is in C++.
       | 
       | There are meetings for third party viewer developers. Both inside
       | Second Life, and on OSGrid, which is a third party grid of
       | simulators. That really is the metaverse - a federated system of
       | 3D worlds. It's sluggish, because most of the people running
       | regions don't have enough server power. Think Mastodon for 3D.
       | 
       | I'm been writing a new client in safe Rust for the last two
       | years. I'm trying to see how much can be done in parallel. The
       | viewer isn't ready for public use yet. I've posted videos made
       | with it.
        
         | GrinningFool wrote:
         | > OSGrid, which is a third party grid of simulators. That
         | really is the metaverse - a federated system of 3D worlds.
         | 
         | I had no idea this existed, and have been looking for it
         | [conceptually] for years. Thanks!
        
         | msla wrote:
         | Clickable links:
         | 
         | https://vcs.firestormviewer.org/
         | 
         | https://wiki.secondlife.com/
        
         | solardev wrote:
         | What is a "firestorm viewer"?
         | 
         | Is a "viewer" a Second Life term for "game client"? And is
         | Firestorm a particular FOSS client for the game?
         | 
         | If so, that's really interesting... like you can access the
         | same shared Second Life world but through a custom client? Does
         | it reuse existing game assets or you free to reinterpret
         | character models, textures, effects, etc.?
        
           | dale_glass wrote:
           | It's a client
           | 
           | Assets are downloaded by the viewer from the SL servers.
        
           | vorpalhex wrote:
           | Everything in second life is sent to the client (which
           | usually tries to cache). Eg you can even build new geometries
           | ingame.
           | 
           | Viewers are "game clients" yes. The viewer is intended to
           | mostly be a dumb receiver. The server does most lifting.
           | 
           | Firestorm is a fork of the official viewer. It forked about
           | the time I played SL but seems to have grown into it's own
           | these days.
        
           | Animats wrote:
           | A viewer is like a web browser for a 3D world. It's like a
           | game client, but it doesn't have any game logic or content.
           | As with a web browser, all content is downloaded from the
           | servers. Firestorm is a third-party viewer with a sizable
           | development organization. See "firestormviewer.org".
           | 
           | Quick overview:
           | 
           | Second Life / Open Simulator worlds are divided into
           | "regions". Each region is 256m on a side on Second Life, and
           | can be other sizes in Open Simulator. The world is about the
           | size of Los Angeles. The viewer starts out by talking to a
           | login server for a grid, which authorizes it to connect to a
           | region. The viewer then talks to the region. There are short
           | messages over UDP, and some bigger stuff over HTTPS.
           | 
           | Once a viewer is talking to a region, it asks the region
           | server about adjacent regions. The viewer can then talk to a
           | few adjacent regions, too, showing the user a big, seamless
           | world. As the user moves around the world, connections are
           | made to new regions, and connections to regions out of range
           | are dropped. This is how the world scales. There are about
           | 27,500 live regions today, each with its own simulator
           | program, always on even if nobody is using it. Each simulator
           | program takes about one CPU and under 4GB on a server. Second
           | Life is currently hosted on AWS, with dedicated servers. This
           | scales well; the world could be scaled up substantially if
           | there was demand.
           | 
           | The always on feature runs up costs, but the business model
           | is that users rent land. So costs and revenue stay in
           | balance. Regions really are always on - trains run through
           | regions where no one is around, for example. This
           | architecture made more sense when Second Life had their own
           | servers in a co-location facility.
           | 
           | The region servers talk to their direct neighbors. This
           | allows movement across region boundaries. If a region goes
           | down or is restarted, the viewer will show a water-filled
           | hole with steep sides where the region is supposed to be. So
           | the overall system is fault-tolerant.
           | 
           | Content is stored on asset servers, separate from the region
           | servers. These are ordinary AWS web servers, front-ended by
           | Akamai caches. Content includes textures (images in JPEG 2000
           | format, which is a pain to decompress fast), meshes (a
           | documented but nonstandard format), sounds, etc. There's
           | petabytes of content. The region servers tell the viewers
           | what hashes (UUIDs) to ask for, the viewers get the content
           | from the servers with ordinary HTTPS requests, and all this
           | is assembled in the viewer into 3D images for the user.
           | 
           | Any user can upload new content. Uploading an image costs
           | about US$0.05. Uploading a 3D model might cost $0.50. This is
           | a one-time charge. As long as someone, somewhere, is using
           | that content, it's kept on the servers. There's a garbage
           | collection run every month or so.
           | 
           | Voice is outsourced to Vivox. (Vivox has problems. Not
           | recommended for new designs.)
           | 
           | Coming soon is "puppetry". Second Life is now testing full
           | body and face tracking, for those who want their avatars to
           | run more than canned animations. This involves an entirely
           | new data path by which viewers talk to other nearby viewers
           | via a server that just forwards data. Second Life is getting
           | VRchat features.
           | 
           | So that's what a viewer is. And that's what the architecture
           | of a big metaverse looks like.
        
           | T-A wrote:
           | https://www.firestormviewer.org/
           | 
           | Assets are downloaded from the servers. Users can upload and
           | optionally gift / sell their own.
        
         | culi wrote:
         | I had no idea Second Life has been an open source game this
         | whole time! It might be one of the largest OS videos games of
         | all time then
        
           | vorpalhex wrote:
           | The server components which are most of the logic are not
           | open source. There has been a long running effort to have a
           | compatible open source server.
        
             | seydor wrote:
             | Opensimulator is the open source project
             | (http://opensimulator.org/)
             | 
             | There are thousands and thousands of active regions and
             | thousands of users (https://opensimworld.com/). It's not
             | millions, but it s the best self-hosted virtual world
             | ecosystem.
        
             | Tostino wrote:
             | That's incredibly surprising that it doesn't have one. I
             | was involved in the l2j and wow emulation communities back
             | in the day, and there was just so much effort going into
             | it.
        
               | T-A wrote:
               | It does have one:
               | 
               | http://opensimulator.org/wiki/Main_Page
        
       | everyone wrote:
       | Meta - "write that down write that down!!"
        
       | seydor wrote:
       | But afaik the second life viewer is not exactly open source, but
       | instead only selected teams can participate.
       | 
       | EDIT: the viewer code is LGPL , but forked Third party viewers
       | are subject to particular terms
       | 
       | https://secondlife.com/corporate/third-party-viewers
        
         | Animats wrote:
         | There are terms which apply when connecting to Second Life
         | servers.
         | 
         | Those terms don't apply if you use the viewer to connect to non
         | Second Life servers, such as Open Simulator. For Open
         | Simulator, you have to deal with a somewhat grouchy lead
         | developer who does not suffer fools gladly. (He's helpful if
         | you don't waste his time. He ran a test region server for me
         | and looked at what I was sending to get something to
         | interoperate.)
         | 
         | Some viewers turn on extra features when talking to Open
         | Simulator. The main one is "varregions". Second Life is divided
         | into squares 256m on a side. Open Simulator supports other
         | sizes. Also, there are several competing money and asset
         | systems for Open Simulator grids, and third party viewers
         | support those.
         | 
         | This is the metaverse at the level where it actually works.
        
           | seydor wrote:
           | AFAIK the lack of viewer developers is the main reason why
           | opensimulator has stalled. Even the server is supported by
           | very few developers who still contribute, incuding Ubit. The
           | project seems to suffer from high drama for decades.
        
             | rnd0 wrote:
             | The internal OS politics probably doesn't help so yeah
             | -high drama is probably the killer right there.
        
             | kmeisthax wrote:
             | Last I remember, they didn't want people working on both
             | viewer and OpenSim to avoid accusations of copying from a
             | GPL viewer into the permissively licensed OpenSim. This,
             | obviously, makes implementing new non-Linden features nigh
             | impossible.
             | 
             | Of course, this policy changed a few months after I stopped
             | playing with OpenSim. I think RealExtend had something to
             | do with it. I remember playing around with their viewer and
             | being impressed, but never doing much else with it.
        
           | Turing_Machine wrote:
           | Is Open Simulator back in active development? The last time I
           | looked at it there hadn't been a release for some years, if
           | I'm remembering right.
        
             | Turing_Machine wrote:
             | To answer my own question, yes it does appear to be in
             | semi-active development. At least there's a release from
             | this year.
        
             | rnd0 wrote:
             | There's like two or three forks out there. I'm not sure how
             | active any of them are though.
        
         | culi wrote:
         | So it's open-source but not FLOSS
        
           | bombolo wrote:
           | No, open source means a specific thing. You're perhaps
           | thinking of "source available", which means "you can read the
           | source but have to comply to a bunch of stuff"
        
             | SquareWheel wrote:
             | Not really. A lot of folks, including myself, don't
             | subscribe to the OSI's definition of open-source because it
             | just doesn't match the common usage. Open-source takes many
             | forms, and source available is just one example.
        
               | chungy wrote:
               | Considering the term originated with them, it's fair to
               | say they get to dictate what it means.
        
               | SquareWheel wrote:
               | Ah, things would be simpler indeed if words could be
               | dictated.
        
               | rnd0 wrote:
               | And they can be -that's why we have dictionaries.
               | 
               | Terms DO have meanings whether contrarians and the
               | argumentative want to acknowledge those meanings or not.
        
               | [deleted]
        
               | Karunamon wrote:
               | Dictionaries are descriptive, not prescriptive. The
               | meaning of terms outside of specific fields like law is
               | based on consensus, not authority. Merriam-Webster
               | doesn't own the English language, and neither does OSI.
        
               | rnd0 wrote:
               | If you can't modify and distribute your modifications
               | -it's not open source. Anyone who says different is
               | simply incorrect.
        
             | sureglymop wrote:
             | Can you define what exactly open source means in that case?
        
               | ghaff wrote:
               | The majority opinion is the OSI definition and approved
               | licenses but not everyone agrees.
        
             | counttheforks wrote:
             | No, open source is a vague term with many different
             | definitions. The open source foundation does not control
             | the english language.
        
       | baeaz wrote:
       | I don't know if things have changed but the last time I tried SL
       | the client was so rough and awkward it seemed like an alpha. Even
       | moving was laggy and annoying.
        
         | vorpalhex wrote:
         | The biggest contributor of lag is not having things cached or
         | being in a laggy region.
         | 
         | On first connect, it used to be practice to go to a busy scene
         | (a mall) and then go do something in real life for an hour or
         | so while the viewer grabbed everything and cached it.
         | 
         | Regions can be very low lag or amazingly laggy, depending on a
         | bunch of things (particulary misbehaving scripts).
        
           | Animats wrote:
           | The causes of lag in Second Life are complicated, and are, at
           | last, getting a lot of attention right now.
           | 
           | I've been working on that with a multi-threaded viewer in
           | Rust.[1] After I started posting videos like that, there was
           | a lot less "can't do" attitude from the Linden Lab devs. Now
           | there's a "performance viewer" project out of Linden Lab,
           | using many of the same techniques. Key concept: the backlog
           | of assets to be loaded needs to be on a priority queue which
           | gets reordered as the viewpoint moves. Otherwise you
           | bottleneck loading stuff that you were previously near, not
           | stuff near where you are now. There's a nice B-tree solution
           | to this. Once you have that, everything in close-up is
           | present and at high resolution.
           | 
           | Hardware helps. 100mb/s networking and putting the viewer
           | cache on an SSD will help a lot.
           | 
           | There's still a big problem server side with the transient
           | load when a new user enters a region. A mall or event with a
           | lot of traffic can slow way down. The server devs are trying
           | for more concurrency, but it's hard in an old single-thread
           | 32-bit C++ program.
           | 
           | It's striking that, despite all the "metaverse" hype, there
           | are very few people, even among game devs, talking about the
           | nuts and bolts of making this stuff work. The metaverse
           | conferences are mostly about branding, NFTs, and
           | moderation/censorship.
           | 
           | [1] https://video.hardlimit.com/w/sFPkECUxRUSxbKXRkCmjJK
        
       | jaChEWAg wrote:
       | I wonder why Meta didn't fork Second Life to use for their 3D
       | world rather than re-invent the wheel and in the end build a bad
       | product.
        
         | morelisp wrote:
         | I don't know about the clients, but I've worked with a few ex-
         | LL people and heard nobody really likes what the protocol
         | became, and also lots of core parts of the LSL execution model
         | they regret. Presumably Cory thought he could do better the
         | second time around. (And maybe he did! I'm not sure Facebook's
         | metaverse problems are technical ones...)
        
           | Animats wrote:
           | One tiny design error had huge implications. The UDP messages
           | are multiple messages per packet with the form
           | [msg_type variable_length_message]
           | 
           | There is no message length in the message. So, to parse the
           | message stream, the receiver must know how to parse each
           | message type in detail, and can't skip message types it
           | doesn't understand. Thus, no new message types can be sent
           | until everything that receives them has a parser for the new
           | type. And, so, there have been no new message types since
           | about 2016.
           | 
           | Most game systems use                   [msg_type msg_length
           | variable_length_message]
           | 
           | so you can introduce new messages and not break old
           | receivers.
        
             | n42 wrote:
             | I am thoroughly enjoying all your contributions in this
             | thread. I love getting a look into the architectural bits
             | of a project/community of this scale that I don't really
             | know much about. Very interesting, thanks
        
               | Animats wrote:
               | As I mentioned previously, there's not much written about
               | this. Which is probably why existing metaverse projects
               | are so awful. It's mostly taking Unity or Unreal Engine,
               | which are intended for use with carefully pre-built
               | content, and somehow trying to make a large dynamic
               | virtual world from those parts. The duct tape is
               | troublesome.
               | 
               | The primary technical designer of Second Life did a very
               | good job. Then he had a disagreement with management and
               | was fired. So he went to Facebook, developed their mobile
               | client, became a Facebook VP, made lots of money, and was
               | semi-retired for a while.
               | 
               | Scaling to a big world is really hard. Big has two
               | dimensions - area and density. The Second Life
               | architecture scales well in area but not in population
               | density. More than 20-30 users in a region will choke it.
               | More are possible if most users sit down and doesn't
               | move, because sitters are not getting physical
               | simulation. So audience-type events work.
               | 
               | Improbable was working on large crowds, but their
               | solution is really expensive to run. Which is why they
               | just do demos of Otherside for a few hours at a time
               | every few months. Also, they use very simple avatars and
               | do not, as yet, support vehicles. Took them over US$500
               | million to get to that point. They have dynamic regions -
               | more people, divide the world into smaller chunks. That
               | introduces a whole range of new problems. What if I have
               | 20 people on my boat, and a region boundary moves under
               | the boat while I'm crossing it? Stuff like that. Fixed
               | region crossings involving multiple avatars and vehicles
               | are troublesome in Second Life. People do try bus tours,
               | but sometimes an avatar gets Left Behind at a region
               | crossing. Linden Lab's devs have been trying to fix that
               | for at least 8 years, without success. It's a tough
               | problem in real time distributed system design.
        
           | Turing_Machine wrote:
           | > Presumably Cory thought he could do better the second time
           | around.
           | 
           | I remember a post from him where he said something like "Note
           | to self: next time spend more than a week(end) on the
           | scripting language". :-)
        
           | rnd0 wrote:
           | Primarily the problems with FB's metaverse are design (no
           | legs? really?) and goals. I'm sure that on a purely technical
           | level it's probably first rate. But as usually is the case,
           | the biggest problem is people.
        
       | fsiefken wrote:
       | With Firestorm, Open Simulator and Termux you could theoretically
       | host your own world in VR on your Quest.
       | https://nwn.blogs.com/nwn/2021/03/second-life-social-vr-ocul...
        
       | skrowl wrote:
       | The amount of GitHub contributions may have something to do with
       | how popular Second Life is for furries, and how many IT
       | professionals are furries.
        
       | xnx wrote:
       | Zuckerberg must be kicking himself for spending so many billions
       | on the metaverse right now.
        
         | justapassenger wrote:
         | That money is being spent on VR/AR HW and software ecosystem,
         | not one app on it.
        
       | steve1977 wrote:
       | That's the project where Facebook's Metaverse forked from, right?
        
         | guenthert wrote:
         | The founder of second life was inspired by the virtual world
         | described in Snow Crash, so both are forks in spirit from that
         | novel.
        
         | rnd0 wrote:
         | Well, one of the original founders (?) of SL went from their to
         | FB but I'm not sure what his original role is. I doubt that
         | there was a fork as we think of it. Everything I've heard
         | (second hand or third hand) is that the old SL server code is
         | really messy and wouldn't migrate over well -probably better to
         | simply take the lessons (social and technical) learned from SL
         | and start over from scratch.
        
         | jandrese wrote:
         | I wish. The Metaverse (Horizon Worlds) client is horribly
         | primitive compared to the SL client.
        
         | b800h wrote:
         | Perhaps when Linden Labs open-sourced the second life stuff,
         | ChatGPT cached it and Meta asked it to write them a metaverse.
         | 
         | EDIT: Well it does something...
         | 
         | ```Sure! Here is a basic client for Second Life written in
         | Python:
         | 
         | import requests
         | 
         | # Set the base URL for the Second Life API base_url =
         | "https://api.secondlife.com"
         | 
         | # Set the endpoint for the login API login_endpoint =
         | "/login"```...
        
         | FooHentai wrote:
         | No, but when I saw where Meta's effort had got them it struck
         | me they might have been better putting that development work
         | towards modernizing an implementation of SL.
        
       ___________________________________________________________________
       (page generated 2022-12-24 23:00 UTC)