Rounding detection
First of all, a short explanation on how DTF (Distance To Finish) and mark roundings are handled in SOL. Each mark causes a turn in the route, i.e. if we approach the mark from west and the next mark is north, the turn is 90 degrees. SOL considers the mark rounded when the boat crosses the line representing half of the turn needed. So assuming we come to mark in 90 degrees and turn to 0 degrees, the mark is rounded when the boat crosses the line SE (135 degrees) from the mark.
Now, the SOL sailing engine sails the boats in "hops", i.e. it moves the boats every X seconds to the direction they are pointing and the amount of the movement depends on the wind on the boat's location, the boat polar and how many seconds there has been since the last movement of the boat. Usually on normal server load the hops are about 15 seconds.
After each hop, the engine checks if a mark rounding happened, that is did you happen to to cross the half-angle of the next mark rounding. Unfortunately this calculation doesn't understand crossing the IDL so when you cross, it thinks that you traveled all the way around the world on that hop.
If you cross the IDL more south than Cape Horn (S 55.98) the server actually thinks that you have rounded the mark. This is because the server thinks your hop went all the way around the world other way (below Australia and Africa etc.) crosses the line which server considers the limit for mark rounding, so it marks the boat as rounded. If you cross north of Cape Horn, your hop (or what the server think it is) goes north of Cape Horn as well and thus no rounding is marked.
For boats that have not rounded Cape Horn the DTF is calculated so, that the GC (Great Circle) distance to the mark rounding is added to the distance from that rounding to the next mark (in the case of Global Challenge Leg 3 the finish).
But if the server thinks that the boat has already rounded Cape Horn, it will calculate DTF simply as the GC distance to the next mark. This is why some boats have suddenly gained 600 miles when they have crossed the IDL.
Now, the SOL sailing engine sails the boats in "hops", i.e. it moves the boats every X seconds to the direction they are pointing and the amount of the movement depends on the wind on the boat's location, the boat polar and how many seconds there has been since the last movement of the boat. Usually on normal server load the hops are about 15 seconds.
After each hop, the engine checks if a mark rounding happened, that is did you happen to to cross the half-angle of the next mark rounding. Unfortunately this calculation doesn't understand crossing the IDL so when you cross, it thinks that you traveled all the way around the world on that hop.
If you cross the IDL more south than Cape Horn (S 55.98) the server actually thinks that you have rounded the mark. This is because the server thinks your hop went all the way around the world other way (below Australia and Africa etc.) crosses the line which server considers the limit for mark rounding, so it marks the boat as rounded. If you cross north of Cape Horn, your hop (or what the server think it is) goes north of Cape Horn as well and thus no rounding is marked.
How this affects the DTF
For boats that have not rounded Cape Horn the DTF is calculated so, that the GC (Great Circle) distance to the mark rounding is added to the distance from that rounding to the next mark (in the case of Global Challenge Leg 3 the finish).
But if the server thinks that the boat has already rounded Cape Horn, it will calculate DTF simply as the GC distance to the next mark. This is why some boats have suddenly gained 600 miles when they have crossed the IDL.
Fixing the problem
For the current race, the fix is that the boats with incorrect roundings are corrected in the server to not have rounded Cape Horn yet. No boat has gained any advantage by this problem because it's just the DTF calculation which has been wrong.
The admins probably could have been faster reacting to this problem but it occurred first time 24 hours ago and I spent yesterday getting into the root of it by re-running manually the server code calculating the DTF and mark rounding before I fully understood what it was about.
From previous races run in this area the admins knew that there has been something wrong with the IDL and we tested this race beforehand by sailing over the IDL in practice mode when the race was not yet public. Unfortunately we didn't understand that the problem happened only when the crossing happens more south than Cape Horn and didn't detect the problem then.
In the long run of course the server mark rounding code in the server has to be fixed to prevent this situation happening in the future races.
DTF calculation near the polar area
Year ago when we run in this same area in the SWR Leg 5 the same problem happened but that time the boats with incorrect roundings had their DTF actually increasing by 2700 miles. This is because SOL tries to anticipate where the boats rounding will happen by calculating the shortest distance the boat has to sail to round the next mark.
In the polar area if the boat is nearer the pole than the next mark the shortest distance to the rounding is actually at the pole. The problem with this is that the distance from the pole to the next mark is then much longer so in these situations the DTF's may feel weird. When the boats get nearer the next mark this problem will correct itself.
1 comment:
Thank you for a clear explanation of a problem almost as complex to most of us as the Higgs Boson!
Although I never did understand just why folks were "getting their knickers in a knot" over something that did not matter, did not affect any aspect of the finishing order, and did not interfere in any way with their current sailing. But THANK YOU!!!
Post a Comment