Jump to content

animats

Resident
  • Posts

    6,144
  • Joined

  • Last visited

Everything posted by animats

  1. Since Monty Linden wrote that EstablishAgentCommunication is pumped by AgentUpdate from the viewer, I've been trying various things with Sharpview's sending of AgentUpdate messages. Turns out I was sending AgentUpdate as a reliable message. Switched to sending it as an unreliable message, and that helped. When idle, Sharpview sends it ever second. Twice, as hinted at by this code in the SL viewer. This works a bit better. Not reliably. But sometimes a little motion of the viewpoint, motion that doesn't cross the view distance boundary, will cause adjacent regions to send their EstablishAgentCommunication messages. In all this, AgentUpdate is doing its main job of moving the avatar around just fine. I can even log into the same area with another viewer and watch the avatar move. Whether sending reliably or unreliably, that works. It's only the mechanism that causes an AgentUpdate to be relayed to neighbor regions that seems to be not responding. Something in this area is very touchy and I'm not touching it properly, or at least not in exactly the same ways with the same timing that the C++ viewers do. There seems to be sensitivity to movement or timing that shouldn't matter.
  2. The technical limitation is that rigged mesh can't drape. It's just offset from the bones by a fixed distance. There's no cloth physics, which uses too much compute time to do in real time. That's why long dresses and skirts don't work well; legs go through them. Form-fitting clothing works better. Even in games that use cloth physics, you might see a cape or a scarf with proper physics and collision draping. but full clothing physics is rarely used. If it is, it's probably only for the hero character.
  3. Day cycle is a parcel property. It's set for land, and applies to everyone who visits there. The usual setup is a 4-hour day, with one dark hour out of the four. Some places have other settings. "NTBI" is on a 24 hour schedule set to New Jersey time. They take their day cycle seriously - some stores close at night. You can override the land's environment in a viewer, and make it be day or night all the time just for you. This messes up the look of some places. Especially ones where lights come on at night, or there are fog effects. Visit "New Babbage", which is foggy and lit like 19th century London, for a good example. You can mess with sun and moon position in "Personal Environment" to set your local day/night situation, but you can't currently tie that to a clock. It's confusing when, for some people it's night, and for others, it's day.
  4. Should the Linden Memorial Park be used more? If you've had Premium or Premium Plus for a while, should you have a grave in SL, so your friends can remember you?
  5. Tests as requested: This is the Dore (NW) Ahern (NE) Bonifacio (SW) Morris (SE) corner on the beta grid. The login region always comes up immediately. Logged in at region center of Morris with 64m draw distance. Neighbor regions appear when 64m distance crossed. Logged into Morris near corner. Ahern appears immediately, Dore and Bonifacio after one minute. Have done this many times; repeatable. Logged into Dore at region center with 64m draw distance. Neighbor regions appear when 64m distance crossed. Logged into Dore near corner. Morris appears immediately, other two after one minute. Logged into Bonifacio at region center. Morris and Dore appeared when walked into range. Ahern took 1 minute. Logged into Bonifacio near corner. Morris appeared immediately. Other neighbors took one minute. Logged into Ahern. Landed near corner due to landing point. Can't land at center. Bonifacio appeared immediately. Dore and Ahern took one minute. The Other Simulator: Logged in near region corner, all four regions come up immediately with no problems. Note that region handshakes always take place, and object updates start coming in. It's only the EstablishAgentCommmunication message that doesn't show up. I suspect there's some undocumented thing I need to do after login to get things going, but I have no idea what. As far as I can tell from the code, I'm sending what the SL viewer sends. I haven't yet reached the Wireshark level of reverse engineering desperation.
  6. It's not entirely a silly subject. I've done a bit of work on this, because, in my experimental Sharpview viewer, I want to show more of the world than just the draw distance, so you have more of a sense of where you are. When you want to show the big world, this stuff matters. A few years back, I turned the SL map into a slippy map, so you can pan, tilt, and fly over. Above Second Life. (I have this online, but because of BUG-226430 I have to front-end the map content delivery network with a proxy, and it doesn't work reliably because the free proxy has bandwidth limits. You can try it but you get cut off before the whole map loads.) This lets you see the entire SL map, which is helpful when flying. This would be turned on for mainland and big estates, but off for isolated regions, so they see the usual infinite water. This models a flat world with an infinitely far away horizon. That's stage 1. At ground level, you need distant objects to have some elevation, or you can't see them. It's possible to get elevation data for a region and project the map data onto it. Someone did that at SL20B, and others, including me, have done it. This lets you see hills. It's possible to do better, but the SL map painted on elevation meshes is a good starting point for test purposes. A more advanced system might use Open Drone Map to make low-rez region models from pictures of mainland taken by drone bots. (Only mainland and big estates need this. You can't see isolated regions from off-region.) With this flat world, you'll see the tallest terrain in SL from everywhere. Being able to see Mt. Campion in Heterocera all the way from from southern Bellessaria would look wrong. Plus it adds overhead. So some kind of horizon would help. So it's useful to apply some curvature to the world. That's stage 2. At normal eye height, the horizon is about 5 km distant. Of course, if you get on top of something tall, you can see further. Curvature would only be applied to distant region impostors. Wherever you are, within draw distance and a bit beyond, would be completely flat. Distant mountains would be be partly below the horizon, and completely hidden at some distance. Above some height, object elevation doesn't matter too much and a flat ground map is good enough. It's not a perfect illusion but it will give a sense of place. Juggling curvature, draw distance, and impostor management is an interesting technical problem. More on this in future months.
  7. If the lost-bot problem is brought under control, maybe the useless safe hub off to the west of Zindra and its waterway could be removed. Most of the Zindra safe hubs are used only by lost bots.The number of those is declining as LL insists on bots having the bot flag set. There used to be about 200 lost bots at the Zindra and Horizons safe hubs, but that seems to have declined a bit. Those regions could then used to fill in the unfinished rough edge of Zindra in the southeast corner. Three more regions there would connect up four dead-end roads and clean up an edge that just hangs off into space. Most of that could be saleable land, too. By the way, Zindra has a sizable ocean, but it's not used much because nobody can find the hidden rez zones. (There are two on the south side of the river at the Port of Kama City.) The people with beachfront property don't seem to sail much, if at all. Standard Belli-type rez zone markers would help. This is just low-cost municipal tidying up.
  8. SecondLive seems to be a real thing, an Asian crypto social network. It's classic 2021 crypto metaverse stuff - wallet, coins, mining, play to earn. It's an Android phone app. You can overlay cute little dancing kawaii avatars on phone video of the real world, and share the videos. (YouTube link) It's kind of a mashup of Pokemon Go, Vocaloids, TikTok, casual gaming, and crypto. It's probably a Lose Money Fast scheme on the crypto side, but at least it has cute graphics. The fake Second Life viewer, on the other hand, is just a low-rent phishing attack to get malware installed.
  9. That's a good policy statement. Road connection, Corsica. The Moles left a gap in the hedge for access, and it's up to the parcel owner to connect up somehow. Behind the "Under construction" sign is one prim of pavement which has some twist to attach cleanly to the Linden road. It's about 2 meters over the parcel edge at its furthest point. This looks far better than following the jagged parcel boundaries. I posted a picture once of someone who carefully ended their landscaping at the parcel boundary alongside a curved road. Looked awful. So, if you do this, make it look like it belongs there. This sort of thing is common. Most people never notice. Unless it's a pain for someone, . A low-hanging sign that blocked GTFO trucks was a problem once. Someone had a tree branch which interfered with the Zindra monorail. Moles took care of both. Problems like this come up in real life all the time. Who maintains the space between the sidewalk and the curb? Varies by jurisdiction. I live next to a creek in real life, and a tree growing out of the creek bank fell onto my driveway after a storm. Turns out the county owns one creek bank, the centerline of the creek is a city line, the tree may be on a property line but we'd need a surveyor to be sure, and we never did get a good resolution. Just cut off the part of the tree that was blocking the driveway. There are two places in Bay City where there is a curb cut in a Linden road to accommodate a private driveway. See if you can find them. Part of the fun of mainland is making the pieces fit together nicely.
  10. Be nice to NPCs. Some of them remember. Someday, they will be in charge.
  11. Oh, that thing. It appeared a few days ago. It's been reported to LL and Soft Linden is following it. If you find someone with an SL account distributing this, report it. Do NOT install it. It's not a viewer at all. It's an installer for at least four pieces of malware. It installs backdoors that let others take over your machine. After installing malware, it pops up a message box: "The OpenGL driver detected a problem with the display driver and is unable to continue. The application must close. Error code:3 ,0+64,"Error". There's no viewer in there at all, apparently. Not even a hacked one. Just a line of PowerShell to display that message. If you've downloaded this on a Windows box and run the download, major malware cleanup is required. This sort of thing is seriously annoying for us third-party viewer developers. Gives TPVs a bad name.
  12. If you want to upgrade the appearance of things, adding normal maps is more effective than adding environmental reflections. If you don't want to create normal maps by hand or in Blender, try "Deep Bump", a free Blender plug-in which uses a machine learning model trained on common textures. I've mentioned that before. Really good on brick, shingles, etc., because it knows what those look like. Clothing with textured seams, wrinkles, and pleats sometimes works. Bark is OK.
  13. I need to make the chrome on my motorcycles shiny. Tested that on the beta grid months ago. Don't overdo shiny, please. Just because you can make an entire building look like chrome doesn't mean you should.
  14. A bit more insight. If I set the draw distance to 64 meters, and log Sharpview in near the Ahern/Morris/Dore/Bonifacio corner on the beta grid, two of the regions take a full minute to appear. But if I log in from a point more than 64m from the region corner, and then get closer, crossing the 64m threshold triggers the appearance of the missing regions. So the simulator function that turns on regions as you get close is working, and something that apparently checks once a minute server side for the correct regions being up is working, but the initial state after login is not right. I wonder if the one minute timer is related to making regions go away when you get far enough away. That's not immediate; there's some delay there, reasonably enough. to prevent frantic region connect/disconnect when close to the draw limit. I probably need to do something to kick things into action right after login. But what? Time to go read SL viewer code again. More later.
  15. Thanks. I'm looking hard at my logs right now. The stall may have started further back, at EnableSimulator. I get EnableSimulator for each neighbor region, and reply with UseCircuitCode and a CompleteAgentMovement to the neighbor region. Maybe I shouldn't be sending a CompleteAgentMovement to the neighbor region. The neighbor region simulator sends the viewer a RegionHandshake without any delay, the viewer answers that with a RegionHandshakeReply, and update messages start. So the neighbor simulators seem to be happy, having accepted the connection and delivering updates. One minute later, there's a duplicate EnableSimulator from the two neighbor regions that are not fully live yet, but not from the ones that are live and displayed. Each of those is immediately followed by the missing EstablishAgentCommmunication event. Then the region starts up. It's starting to look like I did something wrong back at the EnableSimulator handshake. After UseCircuitCode, what's supposed to be sent to a neighbor region? There's a good chance I'm doing that wrong. Puzzled that this all works for the first neighbor region, but not others. More later.
  16. Huh. The prim link order changes with each upload, but the face order per prim shouldn't.
  17. Thinking about it, I may have seen this, on rare occasions, in Firestorm. My home login location, in a second floor office with windows, overlooks three adjacent regions, and sometimes one of those regions comes up blank, then appears after a delay. If your login location doesn't overlook other regions, you might never see this. Comments?
  18. > RegionHandshakeReply is complete. Yes, it is, and object updates are pouring in. They go on a holding queue waiting for the EstablishAgentCommunication and the capability fetch for the asset capabilities. Once those are in, the region goes live and all the held object updates are processed, at which point the region snaps into visibility. > But Dore's seed capability invocation by the viewer is delayed. I'd normally blame the viewer for the delay. No, as soon as the viewer gets EstablishAgentCommunication, it makes the HTTPS request for the initial region capabilities. I have logging of that; I just didn't send an entire log file. How does the viewer "invoke the seed capability"? RegionHandshakeReply is done, and we know the simulator got it, because object updates started coming in. > but it must be driven by IL activity forwarded from main (Morris). That is where I'd look. "IL activity"? What is that? There are definitely plenty of AgentUpdate messages being generated. The avatar can be moved around within Morris, and another viewer in Firestorm looking at the same spot sees it moving. Moving the avatar around, or keeping it still, does not seem to affect the 1 minute delay. Is there something else that the viewer must send to the main agent simulator? I've tried making the event poller time out and retry every 15 seconds. That has no effect on this issue. I'll get several empty timed-out polls, then an EstablishAgentCommunication message. Usually I use a 90 second timer and let the simulator time out. Works the same either way. So it's not a consequence of the poller timeout. Maybe. The 1 minute delay (± 2 secs) before EstablishAgentCommunication shows up is very consistent in all these scenarios. More excerpts from the same log summarized previously: 06:06:53 [WARN] EventEstablishAgentCommunication, unparsed: Map({"seed-capability": String("CENSORED"), "agent-id": UUID(CENSORED), "sim-ip-and-port": String("54.202.5.63:13003")}) 06:06:53 [WARN] Establish agent communication event: [MsgServerEvent { region_handle: (255232,256256), event: EstablishAgentCommunication(EventEstablishAgentCommunication { socket_addr: 54.202.5.63:13003, agent_id: CENSORED, seed_capability: "CENSORED" }) }] 06:06:53 [WARN] Establishing agent communication to (255232,256512) 06:06:53 [WARN] Region (255232,256512) state change from Connected to SeedCapabilityReceived: Seed capability from establish agent communication event 06:06:53 [WARN] Fetching capabilities for region (255232,256512) ... 06:06:53 [WARN] Fetched capabilities: RegionCapabilities(RegionCapabilities { start_time: Instant { tv_sec: 2291337, tv_nsec: 167534157 }, region_handle: (255232,256512), region_capabilities: {"GetMesh2": "CENSORED", "GetMesh": "CENSORED", "RenderMaterials": "CENSORED", "GetTexture": "http://asset-cdn.glb.aditi.lindenlab.com", "EventQueueGet": "CENSORED"} }) 06:06:53 [WARN] Region (255232,256512) state change from SeedCapabilityReceived to CapabilitiesReceived: Capabilities received. 06:06:53 [WARN] Region [Ahern] (255232,256512) state change from CapabilitiesReceived to Live: Live This is from the same Sharpview log as previously posted. There's been a 1 minute delay between RegionHandshake/RegionHandshakeReply for Ahern before EstablishAgentCommunication was received at the viewer end. That message was rerouted from the viewer's main agent region (Morris) to the neighbor region in the viewer (Ahern). That causes the viewer to request region capabilities "GetMesh2", etc, and those come back within the same second. Ahern then goes to Live state and appears on screen. So the delay is before EstablishAgentCommunication is received, not in fetching capabilities. It's quite possible that Sharpview needs to send something more to wake up the simulator, but I don't know what.
  19. Because SL does not have a full hierarchy yet. You only get one level of child prims. Fixing this is an accepted JIRA. Philip Rosedale once said that not having a full hierarchy, like every other 3D program, was his biggest design mistake. You can sit on animesh. That's how SL horses work. Yes, if you wore a sex HUD and others could sit on you, you could have sex anywhere. Unclear if that would be a good thing.
  20. What's the best current info for someone who wants to make basic mesh clothing? Are there free Blender models for basic shirts, dresses, pants, etc. that can be modified? Or do you have to get Marvelous Designer and do it from scratch?
  21. Is there a legit use case for having permissions persist for items in inventory? If this really is an irrevocable situation, this is a bug. If someone can make that happen with a simple, reproducible, example, it would help to write it up as a JIRA. Make a scripted prim that, when sat on, makes an avatar do something once every few seconds when nearby. Demonstrate that none of the standard ways to stop it work. Make a video. Put a link to the video and the text of the script in the JIRA. Consider marking the JIRA as security-related; that's a checkbox. Then come to Server User Group (Every Tuesday, noon, Denby) and bring it up with the developers. Do the JIRA first. Otherwise you'll be told to file a JIRA.
  22. The problem is real, but it's more puzzling. I set the poll timeout on my side to 10 seconds. That gets me a timeout and re-poll every 10 seconds. But it still takes a full minute to get the EstablishAgentCommunication events. Puzzled. Somewhere server side, there is a 1 minute timer, apparently. I'm doing something wrong, or a least differently, here.
  23. Here's some logging info that provides a bit more insight. This is Wednesday evening on Aditi, and times are UTC. Selected log entries from Sharpview. Logged into Morris, standing near the Morris/Ahern/Bonafacio/Dore corner, a place I visit far too often. Here we're seeing the four regions being found by the viewer. They all get found. Morris gets found at login. The other three regions show as Discovered, which means EnableSimulator came in. Each of those regions quickly gets a RegionHandshake, and object updates start pouring in. (They go on an internal hold queue, though, until the region is fully live.) Ahern goes live quickly; 2 seconds after the RegionHandshake, the EstablishAgentCommunication event comes in via the event poller. The region goes live and appears on screen. But then, for a full minute, Bonafacio and Dore don't show up. They're stuck waiting for their EstablishAgentCommunication events. Note the times above. One minute later, the event poller in Sharpview reports an unexpected EOF on the poll request. Sharpview's poller has a 90 second timeout, so this is presumably a server-side timeout. So Sharpview does another poll, and now the EstablishAgentCommunication events for Dore and Bonafacio regions come in, and those regions quickly appear on screen properly. So long polling isn't working properly here. With a long poll in progress, an event from the server did not cause an outstanding long poll to complete and quickly return the new event. The poll had to time out first, and the next poll retrieved the event. Sharpview's polling is very simple - make HTTP request, wait 90 seconds. No libcurl retries. Uses the simplest Rust HTTPS crate: "ureq". I have more logging info, and can make this happen on request. I've tried this three times. Moving the avatar around Morris near the corner, to force more agent updates, does not change this behavior. One minute delay, every time. (I wonder if the libcurl retries are what makes this work for other viewers. A retry by the viewer would get the polling process un-stuck. That should not be necessary, but may be why it works in the mainstream viewers.)
  24. Current tier pricing. Possible "purchase what you need" tier pricing.
  25. There's Kawaii City. Look in search. This is a very strange place. Kowloon Walled City meets the Russian Mafia, with ruins of Tokyo subway stations. It's a stack of skyboxes connected by elevators and experience teleports. I spent an hour there and I'm still lost. More Blade Runner than kawaii as you get further from the entrance. Many clubs and bars, nobody there. They claim to have rentals, but I never found them. Japanese-themed areas include Hiroba Town in Davros and the stretch along Electra/Burns/Neumogen. Look around; you may find rentals.
×
×
  • Create New...