Jump to content
DiRT Rally 2.0 - New Player Guide Read more... ×

F1 2018 UDP Specification

Recommended Posts

Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 

Share this post


Link to post
Share on other sites
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
I'm receiving the correct AI names in career, and online I  receive "Player" everyone.
Wondering if I am doing something wrong.

Share this post


Link to post
Share on other sites
Son4R said:
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
I'm receiving the correct AI names in career, and online I  receive "Player" everyone.
Wondering if I am doing something wrong.
Do you have some code to show so that we can tell if there is an error? If you have a StackOverflow account, feel free to create a post there and link it here.

Share this post


Link to post
Share on other sites
Son4R said:
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
I'm receiving the correct AI names in career, and online I  receive "Player" everyone.
Wondering if I am doing something wrong.
Well, at least last year Hoo said that because of the privacy rules, they cannot push the player names to the UDP stream. I don't know if that has changed for this year.

Share this post


Link to post
Share on other sites
Why is broadcast mode blatantly broken in both F1 2017 and F1 2018?

Am I misunderstanding something? It's supposed to allow multiple apps to listen/connect to the UDP port. Never have gotten it to work.. There's a 3rd party program written specfically for this issue, and F1 2018 is still bugged? Mates... Fernando is faster than you.

Share this post


Link to post
Share on other sites
Son4R said:
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
I'm receiving the correct AI names in career, and online I  receive "Player" everyone.
Wondering if I am doing something wrong.
Well, at least last year Hoo said that because of the privacy rules, they cannot push the player names to the UDP stream. I don't know if that has changed for this year.
Yeah for PS4 it does transmit the name - just seems to replace the first 7 characters with 'Player[null]', and the spec says it's LAN names for ps4 online sessions

Share this post


Link to post
Share on other sites
Hi guys,
I'm trying to use m_gForceLongitudinal (Longitudinal G-Force component) data, capturing it from 2018 format Motion type packets, but getting multiple drop-outs to zero level as you can see on the screenshot attached. To compare, m_yaw (Yaw angle in radians) values coming in the same packets seem to be unbroken. Couldn't see such a problems with a Legacy telemetry format. Any suggestions?


Share this post


Link to post
Share on other sites

can someone please test if this still works, in legacy mode?

https://play.google.com/store/apps/details?id=b4a.f1display

i have users telling me its Buggy and "shifting" the data…

but i am not sure if they using it with the right gamesettings…

any idea how to avoid the app showing data from the "wrong" mode ?

is the first value of f1 2018 always the beginning of the header with m_packetFormat saying 2018?

could be a way to differentiate the modes..

Share this post


Link to post
Share on other sites
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
You're correct. I've done some changes to my code, and I now receive Player 37 (name is SonaR1337).
I seriously hope this isn't done intentionally like @LonelyRacer says, since this is the only way I can link users on my website to the data.

Share this post


Link to post
Share on other sites
sonder774 said:
Why is broadcast mode blatantly broken in both F1 2017 and F1 2018?

Am I misunderstanding something? It's supposed to allow multiple apps to listen/connect to the UDP port. Never have gotten it to work.. There's a 3rd party program written specfically for this issue, and F1 2018 is still bugged? Mates... Fernando is faster than you.

You are putting the blame at the wrong side. The game does proper UDP broadcasting. It's the receiving programs that are sloppy.

Receiving programs need to indicate to the operating system's network stack that the port they use for UDP reception may be reused by other programs, (i.e., that they don't claim the port on the computer for exclusive use). The way they should do that is to call ...

setsockopt(socket, SO_REUSEADDR, 1); 

... before executing bind(), assuming they are running on Windows. If they don't, bind()ing multiple sockets to the same UDP port will fail on their side, after the first program claims the port.

A good explanation on how this works can be found here: https://stackoverflow.com/questions/14388706.

You should really not be pointing fingers without an understanding of the technical issues.

EDIT: fixed stack overflow URL

Share this post


Link to post
Share on other sites
Does anyone else see really strange behavior while monitoring the stream of incoming UDP packets?

At the start of a session, I see two Event Start ("SSTA") packets, and at the end I see two Event Stop ("SSTO") packets. Also, I sometimes see short periods where alternating streams of UDP packets arrive with different sessionUID fields, and with different 'frameIndex' fields.

It looks to me as if there are multiple threads running inside the game that broadcast UDP info which are not properly terminated or synchronised. It's quite a mess.

Share this post


Link to post
Share on other sites
What is the total value that the ERS battery can store and harvest? Looking at the rules, the MGU-K can recover unto 2MJ/lap and the MGU-H is unlimited. What values do the steering wheels in your game use for max harvest and total energy?
I believe the max deployment per lap is 4MJ.

Share this post


Link to post
Share on other sites
Does anyone else see really strange behavior while monitoring the stream of incoming UDP packets?

At the start of a session, I see two Event Start ("SSTA") packets, and at the end I see two Event Stop ("SSTO") packets. Also, I sometimes see short periods where alternating streams of UDP packets arrive with different sessionUID fields, and with different 'frameIndex' fields.

It looks to me as if there are multiple threads running inside the game that broadcast UDP info which are not properly terminated or synchronised. It's quite a mess.
Please can you confirm what game mode you are running and whether you are using broadcast mode and we'll see if we can repeat the issue that you are seeing? Thanks.

Share this post


Link to post
Share on other sites

setsockopt(socket, SO_REUSEADDR, 1); 

... before executing bind(), assuming they are running on Windows. If they don't, bind()ing multiple sockets to the same UDP port will fail on their side, after the first program claims the port.

A good explanation on how this works can be found here: https://stackoverflow.com/questions/14388706.

You should really not be pointing fingers without an understanding of the technical issues.

The explanation link seems to be broken...

Share this post


Link to post
Share on other sites
sonder774 said:
Why is broadcast mode blatantly broken in both F1 2017 and F1 2018?

Am I misunderstanding something? It's supposed to allow multiple apps to listen/connect to the UDP port. Never have gotten it to work.. There's a 3rd party program written specfically for this issue, and F1 2018 is still bugged? Mates... Fernando is faster than you.
Broadcast mode transmits data to the subnet that the game is connected to. Any listening app on the same subnet should be able to read the data. It should not require a specific IP/port to work. There was a bug in the original 2017 UDP implementation where specifying an IP would stop the broadcast feature working correctly, but that has since been fixed.

Share this post


Link to post
Share on other sites
SimShaker said:
Hi guys,
I'm trying to use m_gForceLongitudinal (Longitudinal G-Force component) data, capturing it from 2018 format Motion type packets, but getting multiple drop-outs to zero level as you can see on the screenshot attached. To compare, m_yaw (Yaw angle in radians) values coming in the same packets seem to be unbroken. Couldn't see such a problems with a Legacy telemetry format. Any suggestions?

Does the frequency of the packet updates affect the results that you are seeing? If you have a similar graph for the 2017 format that gives different results then that would be very interesting to see.

Share this post


Link to post
Share on other sites
Hello guys,

i'm new to this but I want to play a little bit bit the data to make an app. Are there any good tutorials how you can start with it because I don't know what language you should use to read the data and convert it to the structure that is given.

Thanks in advance

Share this post


Link to post
Share on other sites
Hoo said:
SimShaker said:
Hi guys,
I'm trying to use m_gForceLongitudinal (Longitudinal G-Force component) data, capturing it from 2018 format Motion type packets, but getting multiple drop-outs to zero level as you can see on the screenshot attached. To compare, m_yaw (Yaw angle in radians) values coming in the same packets seem to be unbroken. Couldn't see such a problems with a Legacy telemetry format. Any suggestions?

Does the frequency of the packet updates affect the results that you are seeing? If you have a similar graph for the 2017 format that gives different results then that would be very interesting to see.
I tried 60 Hz and 20 Hz, couldn't see any difference. Currently 20Hz is set.
In 2017 telemetry format it looks different. There is a couple of  kind of drop-outs (I mean first two from the left), but their are not absolute zeros as that with 2018 format, just very small numbers. 

Share this post


Link to post
Share on other sites
Whats the difference between tyresWear and tyresDamage? Tyres damage shows 8%, 7% 11% and 10%. This is what I thought tyresWear was. Tyres wear just shows all values as 0%.

Share this post


Link to post
Share on other sites
Son4R said:
IJS84 said:
Is anyone else seeing an issue with the participants name packet in multiplayer lobbies?
I was testing it and it replaces the first 7 characters of the human players names with 'Player[null]'
So for example, we have a guy in our league called bluemosquito -  his name appears as Player_quito (where _ is the null character)
@Hoo 
You're correct. I've done some changes to my code, and I now receive Player 37 (name is SonaR1337).
I seriously hope this isn't done intentionally like @LonelyRacer says, since this is the only way I can link users on my website to the data.
@hoo could you take a look at this? Would like to know if this is intentionally or not, so I could start working around this.

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

×