VMC vs. VMG in teleportation.
Post by iconPost by Oceans_United | 2009-06-10 | 04:31:41

Hi zezo
Should you run out of optimization- or other projects, I have a suggestion.
Since you automaticly gather a lot of boat data, perhaps you could pick ot a sample of boats and follow them on the last hour or so before finishing. Getting the data every 10 min. for each of the boats. That way it will perhaps be possible to figure out if VMC or VMG or some other method is used during the teleportation.
I think it will be nessecairy to pick boats comming from different angles and maybe also if possible different sail, but still entering at approx. the same time. The final ranking (especialy if it changes some relative placings) and the <temps_event> tag can the be used together with pre-entering data to deduce the method.
I was thinking of doing this myself with a simple Pythonscript, but I don't have the time to do it now.

commenticon 48 Comments
Post by iconPost by Vigilante | 2009-06-10 | 09:19:28
I'm totally lost on this question. As posed, it seems un-answerable.
Post by iconPost by zezo | 2009-06-10 | 13:23:01
I collect the following historical data every time someone refreshes a boat name:

lon, lat, rank, timestamp

and the last values for lon, lat, rank, stamp ,heading, wind_angle, wind_speed, boat_speed, sail
for the boat data panel. the data feed is frozen after you finish, so those apply to the moment of teleportation.

At least 15 of the leading 20 and half of the top 100 boats, were using the site during the last finish, so there were enough data points and I was going to do that analysis, but we know what happened.
Post by iconPost by Oceans_United | 2009-06-10 | 15:54:37
But what if two or more boats later changes their rankings. Will the data-feed also show new ranking?
In the very first leg to Cape Town, I had my ranking changed 45 min. after arrival. I was then ranked 5 spots better. So it does happen.
Btw. if it is true that the data-feed freezes upon arrival, it just might be the DTF that determins ones rank.
Post by iconPost by zezo | 2009-06-10 | 16:06:03
I don't remember exactly what happened with the feed as I was too frustrated with the finishing mess, it was 2:30 in the morning and my BAC was above safe driving limits.

There was enough data to estimate the criteria if the exact circle radius was known, but it's still unclear if it was 20NM, 30km or just set there too late..

Let's see what will go wrong this time ;)
Post by iconPost by Oceans_United | 2009-06-10 | 16:39:49
Something will go wrong for sure. Murphy's law just fits perfectly to the VORG.
Post by iconPost by zezo | 2009-06-10 | 20:28:08
deja vu again. Po7 is 28 miles from Marstrand and still not teleported.
Post by iconPost by zezo | 2009-06-10 | 20:34:59
... 26 ... (30 from other boat's POV)
Post by iconPost by zezo | 2009-06-10 | 20:44:13
Po7 finished. For the record:
TWA 51
Heading 128
Wind speed 12.4
Boat speed 10.9
Post by iconPost by Vigilante | 2009-06-10 | 18:38:18
I'm not following Zezo's prescription of less than 40deg beating. I checked VMG's and it seemed to be born out. I'm still inclined to stay 40 or more. I noticed one of Zezo's boats was sailing lower than 40, also.
Post by iconPost by zezo | 2009-06-10 | 18:50:23
TWA 39-41 gives the same VMG at 16kts - look here

but 39 should give you slightly better VMC as it's closer to the destination.
Post by iconPost by Oceans_United | 2009-06-10 | 21:49:22
I can confirm that the xml-feeds do change if there is a re-ranking after finishing.
I was pormoted two places up (luckily) and that was also reflected in the two manualy browser requested xml-feeds I made after finishing.

The first feed after finishing:
<user id_user="31495" date='2009-06-10 19:54:31'>

and from the next 10 min. block
<user id_user="31495" date='2009-06-10 20:08:21'>
Post by iconPost by zezo | 2009-06-10 | 22:03:35
So we have some data, what's left is analyzing it:

select stamp, lon, lat, rank from boat_pos where boat_id = 31495 order by stamp;
2009-06-10 19:20:01 | 10.6442 | 57.7775 | 82
2009-06-10 19:30:01 | 10.6896 | 57.7629 | 80
2009-06-10 19:40:01 | 10.7325 | 57.7408 | 79
2009-06-10 19:50:01 | 11.63 | 57.61 | 77
2009-06-10 20:00:01 | 11.63 | 57.61 | 75

select * from cur_pos where boat_id = 31495;
boat_id | lon | lat | rank | stamp | heading | wind_angle | wind_speed | boat_speed | sail
31495 | 11.63 | 57.61 | 75 | 2009-06-10 20:50:01 | 134 | 57 | 12.419 | 11.47 | 8
Post by iconPost by Oceans_United | 2009-06-10 | 22:54:40
The problem is we need data from another boat too. One of those that I overtook during teleportation.
From the data above we can only deduce what we already know. Because we have no 'calculated arrival' timestamp.
I get from simple spherical formulas (not haversine) a DTF of 29.865 nm and the last feed says 29.8981 nm. So probably a formula or rounding difference.

Just using boat speed of 11.47 knts, it will take 2.607 hours to reach the mark.
(this would be a ridiculous way to do it)

Bearing to mark at last pos. before entry is: 106.2
VMC projectionangle is then 134-106.2 = 27.8
Hence VMC is: 11.47 * cos 27.8 = 10.146,
and it will then take 2.947 hours to get to the mark.

If using VMG:
TWA is 57. So VMG = 11.47 * cos 57 = 6.247.
Using VMG i will reach the mark after 4.786 hours.
(This method doesn't make sense either)

Finaly the server could use only the DTF at last point before entry of finishing circle.

But still we can't be sure wich of the four methods is actualy used in the server, unless we can make theese calculations for some boats finishing close to each other.

Added: If VMC is used i can then in hindsight and at a little more relaxed pace see that i should have had the cap at 128 instead of 134. Wich ofcourse Po7 did. Silly me.
Post by iconPost by zezo | 2009-06-10 | 23:01:59
I'll try to find some time for that tomorrow. A bit busy now as I'm leaving on a trip to Sweden on Saturday.

And I'll dump the data and post it as csv file if there is no time to analyze it myself.
Post by iconPost by Oceans_United | 2009-06-10 | 23:10:36
Okay great, thanks. I hope you will get a fantastic trip to Stockholm and the Real Race.
Post by iconPost by zezo | 2009-06-11 | 19:05:13
Thanks. I start feeling the burnout after spending 16 hours/day online for 2 months, and there is no other cure for that than staying away from cities and computers for a while.

And no doubt it will be good as the plans so far include some real sailing (and with some luck watching the in-port race).
Post by iconPost by zezo | 2009-06-11 | 13:15:19
First the data. We have few pairs of leading boats that swapped places during the teleportation:

Scoubi 975 4 3 19:20:01 57.7108 10.7460 29.0617 2.729 2.973 2.817 3.069
Qporto 2 4 19:20:01 57.7230 10.7490 29.1249 2.638 2.932 2.717 3.020

HEDMANS TEAM 6 5 19:20:01 57.7249 10.7407 29.4103 2.664 2.959 2.717 3.018
RealRace 5 6 19:20:01 57.7237 10.7376 29.4909 2.485 3.071 2.528 3.124

Balou 8 7 19:20:01 57.7246 10.7372 29.5156 2.674 2.972 2.717 3.020
GizmoAnd 7 8 19:20:01 57.7315 10.7389 29.5595 2.722 2.959 2.762 3.003

Magenta I 13 9 19:20:01 57.7309 10.7309 29.8002 2.699 2.985 2.717 3.005
AMARALI 9 11 19:20:01 57.7320 10.7301 29.8409 2.928 3.064 2.943 3.080

att Bara Vara 22 17 19:30:01 57.7275 10.7683 28.5859 2.568 2.859 2.695 3.000
Black Rover 19 18 19:30:01 57.7171 10.7626 28.6203 2.461 2.947 2.580 3.089
New Frontier 18 19 19:30:01 57.7171 10.7626 28.6203 2.461 2.947 2.580 3.089
PWCS LROI 21 20 19:30:01 57.7174 10.7626 28.6243 2.428 2.977 2.545 3.120
Grilo 15 21 19:30:01 57.7232 10.7644 28.6465 2.616 2.878 2.740 3.014

Fields are last_rank, final_rank, time, lat, lon, DTF and 4 different times (explained later)
Post by iconPost by zezo | 2009-06-11 | 13:44:57
So one of the columns shall have smaller value for the first of each set of boats, right?

The only consistently increasing value I see in that data set is the DTF when entering the 30 Nm zone. And I could not find exception to that.

Times are DTF/speed, DTF/VMC, 30/speed, 30/VMC.

VMG makes even less sense.

Haversine formula is used for the distance. That gives 29.8974 for Oceans_United, with the remaining difference probably due to rounding error - the game server almost certainly uses data type with more than 4 decimal digits for the positions.
Post by iconPost by zezo | 2009-06-11 | 14:18:57
Here goes the raw csv data.

And one more file with more boats and DTF/VMC in the last column.

Let me know if you find better explanation.

there are few spurious points:

Powerof7 has two points inside the circle: the second one is:

the other one is 'jynnan tonnix' - should be few places in front if we look at the numbers.
Post by iconPost by Stefan | 2009-06-11 | 15:56:54
One thing that might affect this speculation is that the rankings are updated much later than what the actual DTF would suggest. You don't notice it easily but last leg I had boats in the lead at two different times and noticed it took about 2, maybe even more, updates before the ranking showed the boat to be 1st after my DTF comparison to the current leader showed that I had passed. It took even longer looking from another boat at the ranks. So the "right at finish" ranks could already be "wrong" there in the table.

But it seems that having the best VMC right when you jump into the circle should give you the best ranking. That gives you the smallest DTF and the best time to finish so it doesn't matter which one is used.

A good test would be to have a boat jump in almost tangentially into the circle so VMC would be close to zero. It should lose a lot of places even hours after it's finished if the VMC is used.
Post by iconPost by zezo | 2009-06-11 | 16:06:09
The posted data should be from more or less neutral point of view, as it queried for each player from the game server with unauthenticated request. But you can never be 100% sure.
Post by iconPost by Oceans_United | 2009-06-11 | 16:09:32
Agree with you Stefanon having the best VMC when crossing into the 30nm finish zone. But if it is only the DTF at last position that matters, then the boat can sail in litteraly any direction (maybe even with zero speed) when teleported. Because the ranking is only determined on DTF at that point.
I might test this with my scouting boat.
Post by iconPost by Oceans_United | 2009-06-11 | 16:13:05
Seems you can have only one bold statement in every paragraph!
Post by iconPost by zezo | 2009-06-11 | 16:15:41
Thanks. Will fix the regexp - it's very primitive now. Fixed, but still primitive. There are few ready-avaliable BBCode perl modules, will check them.
Post by iconPost by Stefan | 2009-06-11 | 16:44:38
Oh yeah it would make a huge difference if you jump in with highest VMC to get the best DTF but at the same tame cross wind cells in a way where you end up with a speed of zero. Then the algorithm used would matter indeed.
Post by iconPost by Oceans_United | 2009-06-11 | 15:54:48
Great job zezo.
You are right. I can't find any other reasonable pattern in the data above, than just the raw DTF at last position before finish.

Somehow I think it is also the easiest rule to handle. Beacuse everybody can handle it. It takes no special knowledge of sailing or math to understand. Just 'throw' your boat as far as possible into the finishing 'circle'. Easy Rule indeed. So much easier to communicate. But why haven't they just told us that, instead of all the crap we have heard from UG and VR. And we wouldn't have had the thousands of forum posts on this issue.

I will have a closer look at the data in the csv-file while you are in Stockholm.
Only other rule I can think of, is if it is the time crossing the 30nm. That is travelling from the second last to the last position, somewhere in between the boat crosses the 30nm.
Thanks again for your help.
Post by iconPost by Oceans_United | 2009-06-11 | 15:59:21
Another spurious thing.
Scoubi 975 finished 3rd in this leg 8. But looking at the overall top 100 ranking from VORG, this boat has a ranking of 0 (zero) in the previous leg to Galway. I haven't seen that before. How is that possible?
Post by iconPost by zezo | 2009-06-11 | 16:10:46
That's easy one. The boat joined before Leg8, but during the post-Leg7 database maintenance, so did not receive its DNS rank.
Post by iconPost by Oceans_United | 2009-06-11 | 16:28:32
Oh yes, Why didn't I think of that?
Post by iconPost by Oceans_United | 2009-06-11 | 19:24:27
Okay, Pole Star (id: 113234) is now heading 152 and ETT (Estimated Time for Teleportation) is 18:50 CET.
I will try and set the boat speed to zero upon arrival in the finishing zone. So lets see what happens.
Rank is now 10483.
I shall make two gybes to minimize DTF. Estimated at 18:50: 29.8nm
Post by iconPost by zezo | 2009-06-11 | 19:36:59
You should take few snapshots of your current results showing the 10 nearby boats. Or check their positions here / in vrtool for reference.
Post by iconPost by Oceans_United | 2009-06-11 | 19:42:51
Pole Star Log
Ranks at 18:46 CET:
10478, apartarquevoy
10479, Shimmer
10480, keka II
10481, kuto2
10482, redacnat2
10483, Pole Star
10484, Scugnizzapdm
10485, UTMB1
10486, sainto
10487, bigkraken
10488, Dolorosa 62

Ranks at 18:56:
10479, Shimmer
10479, Jussi K
10480, keka II
10481, kuto2
10482 ,redacnat2
10483, Pole Star
10484, Scugnizzapdm
10485, UTMB1
10486, sainto
10487, bigkraken
10488, Dolorosa 62

Ups, I forgot the finishing buoy is not where the briefing states, so we take one more 10 min. block.

CET, Lat, Long, BS, WS, TWA, CAP, DTF, Rank
18:30, 57.7638, 10.6924, 5.554, 4.85961, 137, 152, 32.1704, 10481
18:40, 57.7701, 10.7188, 5.554, 4.85961, 137, 066, 31.5116, 10468
18:50, 57.7565, 10.7324, 5.554, 4.85961, 137, 152, 30.8155, 10453
19:00, 57.7628, 10.7588, 5.554, 4.85961, 137, 066, 30.1571, 10444
19:10, 57.61, 11.63, 5.554, 4.85961, 137, 152, 29.4603, 10432, Finished
19:20, 57.61, 11.63, 5.554, 4.85961, 137, 152, 29.4603, 10422, Reranked

So i didn't get the last chance to alter the heading, as we usualy do. I guess it has to do with a discrepancy between the finish buoy positions. And Pole Star happend to end up both inside and outside of the teleportation zone at the same time dependen on what final coordinates the different algorithms use.
Indeed a crazy game.
So sory folks, can't confirm if it is possible to be teleported with zero speed without loosing rankings.
Post by iconPost by bigamist | 2009-06-11 | 19:51:12
Yep, I had the confirmation from the Chief programmer. On the end of leg one United games guys told us that the finish calculation was by VMG. After the second leg finish I started to doubt on that procedure and I ask them for the right procedure. They never clarified the situation.

A few days before, when talking with the guy about Leg9, he confirmed to me that the finish is at the 30NM distance and that there are not any calculation for the teletransportation.
Post by iconPost by zezo | 2009-06-11 | 19:58:34
Thanks. Not that I doubt my reverse-engineering skills, but this clears all doubt altogether ;)

And that's not that bad by itself, but should have been made clear so people would not try maximizing VMC instead of minimizing distance.
Post by iconPost by bigamist | 2009-06-11 | 20:01:45
I asked him how much decimals are involved in the distance to calculate between all the boats arriving at same time and the guy didn't know the answer.
Post by iconPost by Oceans_United | 2009-06-11 | 20:04:14
It was fun though, to investigate.
I will still see what happens with zero speed.
Post by iconPost by GizmoAnd | 2009-06-11 | 20:26:20
Hi b'

Nice to se you respond in this forum.

I think you should post your recently discovered information on the VORG forum as confirmed data from the Chief programmer. The sooner the better.

Why this information hasn't been published sooner is for me a big mystery!

Thank you zezo and Oceans United for some great work!

Post by iconPost by bigamist | 2009-06-11 | 20:37:48
I will not publish that in the game forum, since I have no instructions to do so. Of cousre if someone want to publish I can't see any problem.
Post by iconPost by Antonio | 2009-06-11 | 21:02:40
Guys I believe that teletransportation is pure BS!! What counts is the time taken from your last position before the finishing circle to the time you hit the finish circle. Since the server takes 10 min. to calculate your new position, you could cross the finish circle in say minute 1 of the cycle and you still have 8 or 9 minutes to decide what your finishing heading and speed will be! Once the server aknowledges you have finished it takes another 10 minute cycle to compute your finish vs. your last position before finishing. At least thats the way I see it. What counts is the speed towards the circle, you could point the boat anywhere as long as it hits the circle. Your simulator is an awesome tool by the way!!

Post by iconPost by Antonio | 2009-06-11 | 21:07:56

Sorry I had not read the post by bigamist which already clarified all of this.

Post by iconPost by Mouthansar | 2009-06-11 | 22:56:23
If I can do so without interrupting too much, I'd like to say that I am extremely impressed by this discussion and the inputs from both Oceans United and Zezo.

The accuracy of your observations and interpretations are staggering and - I'll humbly add - at times just slightly beyond me but still a superb learning experience.

In my evening prayer is a new line that goes: And may you grant Zezo half a mil dollars per year and the title of chief programmer at United Games.

Thank you so much to all of you. I really enjoy watching great craftsmen at work.
Post by iconPost by Oceans_United | 2009-06-12 | 04:02:07
I can now confirm that it is perfectly possible to be teleported with a speed of zero knots.
I did this with another scouting boat. And here is the data for the last timestamps.

CET, Lat, Long, BS, WS, TWA, CAP, DTF, Rank
01:50, 57.938, 10.9424, 14.17, 12.959 ,130, 116, 31.8509, 18458, Point of last user interaction
02:00, 57.61, 11.63, 0, 12.959, 0, 346, 29.5707, 18366, Finished
02:10, 57.61, 11.63, 0, 12.959, 0, 346, 29.5707, 18295, Reranked

Remark. BS, WS, TWA and DTF refers to previous timestamp.

Now comes the funny part. Between the two locations there are (using the Haversine formula):
29.5470 nm, if we use the finish coordinates above.
29.6401 nm, if we use the ones stated in the briefing.
None of the two numbers and also the final DTF is larger than 30nm.

Conclusion: Since one can stear the boat within the final zone. It is possible to teleport with zero speed. As I just did.
Maybe also rankings are 10 min. behind?
Post by iconPost by zezo | 2009-06-12 | 09:50:42
It seems that the game is run on more than one server (for performance and redundancy reasons) with the game servers later spooling the positions to a database, with the database probably being something like MySQL multimaster replication setup.

So when you send a query the load-balancer directs you to your own server, but it does not have all boat positions from all servers. The ranking is probably done on yet another machine. Then there are other servers for the main site and the static content, databases to store boat tracks and so on. And it becomes clear how easy it is for something to break.

The game server also has to be written in some weird way for it to take 2 minutes updating 200k boats. Like PHP script querying boats one by one (or worse, executing external program 200000 times). Doing it with stored database procedures should be faster, even with the overhead of saving track data. And creating temporary table with the current ranking should be sub-second operation.

One more time - this is a wild guess based only on my own experience and imagination, and things I've seen over the years.
Post by iconPost by bigamist | 2009-06-12 | 18:27:13
As far as I know there are www1 / 2 and 3.
Post by iconPost by RodH | 2009-11-30 | 05:04:58
Why not just have a buoy and a line to a nearby headland, or just the shore, so that you have a "finishing line" which you must 'pass'? The program does it quite happily on course 'way buoys'. Much more realistic anyway--and avoids all this "finishing circle" rigmarole, and all the "teleportation".
And what about a "real starting line" with the screens activated 10 minutes before the actual starting gun???? Stooge around for 10 minutes and then hit the line at speed-----"Um, buddy! You were over early!" Oh, joy!
Post by iconPost by Sailkap | 2009-11-30 | 22:30:17
Hmm... Interesting thoughts, but unfortunatelly isn´t Cvetan the programmer behind the game!
Post by iconPost by zezo | 2009-11-30 | 23:22:13
Yes, unfortunately. But I can see why they have chosen a circle - the math seems simpler. At least for someone who has never studied math at university level ;-)
Post by iconPost by OldChapZ | 2009-12-01 | 13:11:11
That's the reason why I miss some of my WPs. I use a circle, too. ;-D
Topics list
Copyright 2009 by ZEZO.ORG. All Rights Reserved.