Jump to content
Want to report an issue? Have a bug to report? Please look here first!!!! Read more... ×

Archived

This topic is now archived and is closed to further replies.

F1 2018 UDP Specification

Recommended Posts

Yep, i would love to use it too but on PS4 for privacy related problems they are almost totally obfuscated in the most cases, so i really can't use that. :(

Share this post


Link to post
Share on other sites
i find these "privacy concerns" a bit surprising - the Project Cars UDP stream had all the driver names in it, for PC Xbox and PS4

Share this post


Link to post
Share on other sites
Who knows how to calculate the delta time between the driver in front and driver behind?

Edit: solved now!
How did you calculate it?

Share this post


Link to post
Share on other sites
You can calculate it storing the sessionTime of all cars at fixed "checkpoints" (like each sector, or micro-sector if you want more updates, and then compute the delta between the two timestamps. ;)


Related to my problem, someone has the same issue with the IDs in online lobbies? :/

Share this post


Link to post
Share on other sites
Hoo said:

PARTICIPANTS 
PACKET
...

Size: 1082 bytes

struct ParticipantData
{
    uint8      m_aiControlled;           // Whether the vehicle is AI (1) or Human (0) controlled
    uint8      m_driverId;               // Driver id - see appendix
    uint8      m_teamId;                 // Team id - see appendix
    uint8      m_raceNumber;             // Race number of the car
    uint8      m_nationality;            // Nationality of the driver
    char       m_name[48];               // Name of participant in UTF-8 format – null terminated
                                         // Will be truncated with … (U+2026) if too long
};

Hi,

Would it be possible to get the 3 letter abbreviation (TLA) of the player in this feed? I can now take the first 3 letters of the n_name for the TLA, but it would be great, if the player's TLA would be available through the feed.

Cheers

Share this post


Link to post
Share on other sites
Son4R said:
Who knows how to calculate the delta time between the driver in front and driver behind?

Edit: solved now!
How did you calculate it?
Say if you are in P7, you get your total distance and your current speed. You then get the drivers total distance who is in P6. You then do time = distance / speedDifference.

IMPORTANT: speed needs to be in m/s and distance needs to be in meters.

Share this post


Link to post
Share on other sites
Lopensky said:
You can calculate it storing the sessionTime of all cars at fixed "checkpoints" (like each sector, or micro-sector if you want more updates, and then compute the delta between the two timestamps. ;)
I simply done time = distance/speed. I wanted to get real time information rather than sector by sector. It seems to work.

Share this post


Link to post
Share on other sites
Yep if you need real time updates this seems work properly too. Just notice that the computed distance you get this way is a "prediction" based on the actual state of the cars, not a real misuration of delay at a certain point of the track.

It is anyway quite similar to real delay, even if it's an approx. Surely works well for cars near to each other.. while problems may occour if distance between cars increases. If the front car is in a slow turn and the back one is quite behind, in the middle of a straight, delay between them could result quite different from the "real" one if you calculate it this way. ;)

It all depends on what you need to do.
Your solution is real-time and requires no data store or manipulation. Easier and faster.
My solution is a bit harder to implement but gives 100% accurate delays between cars. And you can get absolutely accurate delays with a good refresh rate just taking a "snapshot" every n track meters instead of every sector if you need).


Said that...
<3   Can anyone help me with my issue related to driverIDs? <3

:#




Share this post


Link to post
Share on other sites
@Hoo if you manage to talk to a developer, can you please ask him how this is possible? :#


Really hard to figure out why game acts like this in online sessions.. :|

Share this post


Link to post
Share on other sites
Lopensky said:
@Hoo if you manage to talk to a developer, can you please ask him how this is possible? :#


Really hard to figure out why game acts like this in online sessions.. :|
How did you manage to get their full name? I get the name, with the first 7 characters replaced by Player_

Share this post


Link to post
Share on other sites
Son4R said:
Lopensky said:
@Hoo if you manage to talk to a developer, can you please ask him how this is possible? :#


Really hard to figure out why game acts like this in online sessions.. :|
How did you manage to get their full name? I get the name, with the first 7 characters replaced by Player_
This is a screen i reposted from @cjorgens79, not mine.
I reposted this cause it shows clearly the problem i'm going through. He reads the full player names because he run this on PC. If you are testing it using a PS4 (like me) the you will get obfuscated player names for every "real" player (only exception if you play in LAN mode). As far as i know this is for privacy related problems.

Share this post


Link to post
Share on other sites
Hi there. As stated in the release notes on the first page, we are not allowed to release unauthorised personal information across the internet. Gamertags were deemed to fall into this category and their removal was required for us to be allowed to release this feature. We cannot comment on other developers who have done a similar thing. However, we will be looking at why a partial name is coming through, as the intention was either to use a generic player name, or their LAN name, not a mixture of gamertag and generic name. This doesn't sound like it is working correctly.

Share this post


Link to post
Share on other sites
@Hoo what about my issue?  :/
As proved thank to @cjorgens79 screenshot, it's not only me having this strange data.. :/

Related to "obfuscated" player names.. can't you just use the default driver name? (ie Lewis Hamilton)? :D

Share this post


Link to post
Share on other sites
Hoo said:
Hi there. As stated in the release notes on the first page, we are not allowed to release unauthorised personal information across the internet. Gamertags were deemed to fall into this category and their removal was required for us to be allowed to release this feature. We cannot comment on other developers who have done a similar thing. However, we will be looking at why a partial name is coming through, as the intention was either to use a generic player name, or their LAN name, not a mixture of gamertag and generic name. This doesn't sound like it is working correctly.
Interesting that you say "we are not allowed to release unauthorised personal information across the internet", as the telemetry is used across the LAN, not the internet. I guess technically you could target an IP on the internet, however it would be simple enough to detect if this was happening as the subnets for local networks are easy to determine. I suspect this is why PCARS has no issues and sends out the player names on all platforms as they don't allow manual IP's, they force a broadcast to 255.255.255.255 which would only ever transmit to the local network.

So i guess in theory if CM wanted to be able to allow player names on LAN only for all platforms this would be easy to enforce by checking the target IP.

Share this post


Link to post
Share on other sites
Hoo said:
Hi there. As stated in the release notes on the first page, we are not allowed to release unauthorised personal information across the internet. Gamertags were deemed to fall into this category and their removal was required for us to be allowed to release this feature. We cannot comment on other developers who have done a similar thing. However, we will be looking at why a partial name is coming through, as the intention was either to use a generic player name, or their LAN name, not a mixture of gamertag and generic name. This doesn't sound like it is working correctly.
  "10": {
    "team": "Red Bull",
    "name": "Player",
    "driverId": 1
  },
  "8": {
    "team": "Haas",
    "name": "F1SP1***",
    "driverId": 8
  },
As I've tested in a public online race (PS4) I now notice 4 out of 12 names are actually correct and the others receive Player. (I have removed bits of his name).
As for DriverID, it seems it's kind of random what I'm receiving. For example:
  "3": {
    "team": "Sauber",
    "driverId": 19
  },

19 belongs to Lance Stroll yet he's part of Williams. The player in Red Bull receives DriverID 1, which is no one. Then there's someone in Ferrari with ID 4. When I test this offline, grand prix mode. I receive the correct ID's.

@cjorgens79 I actually connect to my webhost.

Share this post


Link to post
Share on other sites
@Son4R THAT is exactly what i'm asking for. Same issue here.
Offline works properly, while in online mode it puts out incorrect driverIDs (plus like you said, some of the "real" drivers name are not obfuscated and other are).

Share this post


Link to post
Share on other sites
The requirement to not send actual user IDs seems a tad daft to me - it’s not like they’re secret, I can see them all on the screen! Bizarre really.

Share this post


Link to post
Share on other sites
The requirement to not send actual user IDs seems a tad daft to me - it’s not like they’re secret, I can see them all on the screen! Bizarre really.
We don't make the rules unfortunately. :( 

We're looking into some of the other reported issues too. I'll let you know once there is any more info on this.

Share this post


Link to post
Share on other sites
Hoo said:
The requirement to not send actual user IDs seems a tad daft to me - it’s not like they’re secret, I can see them all on the screen! Bizarre really.
We don't make the rules unfortunately. :( 

We're looking into some of the other reported issues too. I'll let you know once there is any more info on this.
Yeah I appreciate that. It just struck me that it was a futile exercise when I thought about it.

thanks

Share this post


Link to post
Share on other sites
How would I get the final race results? If I’m racing myself, and I cross the finish line the telemetry stops. I could use the data before that, but what if behind me someone gets overtaken after I cross the finish line?

Share this post


Link to post
Share on other sites
i really think there is no other solution than the one you already mentioned, with all its comebacks. :/

Share this post


Link to post
Share on other sites
Any chance you could send a hashed version of the names then? That's anonymous, but that way I can store a lookup table for my leagues drivers hashes and use that to populate the timing screens

Share this post


Link to post
Share on other sites
IJS84 said:
Any chance you could send a hashed version of the names then? That's anonymous, but that way I can store a lookup table for my leagues drivers hashes and use that to populate the timing screens
That is a solution! :)

At the moment i just passed my last 5/6 hours trying to make this work properly, but the game assign random ids to the drivers everytime an online race starts, with lots of ids that are not in the provided list at first post of the topic. I realized it uses any ID in the range between 0 and (maybe) 61.

At this point i sincerely do not know how to make this work. Even map manually this drivers at every session start is a total mess with this situation.


I have exactly the problem described by @IJS84 . Need to map game drivers to league ones. Please, please, PLEASE do EXACTLY what he proposed. It's just THE solution.  B)

Share this post


Link to post
Share on other sites
Lopensky said:
IJS84 said:
Any chance you could send a hashed version of the names then? That's anonymous, but that way I can store a lookup table for my leagues drivers hashes and use that to populate the timing screens
That is a solution! :)

At the moment i just passed my last 5/6 hours trying to make this work properly, but the game assign random ids to the drivers everytime an online race starts, with lots of ids that are not in the provided list at first post of the topic. I realized it uses any ID in the range between 0 and (maybe) 61.

At this point i sincerely do not know how to make this work. Even map manually this drivers at every session start is a total mess with this situation.


I have exactly the problem described by @IJS84 . Need to map game drivers to league ones. Please, please, PLEASE do EXACTLY what he proposed. It's just THE solution.  B)

This is what I need aswel, I really hope they come with a solution. I’ve stopped working on the script since there’s no use for it if this isn’t fixed.

Share this post


Link to post
Share on other sites

×