Jump to content

F1 2018 UDP Specification

Recommended Posts

Hoo said:
Hi @cjorgens79, unfortunately our attempts to work around the legal constraints are not going well. We have another last avenue to try before we call time on it. Using the players' name runs into the same issues unfortunately.
@Hoo - thanks for the update. I can't help thinking that whoever is looking at these legal issues perhaps isn't quite understanding the nature of the data involved. GDPR was created specifically to stop large scale exploitation of peoples private data, it was primarily targeted towards social media, facebook, twitter etc etc. The laws they introduced however were somewhat broad in their application so they ended up pretty much catching everyone from small business to global corporations in a pretty strict set of regulations. Overall GDPR is a great thing in my opinion, people's personal data should absolutely be kept secure and not exploited or sold for profit.

When I post a message in a public forum like this what happens? The message appears, my user name (cjorgens79) is displayed to all. When i play an online MP session in F1 2018 what happens? I join the game and my user name (cjorgens79) is displayed to anyone else in the session and anyone else spectating the session. If anyone is streaming or recording the session then my user name is also being recorded there. What if i participate in an "Event" in the game? My time gets added to a public leaderboard. Looking at the leaderboard for an event right now I can see some users have their full name listed.

Can this data be harvested? yes to all really, forums would be really easy and would get a lot of user names. In game lists such as the leaderboards are a little harder but could certainly be done. 

Lets consider telemetry, the user name should be the same as is listed in the leaderboards and online sessions (which is probably also the same for most as their forum names). What is the scope of the telemetry, its usually sent to a telemetry app on the users home network. Can it be broadcast over the internet, technically yes, practically no. Does it reveal any more information than is already easily available through forums, in game leaderboards, online MP sessions? No.

When a person posts in a forum, they are well aware that their user name will be displayed publicly. They have chosen to provide that information publicly. Do they have a right to deletion under GDPR, yes they do. Does that guarantee the data is gone from the internet forever, I dont think so. While you may delete it from your forum, it doesn't mean someone hasn't already harvest that data or replicated it elsewhere. If they exercise their right to deletion for their game account do you also go and find every youtube video that other players have made that contains a recording of the player who wants to be deleted in an online MP session? No, its not practical nor is it your responsibility afaik.

Back to telemetry, can it be harvested? yes, but only by someone also in that session and it is also limited to user names of players involved in the session. (ie max 20 players). Can the same data be harvested from sources other than the telemetry, yes if they really wanted to but the same limits would apply. Is telemetry data any more sensitive than forum user names, leaderboard names, online MP names? No. Does the person joining the online game have an expectation that their user name will be visible to everyone else in that session? Yes.

GDPR is a broad regulation, if you wanted to you could probably make an argument that it could be applied to everything anyone ever does or posts online. Is its intention to shutdown all forums, online games, social media etc? No. Its intention is to stop exploitation of peoples personal data and make companies responsible for ensuring they use best security practices when storing databases of customer information. 

Unless I am missing something obvious, I really can't see why the names of 20 players in the telemetry feed are such huge drama for Codemasters yet forums full of user names and leaderboards of thousands of user names are not. Just some food for thought before this topic of privacy concerns in telemetry gets closed for good. Other AAA games do it, surely their legal departments would have had to consider the same things.

Share this post


Link to post
Share on other sites
Hoo said:
Hi @cjorgens79, unfortunately our attempts to work around the legal constraints are not going well. We have another last avenue to try before we call time on it. Using the players' name runs into the same issues unfortunately.
@Hoo - thanks for the update. I can't help thinking that whoever is looking at these legal issues perhaps isn't quite understanding the nature of the data involved. GDPR was created specifically to stop large scale exploitation of peoples private data, it was primarily targeted towards social media, facebook, twitter etc etc. The laws they introduced however were somewhat broad in their application so they ended up pretty much catching everyone from small business to global corporations in a pretty strict set of regulations. Overall GDPR is a great thing in my opinion, people's personal data should absolutely be kept secure and not exploited or sold for profit.

When I post a message in a public forum like this what happens? The message appears, my user name (cjorgens79) is displayed to all. When i play an online MP session in F1 2018 what happens? I join the game and my user name (cjorgens79) is displayed to anyone else in the session and anyone else spectating the session. If anyone is streaming or recording the session then my user name is also being recorded there. What if i participate in an "Event" in the game? My time gets added to a public leaderboard. Looking at the leaderboard for an event right now I can see some users have their full name listed.

I totally agree with cjorgens79!

Share this post


Link to post
Share on other sites
Hello,

in PacketHeader, who is the size of m_frameIdentifier?

Regards Sascha
struct PacketHeader
{
    uint16    m_packetFormat;         // 2018
    uint8     m_packetVersion;        // Version of this packet type, all start from 1
    uint8     m_packetId;             // Identifier for the packet type, see below
    uint64    m_sessionUID;           // Unique identifier for the session
    float     m_sessionTime;          // Session timestamp
    uint      m_frameIdentifier;      // Identifier for the frame the data was retrieved on
    uint8     m_playerCarIndex;       // Index of player's car in the array
};

Share this post


Link to post
Share on other sites
CanTQuiT said:
Hoo said:
Hi @cjorgens79, unfortunately our attempts to work around the legal constraints are not going well. We have another last avenue to try before we call time on it. Using the players' name runs into the same issues unfortunately.
@Hoo - thanks for the update. I can't help thinking that whoever is looking at these legal issues perhaps isn't quite understanding the nature of the data involved. GDPR was created specifically to stop large scale exploitation of peoples private data, it was primarily targeted towards social media, facebook, twitter etc etc. The laws they introduced however were somewhat broad in their application so they ended up pretty much catching everyone from small business to global corporations in a pretty strict set of regulations. Overall GDPR is a great thing in my opinion, people's personal data should absolutely be kept secure and not exploited or sold for profit.

When I post a message in a public forum like this what happens? The message appears, my user name (cjorgens79) is displayed to all. When i play an online MP session in F1 2018 what happens? I join the game and my user name (cjorgens79) is displayed to anyone else in the session and anyone else spectating the session. If anyone is streaming or recording the session then my user name is also being recorded there. What if i participate in an "Event" in the game? My time gets added to a public leaderboard. Looking at the leaderboard for an event right now I can see some users have their full name listed.

I totally agree with cjorgens79!
I totally agree too!

I got a question. Is the ID for Vettel (13) always the same? Like, when i start a online lobby and select Vettel, and he gets the (112), does it stay that way all session long?

Share this post


Link to post
Share on other sites
Im finding that UDP on the Xbox One X does not work correctly, it usually cuts out in an online race or does not work at all in online races, I have had numerous reports from friends in my racing league about the same issue

Share this post


Link to post
Share on other sites
dfg15 said:
Im finding that UDP on the Xbox One X does not work correctly, it usually cuts out in an online race or does not work at all in online races, I have had numerous reports from friends in my racing league about the same issue
I have not had any reports of issues like you have described from any of my users of this interface. If you are using broadcast mode it could be your device or router effectively going to sleep as there is no direct IP traffic aimed at it. Some firmware tends to operate like this, you shouldnt have any issues with using direct IP to send though. Try lower your telemetry rate to 30hz and see if that makes any difference.

Share this post


Link to post
Share on other sites
Hi @Hoo,

This is an idea that I have thought of. I understand that this would be a complete rewrite of the code but maybe a possibility for the future (even if in two years time or so).

At the moment, we have UDP only, meaning we can only receive data. What would be cool is if you were to develop a TCP service too. This would allow us to turn out dashboard apps into in-game menus. This could also help to solve the limited buttons that we have.

Setting up the TCP service would allow us to do the followings (as an example)
User is in the race screen mode, hear they can use button 1 on their controller to increase ERS, 2 to decrease ERS
They will also be able to use button 3 and four to change fuel mixture.
5 would allow the user to enable DRS and 6 would be pit confirm
Buttons 7 and 8 would allow the user to change menus in the dashboard app.

As you can see here, we are now starting to run out of buttons.
When the user changes to another menu, say 'car status' menu, the user could now use buttons 1 and two to change the break blast, 3 and four to change the differential settings, 5 + 6 to select the tyre for the next stop etc.

This method would allow us to control every aspect of the car with limited buttons instead of  only being able to use a handful of features.

As I said above, I understand that this may take a lot of time to implement but maybe it could be a consideration for a future release?

Us developers could then add a 'party mode' button that sets ERS and fuel to the max consumption setting. We could then also create a 'recover' button which sets the settings to the minimum.

Share this post


Link to post
Share on other sites
@Hoo, is it possible to have a breakdown of the engine damage? At the moment, we only have general damage. Would be nice to have information on all the components if possible.

Share this post


Link to post
Share on other sites
Guest
Hi everyone, I'm creating my personal app, and I am trying to get the time gap between me and my own ghost (in trial). I've managed to get the final time that you can find in the leader board, but my ghost's m_currentLapTime is always equal to zero. How can I get the gap without this ? We can see it on the car's steering wheel and on the top right corner for example.(I've probably missed something btw).
Thanks !

Share this post


Link to post
Share on other sites
Hi @Hoo

I don't know if this change happened in 1.14, but this is the first time I have noticed it.
- If you do a formation lap (career, not tested in online), the LapData.m_lapTime doesn't reset to 0, when the formation lap is over. It resets to the real/proper time, when the player car passes from S1 to S2, at which time the times are correct.

There are still the following issues (tested in career, not in online), if you do 'drive out' in P&Q
1)  Outlap changes to flyinglap (lapData.m_driverStatus) midway in Sector 3. I would expect it to change at start-finish line. This applies to all cars. You can easily see this, if you look at the timing screen when someone is on an out-lap.
2) When driving out after the first laps (P&Q), the Lapdata.m_currentLapNum doesn't change, i.e. if you have driven e.g. 4 laps, return to garage and then drive out, the lap will show 4 even when you again pass the start finish. Again I would expect, that always when the car passes start-finish line (in pits or track), the LapData.m_currentLapNum would increase.

Any comments?

Cheers.


Share this post


Link to post
Share on other sites

1)  Outlap changes to flyinglap (lapData.m_driverStatus) midway in Sector 3. I would expect it to change at start-finish line. This applies to all cars. You can easily see this, if you look at the timing screen when someone is on an out-lap.
2) When driving out after the first laps (P&Q), the Lapdata.m_currentLapNum doesn't change, i.e. if you have driven e.g. 4 laps, return to garage and then drive out, the lap will show 4 even when you again pass the start finish. Again I would expect, that always when the car passes start-finish line (in pits or track), the LapData.m_currentLapNum would increase.

I think the game may change to a flying lap once the driver has passed the pit lane entrance, as if they enter the pitlane it then becomes an inlap. Trying to classify it as a flying lap before this point may be premature and only classifying it once you cross the S/F line would be correct, but just a bit later than after passing the pit lane.
I suspect the second point is related, in that the game only counts full, flying laps completed, not inlaps or outlaps, so any entering of the pit lane doesn't count. 

Share this post


Link to post
Share on other sites
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.

Share this post


Link to post
Share on other sites
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.
Works just fine for me from PC, Xbox and PS4 ..... could it be your system ? Do you have a firewall that's blocking DOS attacks ? My work laptop had issues initially, because of stupid AV/firewall settings.

Share this post


Link to post
Share on other sites
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.
If you have broadcast mode enabled, try switching it off and using direct IP instead as depending on your hardware you could be getting alot more packet loss with broadcast mode.

Share this post


Link to post
Share on other sites
AndyHamp said:
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.
Works just fine for me from PC, Xbox and PS4 ..... could it be your system ? Do you have a firewall that's blocking DOS attacks ? My work laptop had issues initially, because of stupid AV/firewall settings.
no firewall, I have pretty much all simulation games that  you can think of, no issues.
Tried in a different pc and network same issue.

Share this post


Link to post
Share on other sites
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.
If you have broadcast mode enabled, try switching it off and using direct IP instead as depending on your hardware you could be getting alot more packet loss with broadcast mode.
Tried on and off, same problem.  :(

Share this post


Link to post
Share on other sites
Hi guys,

I'm having some issues with the frequency of the data. For the lap data I get the packets at least 10x per second, but the motion and telemetry (the ones that I need) came like every 5s.

I changed the frequency from 60hz to 20hz, and the motion and telemetry packets do not come anymore.

Any suggestion, to be able to use with my software I need the motion and telemetry packets at least 10x per second.
If you have broadcast mode enabled, try switching it off and using direct IP instead as depending on your hardware you could be getting alot more packet loss with broadcast mode.
Tried on and off, same problem.  :(
Are you writing your own application or using someone else's? Are you sure that it isn't the application listening that is at fault? Assuming you are developing it yourself, run wireshark on your PC and verify the packets being sent or received.

Share this post


Link to post
Share on other sites
Guest
Hello (x-post from 2017 UDP)! Who can we talk to to get written permission to use the data collected? Another way of asking, where are the terms and conditions around what we can do with any data we collect? My company wants to have a demo that uses the data we collected while playing the game going around for a few laps... and they really want written explicit permission :-/

Share this post


Link to post
Share on other sites
NetCrash said:
Hello (x-post from 2017 UDP)! Who can we talk to to get written permission to use the data collected? Another way of asking, where are the terms and conditions around what we can do with any data we collect? My company wants to have a demo that uses the data we collected while playing the game going around for a few laps... and they really want written explicit permission :-/
It depends on what the data is and how you intend to use it. Anything personally identifiable needs to have permission of the data owner (i.e. each player). There shouldn't be anything in the UDP packet that falls into that category unless you are doing any secondary data linking, although you may want your legal team to review this to be sure. If you want to make reference to the game of F1 or anything like that then I would recommend emailing custservice@codemasters.com with as much info as possible.


Share this post


Link to post
Share on other sites
Guest
Hi there. We've emailed, awaiting responses :(

This is data captured I believe only while playing in single player. We are even willing to attribute to Codemasters right on the site. Hope we hear something back from the email address...

Share this post


Link to post
Share on other sites
Good luck trying to get a response from customer services... I've been trying for months and gotten zero response .. @Hoo any chance you can pm a better contact?

The legal statements are really restrictive... They say you can use the data to develop a solution /tool but then you cannot use it! And our legal team are paronoid at the best of times.... 

Share this post


Link to post
Share on other sites
@AndyHamp - You could try the community email address, but that may end up back in the same loop.

It's worth noting that any attempt to sell a product that uses either the F1 or Codemasters name without prior consent is not permitted. Unfortunately, getting permission for a licensed product is also difficult and probably not something we are able to grant in any case as we are not the licensor in this instance. However, I can't see any issue with people creating software that interfaces with the game's publicly available API - it is provided for people to make use of, but please be mindful of the above condition about unapproved use of trade marks. 

If you are doing other things with data outside of what the API provides and in a way that links this data with real people then that is up to you to determine if this is compatible with any relevant laws and seek relevant permissions from the appropriate parties (likely the users themselves in this case). 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×