Jump to content


  • Content Count

  • Joined

  • Last visited

Posts posted by animats

  1. Spatial OS technical discussion. It's a general purpose back end for large world persistent multiplayer games. Games that use it are just starting to come out. So far, not from the big game studios. The games using it have big worlds, but not much in them. 

    It's not clear yet how well this will work in practice. As with SL, the world is divided into regions. Unlike SL, the region boundaries move, so that areas with more avatars get smaller regions and more compute power per unit area. There's supposed to be inter-region physics without region crossing lag. That's the kind of system SL needs. Maybe not this one, but as MMO developers use this, we're going to find out a lot more about how to build machinery for big virtual worlds.

    There's a good critique by a game developer who uses Spatial OS. There are problems. Some come from it being early stage software, and some lag-related ones are inherent in a client/server VR system. One game studio has already dumped Spatial OS because you have to run on Google's "cloud", and it costs too much.

    Game developers are struggling with what to do with all that space. There's a battle royale game, like Fortnite, with 100 square km of play area and 1000 players. So everybody is running around trying to find someone to shoot. There's a big pirate airship world, where users can build airships and islands. A big, tranquil good looking, world called Nostos is in development. One of the strangest ideas is Community Garden. It's a big virtual city in which you can put on VR goggles, plant seeds and water the plants, but not do much else. As in SL, they continue to grow while you're away. It's really just a proof of concept for a persistent world. The Sinespace people are looking at using SpatialOS to scale up their system. What's come out of the Sinespace/Sansar/High Fidelity projects is that, without continents, you're just a game loader, and Steam has the game loader industry sewn up.

    There's a lot of activity. Much of this will come out of alpha and beta in 2019.

  2. You're looking for what Second Life calls a "combat system". (That Wiki page is outdated, by the way.)There are at least four of these in SL, all user-created and all incompatible. Plus there's one built into SL, which isn't used much. Combat role-playing areas pick one and require that all players there use it. Players wear a "damage meter", and  carry various weapons which communicate with the damage meter. Both ranged and melee weapons are available. The damage meter can freeze an avatar in place after some hits. That's what you want, right?

    Visit some of the combat sims and try out combat in SL.

  3. 2 hours ago, SarahBeths said:

    I thought 'patented' meant 'following some detailed process to give a special result' when I looked for the definition, but it must mean more than that, right?

    You may be able to use a DMCA notice to get content taken down. Useful reading for artists on DMCA notices. Linden Labs accepts those by paper mail or fax only. (There are email to fax services available.) If someone copied a sizable block of your text or your image exactly, that's usually copyright infringement. Stuff that's merely similar may or may not be copyright infringement. That's when you need a lawyer. Copyrights are created simply by creating and publishing something. You can file a copyright registration with the Library of Congress for US$35-$55, and that's required before you go to court, but not before filing a DMCA notice.

    Patents require a formal filing with a national patent office, thousands of dollars in fees, and expensive lawyers. I have several issued utility patents; I've done inventing as a business. You (mostly) can't get business patents any more, anyway. (Long story.) Trademarks also require a formal filing with a national trademark office, a fee of about $400 in the US, and proof you do some business, however small, under that name. If you had a patent or trademark, you would know. They're public records, by the way; you can look them up at USPTO.gov.

    • Like 1
  4. escalatorproofofconcept01_001.jpg.aed1971f7a68240b85c6acd562ad51c8.jpg

    Escalator initial proof of concept Set up behind my R&D shop in Vallone. I'll leave it up for a while so people can play with it.

    This concept can be extended to escalators. This works just like you'd expect; the moving ramp, working just like the moving sidewalk, carries you up, and deposits you on the wheel, which deposits you on the upper platform.

    This is harder to do than the moving sidewalk.  The big wheel is inconvenient, but a large-radius transition section is needed to make this work. Might be possible to have just part of a circle, but keyframed animation of rotation turns out to be flaky during lag and the arc section gets out of position. Needs more work before it's a usable concept.

    There are many escalators on Marketplace, some of which are claimed to carry passengers. There are ones that use pushing. Ones that use sit animations. Ones that teleport. One that rezzes steps as temporary prims. One that uses poseballs. I haven't yet found a passenger-carrying one where the store still exists in Second Life and I can try it. Anyone know of a good one? Chin Rey sent me a video of a failed attempt from 2011.

    Amusingly, you can walk down the up escalator.

  5. The bigger picture is this. Until a few years ago, Second Life had its technology niche mostly to itself. The Massively Multiplayer Online industry did some specialized big world games, but the mainstream game tools didn't really support persistent big worlds where players could build.

    In the last few years, that's changed. There are MMOs with worlds bigger than SL. There are MMOs with user building. There are MMOs with economies. So the tool industry has had to support big persistent worlds. Now there's SpatialOS, and Umbra, and Simplygon, and InstaLOD, and they're integrated with Unreal Engine and Unity.

    With all these off the shelf tools, small teams can build a big shared virtual world. One guy did it by himself. He created "Community Garden" which is on Steam. It's a big virtual city, where you can walk around and tend the gardens.  This was mostly a tech demo. Then he came out with "Sominum Space", which has scripting, building, commerce, and VR. The number of users is small, but bigger than Sansar. I haven't tried this, but might. I suspect this guy wants to be acquired by a bigger player.

    The barriers to entry are much lower than they used to be. Competition is coming. LL needs to get ready. They're not going to be the only game in town much longer.

  6. That scene has less than a thousand draw calls, and several million "prims". That reflects a big static environment.

    SL needs draw call ratios like that. The big bottleneck in SL viewers is computing transform matrices and sending them to the GPU with a draw call. In SL, every object has its own transform, because it can  potentially be moved. The viewer has no idea which objects are going to receive object updates telling them to move. So each individual object has its vertices stored in its local coordinate system, and the CPU sends a transform matrix with a draw call to transform them to world coordinates and draw the individual object.

    If you use Blender, you know that you can apply all the transformations (rotation, translation, scaling) to all the vertices in a group of objects. This bakes all the transformations; you can't move child objects separately any more. Game engines do that for background objects. Everything that's been baked like that can be drawn with one draw call. With vertices and textures already loaded into the GPU, the CPU just says "draw all that" and the GPU does the rest.

    Potentially, an SL viewer could cache, on the assumption that most objects don't move. (Does it do this already?)  Combine big groups of non-moving objects, bake the vertex locations, and draw with one draw call. If any of those objects move, you have to discard the combined group and rebuild it without the moving objects, which means extra overhead. So there's a tradeoff, and if done badly, it makes things worse. All it takes is an occasional random leaf falling from a tree.

    • Thanks 1
  7. 2 hours ago, ChinRey said:

    I'm sure animats uses a collision() event

    Yes. When idle, there's just a texture animation running. Those are very cheap. A viewer coming into visual range gets a message once, telling it to run the animation. The more active mode that can move an avatar switches on when the belt detects a collision. After 10 seconds of no collisions, the belt reverts to the texture animation. If you watch carefully, and there's some lag, you might see the transitions.  This is a useful technique for intermittently used moving objects.

    The constantly moving belt makes it clear it's a moving sidewalk. An earlier version shut down when idle, but then it wasn't obvious it was a moving sidewalk.

    Source code here. GPL license, as usual; you can use it, but have to release the source code for anything you use it in. (In SL terms, full perms.)

    It was amazing to me how well this worked and how easy it was. It was nice to do something novel in SL without running into some bug reported a decade ago and not fixed.

    • Thanks 3
  8. Just for fun, I made a moving sidewalk. I needed a good quickie project.movingsidewalk01.thumb.jpg.d9a9beda85ddbf2b019d8e806f153c8d.jpg

    Visit the Oiling Festival in New Babbage.

    You step on, and move smoothly along the belt. Get on or off anywhere. Just stand and ride, or walk faster along the belt if you like and pass other people. Just like real life.

    It's not an animation or an experience. it's done with SL physics, animation, and some graphical illusions. The belt, which is just one long rectangular object, moves smoothly forward with keyframe animation, and then it jumps back. The belt motion moves the avatar forward by friction. The avatar is unaffected by the instantaneous jump back and continues to move forward smoothly. The jump is concealed by matching the texture repeat distance and the keyframe motion distance. The illusion holds up surprisingly well.

    Overhead is low. The scripting is doing very little. The sim side keyframe animation system is doing all the work. When no one is using the sidewalk, it switches to ordinary viewer-side texture animation and the sim side load drops to zero. Contact with the belt invisibly switches it back to active motion. The belt always looks like it's running.

    I haven't seen this before in SL, but it's so easy that someone must have done this before.

    Since you can get on and off anywhere, it could be used for shopping events, to move people past the stores and stalls. Or for exhibits where there's a suggested route. It's a nice way to encourage people to go in the same direction.  Or a futuristic town with moving sidewalks everywhere.

    (The first, and best ever, moving sidewalk was at the Exposition Universelle, 1900, in Paris. The Eiffel Tower is a leftover from that fair. So moving sidewalks are quite steampunk.)

    • Like 2
    • Thanks 1
  9. 2 hours ago, Macrocosm Draegonne said:

    How has Sansar solved this?  I recently realized we do not have to upload LOD there, so its automatic, and absolutely imperceptible in game too everything looks perfect no matter how far away.

    They just load everything, have huge downloads, and require that you have enough graphics card memory for it. NWN has a writeup.

    • Thanks 1
  10. 11 hours ago, ChinRey said:

    I'm not familiar with the principles of quartic mesh reduction but yes, I have noticed that MeshLab tends to do a much better simplification job than Blender can do automatically and Blender does a far better job than the uploader.

    Even so, if you look at the 200 tris model, it's clearly not good enough for medium LoD and it's too high poly for low.

    Yes, 200 tris was not a great choice. I just wanted to see how far I could go and still have it look OK.

    For an overview of approaches to mesh reduction, see this slide set from Stanford. Especially slide 19. Quartic mesh reduction tries to minimize the volume between the original and reduced mesh, which is a reasonably good goal. Blender's tools are limited dissolve and decimation. Limited dissolve tries to flatten shallow angles, so it does badly on rough areas with sharp edges like lettering or engraved detail. Decimation just attacks the smallest triangles, so it randomly removes detail. Those are both very local operations.

    The real problem with using Meshlab is workflow. Meshlab is a standalone program which can read and write several 3D formats, but .blend is not one of them. So you have to export from blender as .dae or .obj, import into Meshlab, work on the mesh, re-export, and import back into Blender. Now you've lost all the Blender-specific info like nodes, and probably introduced other problems. For example, Blender to .dae to Meshlab to .dae to Blender swaps axes somewhere and the object comes out rotated. So  you can only use Meshlab either before starting work in Blender, or when all done with Blender, just before upload to SL.

    Meshlab is really a basic 3D GUI which calls "filters", the little programs that do all the work. The filter interface is well documented. It might be possible to build an add-on for Blender which can call Meshlab filters, allowing Meshlab mesh tools to be used from within Blender. I've posted on that in a Blender group to see if there's any interest. Someone tried something like that in 2012.

  11. 7 minutes ago, Skell Dagger said:

    Scenario 2: a teleport that's landed you, flailing, halfway inside a store wall. No way out, except teleporting somewhere else and finagling the teleport point on the map view to land you outside instead before you go back... until you spot a chair by the wall. Right-click-sit and you're out of the wall, can get up, and carry on shopping.


  12. 6 minutes ago, Skell Dagger said:

    Fully-enclosed skybox that one has just rezzed out. No doorway in, so one either has to cam inside and sit on furniture (assuming it's furnished) or sit on a prim and edit oneself inside. That's one reason I can think of.

    To use a skybox, you'll have to set up a landmark so you can teleport in. That's part of setup, not ordinary use. Not something that's done often.

  13. chairtest20b_003.thumb.jpg.f4af443078a778403901db7f40744395.jpg

    Mesh reduction test.  From right to left: 35,000 triangles original, 2500 triangles, 200 triangles, 34 triangle impostor, 34 triangle impostor base model.

    Here's what's going on. On the right, we have a high-poly model downloaded from a 3D site, with about 35,000 triangles. That's far too many for a chair in SL.

    So I ran Meshlab 2016.12 on it and applied quartic mesh reduction to bring it down to 2500 triangles. I've written before about quartic mesh reduction being much better than any of the options in Blender or in the SL uploader. So here it is.This was entirely automatic - just set the number of triangles desired. This could be your highest level of detail.

    Next we push quartic mesh reduction harder and take this down to 200 triangles. The casters disappear and the cushions are a bit squared off, but nothing bad has happened. This is an adequate medium level of detail.

    Now we go to impostors. The black chair, 34 triangles, is from my impostor generator. The colors come from textures in Blender, which were not brought through for the other models, so the colors don't match. If you want this to work, all coloring and texturing must be done in Blender. The brown color was added in SL.   Look at the chair legs. That's an alpha texture, not geometry. This is the low and lowest level of detail.

    At left is the hand-created impostor model. The black chair is that model with textures baked on it.

    All this testing is for untextured meshes. Next, work on textured ones.

    This gives a sense of what modern mesh reduction algorithms can do. This isn't even the best technology available. This is all free software. There are expensive commercial solutions which claim to be better. The point here is to show that automatic level of detail model generation is quite feasible. Everything can look good at any distance without choking SL.

    Others must have been down this road. Comments?


    • Meshlab versions before 2016.12 crash if pushed hard on quartic mesh reduction. So far, Meshlab 2016.12 hasn't crashed on this operation. More testing to follow.
    • Meshlab takes Collada format (.dae) in and puts Collada out; it won't work directly on Blend files.
    • Workflow for this needs to be worked out.


  14. Suggestions:

    • Take Lindal Kidd's class. Second Life has ways to deal with such annoyances, from sitting down (which makes you immovable) to complaining to Governance (which is for bigger problems than this). Pushing experienced users gets those jerks nowhere, so they have to go to a new user entry point to find prey.
    • When posting on forums, a title more informative than "Hi everyone, I'm new here and have a question" helps.
    • Second Life gets a lot better once you get away from the landing points. There's a big world out there. Start exploring and have fun!
    • Like 6
  • Create New...