[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)