Allow all vehicles to move in open land and cross regions without having to load
Lieren Kiyori
Second Life is massive, and with the way trains, planes and boats all get stuck when crossing regions, we live in 2024 and if FFXIV can allow travel across multiple continents with its higher fidelity on mount, so should Second Life.
Log In
Sugar Cookie
The only true solution to the problem (though there are smaller improvements that could be made) is to change how avatars are simulated. This would be such a major shift to how Second Life functions behind the scenes, I don't think it will ever happen.
The idea would be to have the avatars (primarily their scripts) running on separate instanced servers and not on the physical machines running the regions. Then it's is only the physics that need to be handed off between regions, making transitions much simpler.
There would still be other aspects to work out, such as local chat and how object-based scripts in a region interact with avatars and avatar-based scripts. And these separations may result in even more problems than the region crossings cause.
All that said, smaller things like preventing an avatar or vehicle from crossing out of a region until they are fully loaded into a region would help when passing through region corners. Also having vehicles bounce off of ban lines (or slide along them) instead of locking up the vehicle completely after brushing up against one.
I've always wondered why there wasn't an option to have 2x2 sized single regions, or larger. It would be the same as a regular region -- same LI and avatar limits, etc -- but spread over a larger area. Space is just a set of coordinates in the virtual world, so a larger region shouldn't cause any additional strain on the server. Such regions would be perfect for many use cases.
Beatrice Voxel
The trick has always been managing the object transition from one server instance to another.
One possible way to do it is to spawn 'copies' of all physical/vehicular objects in the memory of adjacent sim instances, as 'off sim' objects with the same orientation and movement vectors as the original, just different X or Y coordinates. That way, when a sim crossing occurs, there's no latency or odd pathing going on as the vehicle's data is transferred over - it's already there, and just needs to go from 'off sim' to rendered. I'm sure it'd be more complex than this, but I'm also sure it would help with smoothing the transfers.
Another possible method is to devote a server instance to manage a 'supersim' such as the Blake's Sea. Its job is to manage vehicles only over the range of several regions. Each client sends position and movement vectors of vehicles to the supersim when they're rezzed, such that there isn't any 'crossing' event at all - the vehicle remains in the supersim the whole time. When a vehicle crosses a sim boundary, the supersim simply tells the new sim there's a vehicle crossing in, here's the position and movement vectors, and continues managing all of the other stuff (textures, mesh shapes, scripts, what have you.) Since the supersim isn't having to deal with static rezzed objects, it can handle a wider area for just vehicles.