Jump to content

animats

Resident
  • Posts

    6,171
  • Joined

  • Last visited

Posts posted by animats

  1. More technical stuff. I'm posting this mostly for the benefit of other developers.

    I've finally found a way to generate region crossing failures for test purposes. I have a bike script which, when told to do so, endlessly circles the intersection of four regions without requiring any user action. This causes a region crossing every second or two.  I run this in an empty adult/premium four sim sandbox. At last, test automation.

    Region crossing failures tend not to happen in empty sandboxes. I've run this for 1000 region crossings without a failure. CPU load on my end does not matter. Running four copies of memtester (this is Linux, Ubuntu 16.04 LTS) does not cause problems.

    If I load up the network (connection is 50mb/s down, 5mb/s up, on Sonic, which has no middle boxes or traffic shaping), by running an endless loop of speed tests, I'll consistently get a region crossing failure within five minutes. At last, the ability to do repeatable experiments.

    And a useful insight. It's network loading that triggers the problem. Avatar complexity, vehicle complexity, script complexity, and scene complexity, which have been thought to cause region crossing problems, all run up network usage, and may make a failure more likely. But the underlying problem seems to be related to network capacity.

    Work is proceeding on automatic recovery from half-unsits. There are a lot of cases:

    • Sometimes unsit recovery works successfully.
    • Sometimes the avatar is so far from the bike, beyond llShout range (100 meters) that the bike script can't reach the RLV relay to tell it to teleport the avatar back. This is going to need a back-up communications system (llEmail, maybe) for when that happens.
    • Sometimes the bike disappears from the sandbox while the rider is being re-seated. This is a problem with the sandbox not allowing object entry. When the rider gets off, the bike is considered to have "entered" the sim, even though it was already there. Linden roads usually aren't set up that way, so this is more of a sandbox problem.
    • There's the "bike straddling region crossing" problem mentioned in a previous post. The bike will probably have to move itself into a single region before triggering the recovery process.
    • There are occasional script error messages about inability to start an animation because the script can't find the agent. This is harmless but annoying. It's not about losing permissions; that's already covered. There are some strange situations that exist momentarily during every region crossing. It may help to delay animation restart until 1-2 secs after region crossing completion.

    This testing uses a modified RLV relay. Unsit recovery is going to require its own attachment, much like a RLV relay, but more limited. The only thing it will do is re-sit the avatar where it was previously sitting. This will run on a different communications channel so as not to interfere with RLV. I'm thinking of call it "Seat Belt". When you get in/on a vehicle equipped with this, you'll be offered a Seat Belt attachment if you don't already have one. If you put it on, you'll get recovery capability. None of the hassles of wearing an open RLV relay.

    All this is a workaround. The real problem seems to be in the message exchanges between the sims involved and the viewer. Delaying or losing some message(s) can break a sim crossing. The viewer actually plays a role in managing region crossings, one of the Lindens mentioned in the Server User Group meeting. This is unexpected; "never trust the client" is a rule in client/server games.  SL apparently does trust the client. Has anyone looked at that code in the viewer?

    • Like 2
  2. Remember, "the cloud" is time-sharing. You pay for what you use. Financially, SL now becomes a variable cost rather than a fixed cost. So the economics change. Minimizing the number of servers in use becomes more important. Lag becomes a profit center.

    SL really is a virtual world. SL's sims continue to run even when no one is in them. They can't be turned off without breaking the world. Trains and Yava pods continue to travel through sims empty of avatars. Tugs and ferries move over empty ocean. Horses continue to graze and grow.  Tens of thousands of active objects continue to run their scripts. SL sim servers are almost a fixed load. That's not a good fit to AWS.

    Compare Sansar, where resource usage is determined by the number of shards of an experience. That, in turn, is determined by the number of avatars. If Sansar needs 10,000 instances of Aech's Garage the day Ready Player One comes out, AWS can do that.

    If SL moves to a pay-per-use cloud, LL will have tough management meetings over this.

    • Like 1
    • Thanks 1
  3. The Sumi cars are very cute. The dune buggy handles very well on rough terrain. It has independent suspension, even. Their region crossing behavior is good, too. Go to his shop in Burns, rez a demo car, and make a quick run around Robin Loop.

    I've been working on region crossing improvements, as some of you know, but I'm not ready to release a vehicle for wide use yet. I do have a demo bike I give out, but it's a tech demo. On that note, does anyone know of a vehicle that's really bad at region crossings? I need something to test with that generates frequent half-unsits. My test motorcycle takes too long between failures, which is slowing down development.

  4. 1 hour ago, ChinRey said:

    No, it's done by the uploader and has nothing to do with what software is used to create the mesh.

    In the viewer, or back at the server?

  5. 3 hours ago, arton Rotaru said:

    Other than that, this is the Second Life forums. We discuss how to do stuff in Second Life, within it's capabilities and limitations.

    I'm sure there are quite a few engines out there which can do a ton more cool things than Second Life does. Doesn't help me creating for Second Life though.

    SL imposter generation could be done by a script for Blender. Most of those awful triangle decimations seem to come from Blender, so a Blender-based tool makes sense. Something like this:

    Blender's renderer can render both isometric (infinite camera distance) and RGBA, so you can get out a clean PNG for the impostor texture, with transparency where appropriate. Render from the normal to the center of each face of the impostor, to get a texture for that face. Maybe render twice per face; once with diffuse light for the diffuse texture, and once with a single straight-on light for specular. Or not. Upload the texture for each face, and bake into one texture.

    I've used Blender, but not recently. Someone current with Blender could probably do this easily.

    You have to be aware of what the competition is doing, or you get behind and become irrelevant.

  6. 1 minute ago, Da5id Weatherwax said:

    Don't get me wrong, I know Havok has limits and the API LSL gives us into it imposes even more.. I am deliberately trying to push those limits with this and see how far they can go before squeaking :)

    Nice. Keep posting. Sphere vs sphere and sphere vs plane are the easiest collision cases; they really ought to work.

  7. On 2/9/2018 at 12:15 AM, Whirly Fizzle said:

    I found that MP listing.
    In fairness to this creator, they do not suggest setting RenderVolumeLODFactor to a stupidly high setting.

    The low-LOD model could be a grey flat plane. Maybe with a picture of the vault door. But one random triangle and a big opening is a fail. Low-LOD models should at least cover the area of the object. Some people are pushing triangle decimation way too far. It's the wrong tool for the job when you're down to single digits of triangles.

    Unreal Engine's creator tools have a built-in feature for creating impostors. It renders the object from many angles and builds a sprite with the rendered images pasted on. SineSpace creators have that available.

    • Like 2
  8. The tradeoffs necessary to make game physics fast and general make it not very good. Havok's physics engine is mostly used for blowing stuff up, so it's not set for high precision. Spheres bouncing ought to work, though; that's a simple case. Don't expect the pool break to work.

    I used to work on physics engines. Momentum transfer through friction can be simulated properly, but not in real time with a Havok-type impulse-constraint engine.

  9. 11 hours ago, Callum Meriman said:

    It's genuine.

    The reallife name attached to TESS Animats exactly matches the reallife name attached to Gitlab that Animats is using for his sim crossing work. I also believe there is a FS Jira associated to Animats around that sim crossing work that has the same reallife name.

    Exposing real names can be common in the open source community, as public recognition of decent contributions can bolster one's reputation and employment chances. SL being a fly-in-the-ointment to this openness due to the sheer number of crazy cat people who have a thing against evil  developers.

    So, unless it's an elaborate setup over a period of months, which is whole bunch of paranoia ... the details check out.

    Yes, that's me. I'm behind "animats" on SL, "animats" as a registered trademark, "animats" for my real world business activities, "animats" on Firestorm JIRA, and "animats.com" on the Web. I'm on Github (not Gitlab) under my real name, and I put SL-related code there as open source and link to it from various SL-related places. So I'm not anonymous.

    Right now I'm interested in the technical, social, and business problems of big virtual worlds. SL is the biggest game in town, so I'm here.

    As for getting a registered trademark, it's probably not cost-effective for small-scale activities on SL. But it's not difficult to do. It's useful if you have a good domain name, because it protects you from domain name challenges. I have some other trademarks for that reason.

     

    • Like 2
  10. Nice.

    Have you tried bouncing the balls against the cushions? How's that working out?

    I just modeled a simple pool table, and while the balls roll and bounce off the cushions, they don't bounce very realistically. That's about what I'd expect from Havok's physics engine. You can have fast physics or accurate physics, but seldom both, without special casing.

    pooltable.png.a7906e309267483d374c83ae5518644f.png

    After all, SL doesn't even do foot/ground contacts. Avatars are modeled as capsules for physics purposes.

     

  11. 1 hour ago, ChinRey said:

    Second Life is currently in the hands of a very competent repair crew. I find it hard to imagine that any of those three is going to become the virtual reality of the future but if one of them is, Second Life is by far the one with the best chance.

    Thanks. It's good to know that someone thinks the maintenance team is competent. That inspires me to keep plugging on fixing region crossings, and getting LL to fix their side.

    SL needs automatic management of scene complexity more than Sansar does. Sansar has high-paid artists making ad content to promote movies. SL doesn't. SL needs to not choke on unoptimized content. There's been tons of progress on this in recent years. It's not necessary to re-invent the wheel, just use available technology.

  12. Consiton is a nice build.

    What's becoming clear here is that SL is way behind in automated level of detail handling. That's needed to reduce the level of user work required. It takes too much effort to do it right. It's hard to find even furniture in SL with decent LOD models. SL looks great if you do it right. But doing it right is hard is time-consuming. And the tools for doing it in Blender suck.

    SL foliage is way behind modern standards. Today, everybody uses Speedtree or something like it. That does automatic level of detail and fractal plant generation (every one is different) out of the box.  So your outdoor scenes look good with no effort. Here's another tool used with Unity to generate good foliage. Sinespace uses that, I think. A good natural-world generator makes empty land look good. It also encourages people to make better builds. LL ought to get some good foliage system into SL and use it to cover their abandoned land.

    Here's a discussion of Sansar vs High Fidelity. He stresses the importance of both making it look really good and making it profitable for artists.

    It's easier to modernize the technology than to acquire the user base.

  13. All that beautiful detail, held back by the technology.

    This is mostly a level of detail problem. You're not seeing an excessive number of triangles at any one time. It's the total scene size that's jamming up the viewer. SL needs server-side generated impostors to keep it from choking on scenes like this.

    High Fidelity has server-side mesh and texture compression. They're doing LOD model generation server side. That's the right answer for user-provided content. Not only will users get it wrong, "wrong" varies with the user's hardware and network bandwidth.

     

     

  14. 8 hours ago, ChinRey said:

    That' more than could be said about my avatar when I tried to visit. The lag in that sim is epic!

    Hardware upgrade time.

  15. On a vaguely relevant note, I'm looking for a chair. Requirements:

    • Usable as cafe chair for outdoor cafe.
    • LOD model that looks like a chair from a distance.
    • Full perms. I'm going to put some scripts in and make more of them.
    • 1-2 prim land impact.
    • Physics model that works with chair set to "physical" - sits stably on ground, if it falls over, it doesn't go through the floor. I put a script in chairs so that you can move them around or even knock them over, as well as sit on them. When nobody is around, they all go back to their home positions.
    • Up to L$250 or so.

    I've been using the classic free Linden plastic chair, which meets all the criteria except land impact. The Linden chair is 15 LI, and that adds  up fast for a cafe. I've bought about a half dozen cheap chairs that look good on Marketplace, but they all have problems. There's no way to try the physics model before you buy.

  16. goodneon1.thumb.png.649507cb78ba8490ab3c6b9e66affbd4.png

    There are glowing lines as neon signs, and then there's this. It holds up on close examination. You can get right up to the sign and see the tubes and standoffs. The pigeon is animated, too.

    This is near Tralala's Diner, at secondlife://PINE%20LAKE/108/85/28

  17. Level of detail fail of the week.

    lodfail0.png.ce6d742c8f2d64d9bf436994f04471b0.png

    Elaborate vault door to hide what's inside.

    lodfail1.png.5694634afa54fb709b00bfa33078e812.png

    Back off a little, and you can see into the vault.

     

    lodfail2.png.0ef156853e517a4900d44e065e4a95d8.png

    Back off a bit more and the whole vault door and frame disappear.

    This is why blindly using "Decimate Triangle" in Blender to create lower level of detail models with very small numbers of triangles is a big mistake.

    (This vault is for sale on Marketplace for L$3,990.)

    • Like 1
    • Haha 6
  18. A joystick isn't that useful, because scripts can't read the joystick values. You can't fly an airplane or drive a car any better with a joystick than you can with the arrow keys. Joystick motion is just turned into arrow key pushes, so you still have poor control. I have a joystick hooked up and configured in SL, but seldom touch it.

×
×
  • Create New...