Starting in a few hours, members of Crystal Frost's Patreon can finally get their hands on Second Life's first viewer running on Unity.
"The project is currently still in Alpha stage," lead creator Berry Bunny (Kallisti#2038 in Discord) warns, "so there are some performance issues, a number of bugs, and other issues. So anybody signing on to the Patreon for early access should know to temper their expectations." (Join at the Jacked In/Snowcrashed level of her Patreon for access to the download.)
That warning aside, this early Alpha comes with some features to play with now:
For one, you can already use Crystal Frost to talk with anyone in Second Life who's in local proximity to you, and also IM anyone in your friends list. "As well as respond to anyone who has IMed you, even if they're not on your friends list," Bunny adds.
At the moment, the default CF avatar is still just a cube, but basic avatar functionality is coming soon. "I am working on a pre-bento skeleton and animating it with SL's animations. But it'll be stick figures at first, and it won't be in the first Patreon preview."
In any case, it's a pretty exciting leap for Second Life, taking its first baby step into the modern era. Down the line, the ultimate goal for Crystal Frost is even more ambitious:
"Having a modern graphics engine that's multi-threaded, easier modability, implementing ray tracing and proper VR is super easy," as she explains. "I have ideas about how to implement VR and make it feel like VRChat. But I need to make the client stable and get rigged meshes working before I even attempt it. Also, theoretically better performance than the Linden Lab-based viewers, if I do it right."
VRChat is actually a large part of her motivation for taking on this project: "'[I'm] wanting to see SL become better, and wishing that VRChat had something comparable to SL's robust inventory and modular avatar system." (And also she's bored and wants a fun challenge.)
Speaking of which, Bunny is looking for another Unity developer to help with the project, so reach out to her on Discord if you're interested.
Join the official Discord server for more info and to chat with the creator. And share your experiences trying on CF below!
Well, well, it's definitely a start, and in much better shape than what it was, when I last checked upon its status :)
Congratulations to Bunny, she's hardly taking the easy route, and there is quite a lot of work ahead before this even becomes ready for 'beta'.
But... it's a start, namely, especially to access SL from any other platform that is not supported by the official viewer (as well as the many TPVs that rely on LL's code for almost everything).
While one might agree or disagree about the quality of LL's renderer (it's hardly that outdated, considering the kind of workload it has, and the unique characteristics of SL — a streaming-on-demand environment — and how the renderer deals with it; but that's just a personal opinion), the truth is that the renderer is just part of the problem: the issue, IMHO, is much more on the user interface than on the 3D viewing canvas side of things. That's where LL's approach has shown to hit limits and become increasingly tougher to handle as users put more and more demands on the UI itself.
By pushing the rendering part out of LL's code, Bunny is also able to tackle the interface part of it — and work on both as separate projects, something which currently cannot be done in the existing codebase. It'll be interesting to see what her approach will be. Unity, of course, can also handle all the interface bits — but then it's just really replacing one source of trouble with another. We'll see if Bunny realises that, and places the UI completely outside the viewer, running separately from it — possibly on a platform-neutral framework which strong support which can easily be expanded with the kind of tools that SL needs: its strong and solid inventory support (I mean, what kind of VW platform out there expects users to have hundreds of thousands of items in their inventory, with a complex permission systems on top of each and every one, multiplied by the million active users that SL still has?) but with terminally flawed UI; the way groups, chats, objects and land management is closely tied together (with the permission system and the group roles!) — making LL opt to develop everything from scratch and giving us just the bare minimum (chat looks and feels like IRC from the late 1990s at best — I mean, we don't even get emojis and/or bold/italic!).
The challenge, of course, is how much of that must be implemented on the 3D viewer, i.e. on the renderer side of things (like the ability to click on things with a mouse or moving the avatar around); and how much can be simply kept away from it, and be left to a normal-looking, quasi-native UI (such as what can be developed with, say, the Qt framework — the most popular and powerful out there). I would say that, at the very least, all chat-related functionality, all inventory-related things (including uploading assets!), and much of what today is the exceedingly complex and counter-intuitive notification system can benefit from being tied in with whatever the operating system already provides. Land management (including Estate Manager & Estate Owner options) are also very good candidates for moving out of the viewer. HUDs could become just floating windows — dealt with at the operating system level, not by the viewer) — but then there will be the issue of not breaking with current assumptions, such as the ability to configure HUDs using plain old LSL. However, the most challenging bits will come from things like in-world building or changing your avatar's shape (as well as touching or sitting on items) — these would probably have to remain deep inside the viewer, although I can imagine that some things (say, moving sliders or typing in parameters for the selected object or object's face) may be able to migrate outside the viewer's canvas.
There are quite a lot of things like these which I'll be quite interested to see how Bunny will tackle them... I'm sure I'll be pleasantly surprised, though.
For now, however, content is king — and that means worrying first to get the quality of the overall scene rendering that SL provides — and surpass it!
The rest, well, I can only guess at what the future will bring :)
Cheers, thanks for doing this exciting project!
Posted by: Gwyneth Llewelyn | Friday, March 03, 2023 at 05:04 PM
Thank you for your very well thought out and quite spot on remarks.
I've taken a software architect into the team and he's going to be helping out a lot. I'm actually taking a week and a half off of coding to give him time to catch up with the fact that in the last week I put in what would be several months worth of code from most other programmers.
He's hoping to separate out everything that doesn't 100% need to be handled in the Unity main thread so help improve performance, as well as get the project ready for multiple coders.
As for the UI, I don't need to use Qt. Unity's built in UI system is very platform neutral. As it is right now, the UI I have already supports multitouch. If you were to use a touch screen monitor, you could scroll the chat and contacts list with touch. In theory you should be able to also click objects with touch, but there's no way to cam around without holding the alt key down at this time because I don't have a working multitouch monitor anymore (used to have one) so I can't test multitouch gestures.
But yes there are a LOT of user interface things to implement. Most of the rendering stuff is in and just needs tweaks and a few minor things fleshed out like updates to texture offset, repeats, etc, or implementing sound stop messages for sounds played via llPlaySound or llLoopSound.
But outside of basically those minor things, and implementing rigged mesh and animation interpretation, optimization and user interface are the main things that are needed right now.
I am really REALLY looking forward to getting it to the point that I can make a native VR interfact for it. That's something I already have a lot of experience with, and I'm hoping to put Second Life back on the map of metaverses. More than that, I'm hoping Second Life can become everything VRChat, Horizons, and Sansar have failed to be. I'm also hoping to render them and others irrelevant. I'm very passionate about dragging this 22 year old metaverse into the current decade and making it the big player it was always meant to be!
Posted by: Berry Bunny | Friday, March 03, 2023 at 08:55 PM
It's amazing how quickly these folks have developed a viewer for Unity and get it to work right, but Linden Labs is still thrashing about, trying to figure out how to do one for Android.
Posted by: Robert McNay | Saturday, March 04, 2023 at 07:05 AM