Jump to content
Bug Reporting - PLEASE FOLLOW RULES AND COMPLETE REPORTS Read more... ×

F1 2020 UDP Specification

Recommended Posts

On 5/26/2020 at 11:23 AM, Hoo said:

Thanks for all of the feedback so far everyone. We're looking into some of these issues now.

...

We'll provide an update on the various changes and bug fixes ahead of the next beta phase. Thanks.

It seems to work as earlier. Waiting to see, how the lobby participant stuff works.

A note about events.

DRSE/DRSD. Would it be possible to send one of these after SSTA to provide info, if DRS is available or not. If you don't want to add another message, the SSTA could contain a byte of 0 or 1 indicating, if DRS is available or not at the start of the session.

Speed trap event? Would it be possible to add a speed trap event, i.e. when the player gets notified of new top speed on speed trap, the game would also send an event like the FTPL but for top speed with driverId and the top speed gained.

Cheers.

Share this post


Link to post
Share on other sites
On 5/26/2020 at 7:23 PM, Hoo said:

Thanks for all of the feedback so far everyone. We're looking into some of these issues now. 

In terms of delta times, we're not considering adding this in at the moment as the data should exist for everyone to do what they need. As stated above, delta time has so many different approaches and uses that it isn't something that we can add in to accommodate everyone's own use case. For example, there have been requests for the gap to the car in front, pitting delta, realtime delta used in Time Trial. Even something a simple as gap to the car in front comes with lots of design interpretation to make it work correctly:

If we simply work out the gap time gap between each car passing the specified point in the circuit, how do we interpolate between differences in track position reported by the car as these don't usually align? What happens when cars enter the pit lane or go off track? Do we consider using predictive deltas, or based them retrospectively on cars passing the same point in the track? What happens if you are not racing the car in front due to lapping them or alternative pitting strategies? What happens if cars are on in-laps or out-laps? ... and so on.

The game already uses a few different approaches to delta times and even more have been suggested by the community. As each one is a subjective design choice, we prefer to just provide the lap and time data and let you all choose how to use this.

We'll provide an update on the various changes and bug fixes ahead of the next beta phase. Thanks.

While its true there are many ways to do this I would gladly just have the data that is already in the game.

You guys have obviously solved some of these questions as there is a delta in game and now live gaps in the scoring totem top left.
I'd be happy just to have that data passed onto the telemetry. Isn't that a case of just copying the internal values to the telemetry packet?

  • Agree 1

Share this post


Link to post
Share on other sites

Hi all,

I have a issue with telemetry data, with F12020 format, "Packet Header" is 23 bytes, but in the guide, "Packet Header" is 22 bytes, same of F12019 format.  

I have checked 100 time UDP telemetry guide.

Share this post


Link to post
Share on other sites
26 minutes ago, Drospy said:

Hi all,

I have a issue with telemetry data, with F12020 format, "Packet Header" is 23 bytes, but in the guide, "Packet Header" is 22 bytes, same of F12019 format.  

I have checked 100 time UDP telemetry guide.

Hi - the packet header in the docs at the top of this post is 23 bytes so what you're seeing is correct. The 2019 packet header was also 23 bytes.

Share this post


Link to post
Share on other sites
42 minutes ago, DaveyGravy said:

Hi - the packet header in the docs at the top of this post is 23 bytes so what you're seeing is correct. The 2019 packet header was also 23 bytes.

Yes, 0-22, 23 bytes, but with F12020 format, other data don't start from position 23.

For example : LAP Data

0-22 Packet Header 

23 ? 

24-27 m_lastLapTime

 

Share this post


Link to post
Share on other sites
1 minute ago, Drospy said:

Yes, 0-22, 23 bytes, but with F12020 format, other data don't start from position 23.

For example : LAP Data

0-22 Packet Header 

23 ? 

24-27 m_lastLapTime

 

Apologies, I've played with beta 2 now and understand what you mean. The packet header now appears to be 24 bytes in size as all of the packets have increased by 1 byte. Either it's a bug or more likely is that another field has been added to the header - hopefully @Hoo will shed some light on it in due course.

  • Agree 1

Share this post


Link to post
Share on other sites
1 hour ago, Drospy said:

Hi all,

I have a issue with telemetry data, with F12020 format, "Packet Header" is 23 bytes, but in the guide, "Packet Header" is 22 bytes, same of F12019 format.  

I have checked 100 time UDP telemetry guide.

We added an extra field into the PacketHeader struct to allow you to identify the second player in splitscreen. I've updated the spec in the original post. 

Apologies for not identifying this - I didn't think any of our recent changes had made it into Beta 2, but it looks like this one found its way in! 

  • Thanks 1
  • Agree 1

Share this post


Link to post
Share on other sites
14 hours ago, Hoo said:

We added an extra field into the PacketHeader struct to allow you to identify the second player in splitscreen. I've updated the spec in the original post. 

Apologies for not identifying this - I didn't think any of our recent changes had made it into Beta 2, but it looks like this one found its way in! 

@Hoo, dont forget to also update the total packet lengths for all the other packet type descriptions. They all need +1 added to each existing size in the doco.

Share this post


Link to post
Share on other sites
On 6/3/2020 at 12:09 AM, Hoo said:

We added an extra field into the PacketHeader struct to allow you to identify the second player in splitscreen. I've updated the spec in the original post. 

Apologies for not identifying this - I didn't think any of our recent changes had made it into Beta 2, but it looks like this one found its way in! 

Is there supposed to be data coming into the lobby packets?

When I am in an online lobby, I just get empty data for all drivers, i.e. the teamId is 255, everything else is 0 and name is empty string. This with lobby with other players. The number of drivers in lobby gets updated and is correct. I would expect at least my own driver name to be visible.

Cheers

Share this post


Link to post
Share on other sites

Hi @LonelyRacer ,

It looks like there was a bug introduced elsewhere that broke the LobbyInfo packet. This will be fixed for the next beta.

Thanks.

Share this post


Link to post
Share on other sites
Posted (edited)

Hi @Hoo,

may I ask if you got the Bug Report about the UDP Telemetry that I posted in the Bug Reporting Section during Beta Week 1?
Of course the reported issue is most likely not fixed yet (still happening in Beta 2), just want to make sure that it reached the right people.

The reported issue was that the Front Wing Damage of the Left/Right side is not correctly updated to 100% if the wing has fallen off the car.
Hitting the wall or another obstacle slowly again and again with the right front wing until that side is at 100% Damage, then continue until the Wing falls off, the game shows the other side of the Wing (Left side in this example) as 100% damaged too, the telemetry returns 0% or whatever damage the left wing had before it has fallen off instead.

The other issue that is around since some iterations of the game and very similar:
If the Rear Wing has a lot of Wear and the Race Engineer tells you that it can stop working at some point, you get these random jams, where the DRS wont open.
The game shows the rear wing as Red (damaged), but the telemetry always returns 0% Damage.

Thank you

Edited by StryderIT

Share this post


Link to post
Share on other sites

Hi @StryderIT,

We've logged the wing issue with the dev team. 

I'm not sure showing a damage value is appropriate for the DRS being unavailable due to a temporary fault. I wonder if perhaps an event message would be a better way to report this, or maybe updating the DRS status field in the CarStatusData with a value for a technical fault? 

Thanks,
Hoo.

Share this post


Link to post
Share on other sites
7 minutes ago, Hoo said:

We've logged the wing issue with the dev team.

Ok, thanks!

7 minutes ago, Hoo said:

I'm not sure showing a damage value is appropriate for the DRS being unavailable due to a temporary fault. I wonder if perhaps an event message would be a better way to report this, or maybe updating the DRS status field in the CarStatusData with a value for a technical fault?

I'd be fine with another way to provide this information as well, but at least from the visuals it seems that the game internally treats it as a Damage?

I have attached a photo, where the in-game MFD shows the Rear wing in that situation with red color, but the telemetry provides a Damage value of zero, so the appropriate color cannot be displayed on the external display.

RearWingDamageF1.jpg

Share this post


Link to post
Share on other sites
On 5/17/2020 at 5:18 PM, Hoo said:

uint8 m_ersDeployMode; // ERS deployment mode, 0 = none, 1 = low, 2 = medium // 3 = high, 4 = overtake, 5 = hotlap

@Hoo, I think the ERS mode is different than what is mentioned in the first page. (Tested with 2nd week beta).

The modes seems to be 0 = none, 1 = medium, 2 = overtake, 3 = hotlap

Could you check if that is the case and maybe update the data on the first page. I haven't noticed issues on other enums, but will keep checking them as I test.

Cheers.

Share this post


Link to post
Share on other sites
9 hours ago, LonelyRacer said:

@Hoo, I think the ERS mode is different than what is mentioned in the first page. (Tested with 2nd week beta).

The modes seems to be 0 = none, 1 = medium, 2 = overtake, 3 = hotlap

Could you check if that is the case and maybe update the data on the first page. I haven't noticed issues on other enums, but will keep checking them as I test.

Cheers.

Good spot! I've updated the comments on the first post to show this.

Share this post


Link to post
Share on other sites
On 5/27/2020 at 1:29 PM, LonelyRacer said:

A note about events.

DRSE/DRSD. Would it be possible to send one of these after SSTA to provide info, if DRS is available or not. If you don't want to add another message, the SSTA could contain a byte of 0 or 1 indicating, if DRS is available or not at the start of the session.

Speed trap event? Would it be possible to add a speed trap event, i.e. when the player gets notified of new top speed on speed trap, the game would also send an event like the FTPL but for top speed with driverId and the top speed gained.

Cheers.

We've had a look into this and the DRS event is a bit tricky to do as it involves us changing game logic. Currently, DRS is never available at the start of a race session, and is always available in Qualifying, Practice and Time Trial unless it is wet, so it should be possible to use the existing session information to provide the current DRS state.

The speed trap event should be possible though. 

Share this post


Link to post
Share on other sites
19 hours ago, Hoo said:

We've had a look into this and the DRS event is a bit tricky to do as it involves us changing game logic. Currently, DRS is never available at the start of a race session, and is always available in Qualifying, Practice and Time Trial unless it is wet, so it should be possible to use the existing session information to provide the current DRS state.

The speed trap event should be possible though. 

Ok. No worries on the DRS.

I actually made a solution in my tool, where the DRS status is "undefined" at the start of each session. Then if any of the drivers gets the 'canUseDRS', I turn the DRS status to Enabled. After that if there is DRSD, then it goes to Disabled status or if there is DRSE, it goes to enabled. Works quite well.

The speed trap would be great. Fingers crossed.

Cheers.

Share this post


Link to post
Share on other sites
Posted (edited)

I have had quite a few requests for the suggested gear.
Any chance this could be added?

Edited by BernoAU
  • Agree 1

Share this post


Link to post
Share on other sites
Posted (edited)
On 6/10/2020 at 6:27 PM, Hoo said:

We've had a look into this and the DRS event is a bit tricky to do as it involves us changing game logic. Currently, DRS is never available at the start of a race session, and is always available in Qualifying, Practice and Time Trial unless it is wet, so it should be possible to use the existing session information to provide the current DRS state.

The speed trap event should be possible though. 

@Hoo

I have been doing more driving on the weekend, when I noticed the beta was available.

While driving and testing two requests came to my mind. In the MFD you see the warning sign, when temps are too low or high or there is some other issue with the car.

1) Any change, you guys could add data for the MFD warning sing, i.e. a uint8 into the Car Telemetry Packet, which would have values 0 (no warning), 1 (tires too cold), 2 (tires too hot), 3 (brakes too cold), 4 (brakes too hot) etc. It could even be a bitmask, if you have too hot brakes + engine problems at the same time.

2) Now there is EngineDamage in the CarStatus packet. Would it be possible to get the individual component's damage level there instead, i.e. MGUH, MGUK etc.

Cheers.

Edited by LonelyRacer

Share this post


Link to post
Share on other sites

@Hoo

After the last update the Lap data packet is now 1190 bytes throwing the current struct out.

Share this post


Link to post
Share on other sites
1 hour ago, BernoAU said:

@Hoo

After the last update the Lap data packet is now 1190 bytes throwing the current struct out.

That's quite a change - I make that 12 bytes per driver.

Share this post


Link to post
Share on other sites
58 minutes ago, DaveyGravy said:

That's quite a change - I make that 12 bytes per driver.

Sorry, there have been quite a few changes (hopefully the last ones). Unfortunately, I'm trying to pick through these as the current beta version is a touch behind the latest / final spec, so I'm trying to work out what to do with this. I'll update this thread as soon as I can.

  • Thanks 4

Share this post


Link to post
Share on other sites

No rush I just thought I'd notify ASAP in case it was unintended.

Share this post


Link to post
Share on other sites
Posted (edited)

@Hoo   Really appreciate that you have implement our suggests in the UDP, especially the bestlap sectors !  Thanks!

 

Edited by Oasis81

Share this post


Link to post
Share on other sites

Hi All,

We’ve made some changes to the UDP data based on your feedback. This has resulted in multiple changes to the packet structure, so please check against the latest spec on the first page of this thread to see what has changed. The intention is for this to be the final 2020 specification now – we don’t plan on making any structural changes unless a serious issue is found. We can obviously still fix bugs if the data isn’t working correctly, so please let us know if you spot anything wrong.

The changes that have been made are:

  • Beta 2: Added m_secondaryPlayerCarIndex into the PacketHeader to identify the second player in splitscreen mode
  • Beta 2: Updated the comments in the ersDeployMode of the CarStatusData packet to show the correct ERS values
  • Beta 3: Added the MFD panel index to the PacketCarTelemetryData to identify what HUD screen the player is currently viewing
  • Beta 3: Added best sector times and lap numbers to the LapData packet to allow tracking of the best sector times in the session. Note: all sector times have been changed to milliseconds (uint16 instead of float) to reduce the packet size to make room for the extra data
  • Beta 3: Added m_drsFault to the CarStatusData packet to show when DRS has been disabled due to a technical fault
  • Beta 3: Added a Speed trap triggered event (“SPTP”). This provides the vehicleID and speed of the fastest car to pass through the speed trap. Note: the intention is to change this so that it triggers whenever a car beats its own speed trap record, rather than just showing the fastest car.
  • Beta 3: Bug fix to correctly show front wing damage as 100% in the UDP data when wing is removed
  • Beta 3: Bug fix to only show data for active cars
  • Beta 3: Updated driver ID table in the appendices as some drivers were missing or using incorrect IDs
  • Beta 3.1: Added m_drsActivationDistance to CarStatusData to indicate whether the car has passed detection and when it will be available in the subsequent activation zone (next patch)
  • Beta 3.1: Suggested gear added to the car telemetry packet (next patch)

The final two points may result in a data mismatch until the updated beta patch comes out with these new fields added. I decided to post the intended final spec rather than changing this multiple times in the same week.

Thanks,
Hoo.

  • Like 2
  • Thanks 4
  • Agree 1

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

×