-
Posts
6,144 -
Joined
-
Last visited
Content Type
Forums
Blogs
Knowledge Base
Posts posted by animats
-
-
9 minutes ago, Lucia Nightfire said:
It's KVP, not KPV, heh
There was this feature which would have given us synchronous access to "prim memory", something unique to SL. It's why developers couldn't wrap the heads around it, heh.
Re-propose after "cloud uplift". The server processes are still in a 32 bit address space, right? The original SL hardware from 17 years ago had to be 32-bit. Almost everything in AWS is 64 bits now, with more address space. So using more space after "cloud uplift" becomes easier.
-
So how is this "Camp Virtual" thing working out, anyway? Do the kids like it? What does the next generation think of SL?
- 1
-
I wish we had some way to save more data in ordinary objects.
(Experiences get a key-value store, but regular prims get nothing. They can't even write notecards. You can store data in lists, but that eats up script memory, so you can't store much data. Using an external server means the product requires that external server stay up forever.)
-
Try using llSetLinkPrimitiveParams instead of llSetLinkPrimitiveParamsFast. You don't want 'fast'. You want to wait for the previous change to complete before the next one starts, which is what regular llSetLinkPrimitiveParams does.
- 1
-
A landmark apparently overrides the landing point. Is that only for the owner?
-
I've tried setting the teleport landing point for my parcel in Bellessaria. I can set it, but teleports always return to the old point, which is on top of something. Is setting the landing point disallowed or limited?
-
No, don't increase the stipend. Before the price on Premium went up, landlords could buy premium memberships, buy land, and almost break even by cashing in the stipend. This is part of why there's so much vacant land owned by landlords. LL should not subsidize that.
-
Most of what Firestorm writes is to the cache. I have the Firestorm cache, but nothing else, on a small SSD, which helped performance considerably. There's almost no disk I/O on the main disk after that.
You get to set where Firestorm puts its cache in Preferences, so that's easy to do.
-
More Metaverse coverage in the press: TechCrunch talks about Wave, which is yet another system for virtual concerts. Not much of an article except for one part: "The Wave has features for its virtual reality users that allow them to communicate and enter private virtual spaces where they can share unique visual experiences — Arrigo likens it to taking virtual drugs or having a virtual drink. There’s no reason why a venue couldn’t sell those experiences to concert-goers for a fee." But, of course, no sex.
Forbes, in another article, addresses whether the metaverse should be story-driven.
"(Metaverse-like) online experiences have been available for some time. Yet, these virtual worlds have failed to approach the popularity of modern video games. Linden Labs, the developer of Second Life, which began in 2003, intentionally differentiates its platform from video games by having "no set objective." In short, it lacks the story-driven goals of modern video games."
"Early video games were not heavily story-driven and were targeted to a rather narrow demographic of young male gamers. This is changing as modern video games are delivering story-driven content in an expanding variety of genres and gameplay types that appeal to a broader audience than the traditional gamer. By comparison, on-demand cable and OTT content is almost exclusively story-driven and attracts a larger audience than AAA games."
The downside of having a story is that, after a while, the users have seen the story. So the story line needs new episodes regularly, which gets expensive. Nostos just ran into this. It was supposed to be a big open-world metaverse built on the Spatial OS backend. It's really just a grinding/quest MMO that takes experienced gamers about three hours to finish. Great artwork, though.
There's a place for big worlds between story-driven and having no set objective. GTA V Online lives there. It has about the same number of concurrent users as SL, interestingly. Drivers of SL, and GTFO, are low-key examples of that model. They live in the big world, not their own dedicated world, but have game-like structure. Interesting to think about what else could be done in that direction.
-
LL put in one kind of synchronized viewing in that new project viewer for a special event - the capability of watching live streams. That will go into all viewers soon, Oz mentioned. If everyone is watching the same live stream, they should be in sync. So you can watch live sports as a group, if you can solve the rights problem.
Sports bars, here we come?
- 1
- 1
-
On 6/8/2020 at 8:48 AM, Whirly Fizzle said:
Which of the two viewers has better performance probably depends on if the users system is GPU or CPU bound.
This change in Alchemy isn't something we could do in Firestorm. The consequences of the optimizations Alchemy did would stop users on older systems being able to run the viewer at all - it wouldn't even launch. I don't think it would run on any Windows 7/8 system either, no matter how new the hardware was.
Unfortunately there are a large proportion of SL users running on outdated OS with older hardware.So what is Alchemy doing in the GPU?
-
There are "Trump 2020" signs around mainland, all the same. Clearly there's some Republican campaigning effort in SL. Maybe find out who's behind that and see if they're scheduling any rallies.
-
I've seen wall walkers. They use llCastRay to find the wall and then position the avatar.
-
1 hour ago, brodiac90 said:
Who's steering the boat?
Wow, 100 sims with 3 avatars. Did you do that without region crossing failures?
- 1
-
Steam's automatic survey of their users indicates that most users have an NVidia 1060 or better. The NV 1060 came out in 2016. That's much more GPU than the average SL user.
-
Wait, when did this happen? All the servers just got a more recent SSL certificate store, because an important root cert expired June 1. It should work now with a current "curl", but it wouldn't have worked for a few days last week.
Try putting the URL into one of the SSL certificate chain checker sites, like https://www.sslchecker.com/sslchecker and see what error messages you get.
-
I've wanted a road to connect the northern and southern road systems of Zindra. LL owns the necessary land, and it's even marked "Southern Bypass". But it's bare grass and you have to know where it is.
-
Oh, I could really use that. I think Havok has that function, as "cast beam".
Finding out if a space is empty takes too many ray casts. Here's what I do in my NPCs to check if an NPC-sized cylinder is empty.
if (obstacleraycasthoriz(p0+halfheight+fwdoffset, pc + halfheight)) { return(-1.0); }// Horizontal cast at mid height, any hit is bad if (obstacleraycasthoriz(p0+fullheight+fwdoffset, pc + fullheight)) { return(-1.0); }// Same at full height to check for low clearances if (obstacleraycasthoriz(p0+halfheight+fwdoffset+sideoffset, pa + halfheight)) { return(-1.0); }// Horizontal cast at mid height, any hit is bad if (obstacleraycasthoriz(p0+halfheight+fwdoffset-sideoffset, pb + halfheight)) { return(-1.0); }// Horizontal cast at mid height, any hit is bad // Crosswise horizontal check. if (obstacleraycasthoriz(pa+halfheight,pb+halfheight)) { return(-1.0); } // Horizontal cast crosswize at mid height, any hit is bad // Downward ray casts only. Must hit a walkable. // Center of cell is clear and walkable. Now check upwards at front and side. // The idea is to check at points that are on a circle of diameter "gPathWidth" if (obstacleraycastvert(pa+fullheight,pa-mazedepthmargin) < 0) { return(-1.0); } if (obstacleraycastvert(pb+fullheight,pb-mazedepthmargin) < 0) { return(-1.0); } // cast downwards, must hit walkable if (obstacleraycastvert(pc+fullheight,pc-mazedepthmargin) < 0) { return(-1.0); } // cast downwards, must hit walkable if (obstacleraycastvert(pd+fullheight,pc-mazedepthmargin) < 0) { return(-1.0); } // cast at steep angle, must hit walkable // Need to do all four corners of the square. Used when testing and not coming from a known good place. if (obstacleraycastvert(pd+fullheight,pd-mazedepthmargin) < 0) { return(-1.0); }; // cast downwards for trailing point
10 calls to llCastRay for each square as the maze solver plans its way around an obstacle. The script doing this sometimes runs for two minutes on hard cases. There are horizontal ray casts to catch vertical obstacles, and vertical ray casts to catch horizontal obstacles. If a ray cast starts inside an obstacle, it doesn't see it, so all this is necessary. Even with all this, it can miss a thin pole.
-
1 hour ago, Twisted Pharaoh said:
Speaking of llRequestSecureURL(), I got an issue recently:
curl https://simXXXXX.agni.lindenlab.com:12043/cap/4700d12c-7c84-580a-892c-1f997899a73b curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
What's using "curl"?
You probably need a version of "curl" that uses a more recent root certificate store. See:
https://jira.secondlife.com/browse/BUG-228848
https://www.ssl.com/blogs/addtrust-external-ca-root-expired-may-30-2020/
-
There are places inside the viewer code that may think they know a little too much about SL URLs:
grep "secondlife.com" *.cpp fsgridhandler.cpp:const char* MAIN_GRID_SLURL_BASE = "http://maps.secondlife.com/secondlife/"; fsslurl.cpp:const char* LLSLURL::MAPS_SECONDLIFE_COM = "maps.secondlife.com"; fsslurl.cpp: // (or its a slurl.com or maps.secondlife.com URL). llappviewer.cpp: LL_ERRS() << "Viewer failed to find localization and UI files. Please reinstall viewer from https://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall." << LL_ENDL; llappviewer.cpp: // https://releasenotes.secondlife.com/viewer/2.1.0.123456.html llfloaterland.cpp: // the search crawler "grid-crawl.py" in secondlife.com/doc/app/search/ JC llfloatermodelpreview.cpp: // validate_url = "http://secondlife.com/my/account/mesh.php"; llfloatermodelpreview.cpp: validate_url = "http://secondlife.com/my/account/mesh.php"; llfloatermodelpreview.cpp: if (num_hulls > 256) // decomp cannot have more than 256 hulls (http://wiki.secondlife.com/wiki/Mesh/Mesh_physics) llimprocessing.cpp: indx = msg.find(" ( http://maps.secondlife.com/secondlife/"); llmarketplacefunctions.cpp: std::string domain = "secondlife.com"; llmeshrepository.cpp:// http://wiki.secondlife.com/wiki/Mesh/Mesh_Asset_Format) llmeshrepository.cpp:// See wiki at https://wiki.secondlife.com/wiki/Mesh/Mesh_Asset_Format llslurl.cpp:const char* LLSLURL::MAPS_SECONDLIFE_COM = "maps.secondlife.com"; llslurl.cpp: // (or its a slurl.com or maps.secondlife.com URL). llstartup.cpp: gSavedSettings.setString("MapServerURL", "http://test.map.secondlife.com.s3.amazonaws.com/"); llviewercontrol.cpp: // AO - Phoenixviewer doesn't want to send unecessary noise to secondlife.com llviewercontrol.cpp: //if((std::string)test_BrowserHomePage != "http://www.secondlife.com") LL_ERRS() << "Fail BrowserHomePage" << LL_ENDL; llviewernetwork.cpp:const std::string SL_UPDATE_QUERY_URL = "https://update.secondlife.com/update"; llviewernetwork.cpp:const std::string MAIN_GRID_SLURL_BASE = "http://maps.secondlife.com/secondlife/"; llviewernetwork.cpp:const std::string MAIN_GRID_WEB_PROFILE_URL = "https://my.secondlife.com/"; llviewernetwork.cpp: // This file does not contain definitions for secondlife.com grids, llviewernetwork.cpp: "https://secondlife.com/helpers/", llweb.cpp: substitution["GRID"] = "secondlife.com"; llweb.cpp: //boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com)$", boost::regex::perl|boost::regex::icase); llweb.cpp: boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com|secondlifegrid.net|secondlife-status.statuspage.io)$", boost::regex::perl|boost::regex::icase); llwebprofile.cpp: * -> GET https://my-demo.secondlife.com/ via LLViewerMediaWebProfileResponder llwebprofile.cpp: * -> GET "https://my-demo.secondlife.com/snapshots/s3_upload_config" via ConfigResponder llxmlrpctransaction.cpp: std::string uri = "http://support.secondlife.com";
Some of those are OK, and some may need attention.
-
Is there a FAQ link for this? Common question.
- 1
-
Are the animesh objects attachments to an avatar? Like all other attachments, they have no physics model and are not detectable via llCastRay.
My own animesh NPCs are definitely detectable with llCastRay; they avoid bumping into each other.
"llCastRay will not detect prims having no physics shape (PRIM_PHYSICS_SHAPE_TYPE = PRIM_PHYSICS_SHAPE_NONE)."
Can you walk through the NPCs you can't detect?
- 1
-
The game rating systems for kids won't allow unmoderated chat below age 12. So SL is out.
Animal Crossing is an option. Chat is automatically censored, and it's all saturated colors and rounded corners, so it's considered kid-friendly. Animal Crossing seems nice, but it is a harsh world - you start out in debt and have to work your way out, paying off Tom Nook, the landlord. Preparation for real life.
-
4 hours ago, Selene Gregoire said:
FOOOOORRRRRRE! 🏑
Wrong thread?
Looking to pay for the creation of an animesh character
in Inworld Employment
Posted
I've been doing some work on that. I'm looking into bolting the Rasa system onto Second Life. But I'm months away from having anything useful.
Rasa is intended for customer-support chatbots. It's open source, and it may be possible to bash it into being an NPC engine. I loaded the GTFO frequently asked questions list into it, and it gives you back the most relevant answer for whatever question you ask. It's good at matching sentences to ones with the same meaning, and uses machine learning techniques to do it. But I only have about 20 Q and As to work with, so if you ask something not covered, you get a mostly bogus answer. It knows it doesn't have a good match, and can be set to respond with something like "I don't understand". This sort of thing needs hundreds of examples to work well, and someone has to monitor its errors for the first few thousand requests to train it. So it needs infrastructure and a staff to feed it data.
This sort of thing is intended for a business faced with hundreds of thousands or millions of support requests every day, and wants to handle 99% of them automatically, while diverting the hard cases to a call center. So you have lots of text to work with. For a NPC that gets a few users a day, it's going to take a long time to get enough interactions to train the system. It's overkill for Second Life, but interesting to work on during lockdown.
If you have some good question and answer sets, let me have a copy and I'll play with them a bit. Best to have three or four ways of stating each question, and about a hundred answers. Then there's enough data for the machine learning system to get started.