Deja Vu Sim Crossing

deja vu sim crossing

Instant Replay

Here’s an interesting issue. When a boat sails into a new sim, it will often suddenly jump back twenty meters or so and then resail that distance.

To illustrate this point, here’s a small outtake from a video of the S4L 12M Qualifying Races.

deja vu2

click to enlarge

I’ve also posted a few frame captures below. In the first image (A), TEAM WYC2 approaches the Finish on a Run, with EUREKA slightly astern. Image B was captured slightly later, when WYC2‘s bow touched the line. You might think the race was over at that moment, but you’d be wrong. As shown in Image C, WYC2‘s boat suddenly jumped backwards a considerable distance; you can even see the boat’s wake in front of the bow. Image D shows the boat retracing it’s path, cutting the line a second time.

If you play the above video again, you’ll notice that Eureka also shows the same, strange behavior. As it nears the line, the boat sudddenly jumps back roughly 20m.

This is a significant effect that could easily disrupt a close race. Did WYC2 actually finish in Image B, or did it finish several seconds later in Image D? So… what’s going on here?

Funny Numbers

I’m pretty sure the problem above has nothing to do with the race line in Breadnut; I think it happens because the boats cross a sim boundary just before they finish.

Sailing across a sim boundary optimally involves a seamless hand-off of data from one simulator to the next, and that process requires efficient communication between server and client. This sounds straightforward but in practice it’s often imperfect, particularly when several vehicles are trying to cross the same border together. I sailed my first SL boat race back in 2006, and on that day every single boat crashed on the sim edge. 🙂 Although many things have improved in SL since then, sim crossings sadly remain a near death-defying challenge for many virtual skippers.

I’ve been sailing the Trudeau 12 Meter quite a bit recently, and it turns out to have very funny behavior at sim borders. Let me show you.

In the figure below, I’m sailing a boat on a beam reach in 15 kn wind. I sailed West in Linkous while taking a snapshot of the display every second. As the boat moves west within the sim, the X- position coordinate on the interface correspondingly decreases.

Linkous numbers

click to enlarge

In the first image above, the boat is at Linkous (+19).  A few seconds later it should enter Van Daemo sim, but instead the interface reads Linkous (-2) and next reading is Linkous (-8). I assume these negative numbers mean the boat is already moving into the next sim, but the asset “handover” is not yet complete. Proof of this comes one second later, when the interface reads Van Daemo (+241), implying the boat is already 15 m into the sim.

This all makes a certain amount of sense, and is hardly worth talking about; however, what happens next totally confuses me. (Okay okay, I admit that’s not hard to do)

Anyway, as my boat sails further west In Van Daemo, the horizontal position coordinates should continue to decline. The first two frames shown below demonstrate exactly that, with X-positions of  (+235) then (+230). However, the third frame below is one second later, and it registers (+251)! In other words, the boat suddenly jumped back a full 21 m !! The boat continues from that point on it’s original heading and with most of the previous momentum. At average rates of speed, I’d guess that will cost a racer roughly 4 to 8 seconds overall every time it happens.

This is the same problem shown in the video at the top of this page.

Linkous numbers 2

click to enlarge

This sudden “jump back” effect is consistent across many grid locations, and I don’t think it is unique to any specific group of sim server candidates. So far I’ve only looked for it in 12 m boats, but I think the problem is likely far more widespread and server-related.

Having said that, let me also add a few more observations:

  1. The effect is present in Trudeau 12 m traveling under engine only.
  2. I don’t see the effect when walking across a sim border.
  3. I don’t see the effect when driving a small outboard across a sim boundary.
  4. I don’t see the effect when sailing Wildwind OP60.
  5. I do think I’ve seen the effect in some Qwest boats, but I haven’t looked carefully yet.

Chaos Mandelbrot (LCC Admiral and SL-Pundit-In-Residence) tells me this issue of ‘bounce back’ after sim crossing is already widely known and it’s been prevalent across the grid for several months. Nonetheless, I can’t find any good discussion of the problem, and I’d love to hear from someone who can explain what’s going on here. 🙂

DilSpi 2

16 responses to “Deja Vu Sim Crossing

  1. Beatrix (MBeatrix Resident)

    First of all, good job on this analysis. 🙂

    Yes, it has been happening for many months. Not sure why, but here are some ideas and/or situations I have noticed so far:
    it seems to happen a lot more with mesh boats – due to their higher land impact, maybe?
    it also seems to happen more with heavily scripted ones, even if they aren’t mesh, which is understandable, I think;
    as I’m sure you know way better than I do, different regions have different performance at a given time (depending on how many regions are running on the same hardware and other more obscure factors) not to mention the number of objects/avatars moving through regions where races are held;
    depends on the boat’s speed (higher speeds means the region server has more trouble calculating everyone’s position);
    and on the grid’s load – more people in-world seems make everything slower, and I see it happening much, much more on peak times.

    Anyway, it all seems better these days. I haven’t crashed for about two months now, except last Sunday during the LCC cruise when I hit a sims’ corner at a bottleneck created by some inconsiderate people (some of those running a private sailing club – go figure.)

  2. Here’s another demonstration of the ‘jumpback’ issue. The chart below plots boat x-position as a function of time. The boat is sailing due west on a beam reach with 15kn wind.There should be a monotonic increase in distance over time, and with steady boat speed the relationship should be linear.
    However, you can see there are three ‘reverse dips’ in the curve (green arrows) , where the boat bounces back roughly 20m before resuming course. These ‘reverse dips’ each follow a sim crossing.

  3. Try to sail the shields and see if the same issues does happen, cause with me i dont experience any of these with it.

  4. Same problem happens with Bandit IF, though the size of the jump-back is only around 10m

    • Beatrix (MBeatrix Resident)

      What is its land impact when it becomes physical? (the Shields is only 28 LI when physical)
      I do believe that must have some effect on the sims’ physics response, thus causing the issue… but I’m just speculating, of course. Same applies to the scripts load.

  5. I remember this happening years ago and got used to vehicles losing some ground during a crossing. I still see that happening recently, but it seems to me that in general crossings are now smoother, very rarely resulting in “eternal” crossings, you know that situation where one can only close the viewer and relog. On average i get up to 3 seconds delays, resulting on a loss of say 5-15 meters depending on boat speed.
    In the case of those 12m arriving at the raceline, i remember some laggy conditions probably due to nearby spectators adding to usual factors like scripts running for boats, crew, huds, shadowing, and likely contributing to slow handoffs. Btw, while racing in the first time slot we had that effect too, thankfully it was never too bad.
    My guess is that LL made things better but there is no final fix for this yet.

    • Thanks Bunnie!!
      I thought it made sense a boat that crossed a boundary might get hung up for a couple seconds while it’s data transferred to the next sim, but here’s what got me agitated:
      A few seconds after sim entry without warning the boat would suddenly jump-back as much as twenty meters.
      That made little sense as ‘data transfer delay.’

      However, I think I’m wrong – it does make sense, and I think I’ve got an explanation.

      The realistic physics of SL depend on efficient Server and Client communication. Most new video cards have powerful graphics engines with object physics built in. We’ve all seen it– if you suddenly unplug your internet connection, your boat keeps sailing. Often it floats, flies or submarines for minutes, usually at the original speed and direction. The Client keeps going while waiting for a Server correction.

      We also know that the server modulates time relations, to keep everything coordinated. There may be a lag-hangup if five boats try to cross a boundary together, but soon after sim entry, they will all be in-sync.

      Here is my guess about what happens in the video I show above:
      1. When several boats converge on a sim boundary during a race, there’s a strain on sim servers that do asset handoff.
      2. There’s a holdup, possibly a several second delay as the asset transfer occurs.
      3. The client box takes the last info and keeps the boat on course in the new sim. It looks good on the screen, but its independent of the server.
      4. Once the asset transfer is good, the new sim server updates the client box with adjusted info about boat position, momentum, etc.
      5. It’s likely the server physics ‘update’ factors in the time delay for the sim crossing. It tells the client to move the boat back a few seconds (20m 🙂 ).

      In other words, there’s no real ‘boat jump-back.’ It’s the server adjustment of what you see on your display. That explains why no boats ever trigger the Finish Line twice. 🙂

      (Does this make sense?)

  6. Makes sense to me 🙂
    The new sim considers the boat motion continuing from the edge where it is expected to enter, without compensating for the distance ideally covered in the handoff timeframe. It’s like a time hole, not too different from those we get in RL 😛

  7. Woah, that reminds me of 2007 indeed. Only back then I and everybody else was pushing the blame on a) my bad sailing, b) my bad computer, c) my bad connection. I remember Armchair Binder first invited me to “crew” for him in a Tako race, only to ask me some minutes later to please leave his boat since I was slowing it down.

    It’s good we found another culprit now. 🙂

  8. Haha! I miss Armchair!

  9. Quick update: check the map and zoom on Breadnut, you’ll notice there is a sim corner right in the path of the boats approaching arrival. If boats cross very close to the corner, they face two crossings in a short time… i think that was the case with WYC’s 12m in Jane’s video.

    • Yes, I agree!
      Although the ‘bounce-back’ effect probably occurs at most sim-crossings, I think it’s particularly noticeable when boats finish at the Breadnut raceline. That’s because the line is located in the SW sim quadrant where it’s proximate to two sim borders. The raceline is also tilted at a 45 deg angle; that affects when and where the bounce occurs in finishing boats.

      Bottom Line (I think): When a boat crosses into a new sim, the initial boat location is often erroneous; it’s an inaccurate guess. It can’t be used to determine boat position. However, a few seconds later the simulator makes a correction and the boat ‘bounces-back.’ That bounce-back position is the ‘true and reliable’ boat location, at least with respect to the race fleet and the Almighty Physics Engine. 🙂

  10. its actually quite easily explained, this effect is called “rubber banding” and its literally as old as the first Second Life vehicle.

    What causing it are two things, script load and root inventory size, when moving from one sim to the next, you are literally moving from server to server, one server hands you over, the other server has to load you and your vehicle upon arrival. Scripts take time to load, the more scripts, the more time it takes (and this doesn’t go simultaneously, the server creates a queue, and loads them in order), the other culprit is the size of the inventory (where all the animations, scripts etc are stored in your vehicle) anyone who ever edited an object with a big inventory has a pretty good idea about SL’s (bad) handling of big inventories, and SL has to load your inventory before it can start loading the scripts.

    The effects get more obvious with speed, walking goes slow, so doing that goes pretty seamless, and sailboats are in luck, because they are also relatively slow. If you have a script heavy fast vehicle, like an airplane, you can be halfway across the sim before you bounce back to the border.

    To not have it affect a photo finish, dont place the startline within meters of a sim crossing (although technically the line wont register the “ghost” crossing, since the boat isnt actually on the new sim yet)

  11. thanks for your blog… even if I found out only recently 😉
    my experience is similar… and happens all the time: lag time for all assets to hand over to the next sim server. It varies from nearly 0, whichever the boat, to more than 10 seconds in extreme cases (I recently did a video showing extreme jumps) What happen is that the simulator projects an expected path into the next sim, until the crossover is complete… The latest version of the viewers (Firestorm included) added an option to stop you on the sim border until the next sim takes over: no more jump back, but an actual real-time wait at the border. Open to discuss inworld.. Viv (vivipezz resident)

Leave a reply to bunnie Cancel reply