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 2017 D-Box and UDP Output Specification

Recommended Posts

Is there a way to provide Engine RPM in % for LED RPM light arrays?

I use SimDash with both a DLC-247 and ProRace2 LED displays but, have to assign actual RPM values for each LED and make custom profiles for each car in Dirt4. With all other titles, RPM% automatically provides relevant RPM values for any car using a single SimDash profile.

Share this post


Link to post
Share on other sites
I don't understand the driver ID logic. What logic? Exactly.
We don't remove or replace the driver IDs when we get new drivers each year to ensure that legacy apps still provide the correct info. Unfortunately, it does seem a little disorganised now!

Share this post


Link to post
Share on other sites
mantazzo said:
float m_vehicleFIAFlags; // -1 = invalid/unknown, 0 = none, 1 = green, 2 = blue, 3 = yellow, 4 = red

Red Flags back in game confirmed? (unless it was same in 2016)

And also one more thing...

byte  m_fuel_mix;                 // fuel mix - 0 = lean, 1 = standard, 2 = rich, 3 = max
New fuel mode, or just Time Trial mode? Just wondering.

Red flags was a legacy feature.

Max fuel mode is used in qualifying only.

Share this post


Link to post
Share on other sites
@Hoo - will I get a notification automatically when the next beta starts so i can test any changes to the api? Do you happen to know if the next beta will have other games modes available (basically anything with multiple players) so i can test the participants stuff?

Share this post


Link to post
Share on other sites
bax said:
Some question about struct CarUDPData, since my field of interest is the live coverage overlay

1) what is exactly this parameter?
byte  m_trackPosition;     // track positions of vehicle
is it similar to float m_car_position; // car race position ?
If not... I can calculate the race car position using m_lapDistance & m_currentLapNum but ... but wow :#
I took m_trackPosition to mean race position, since its a byte. Car position on the track is m_WorldPosition[]
@bax  - Sorry, these are actually the same thing. We should probably rename them to keep it consistent.

Share this post


Link to post
Share on other sites
We usually send out emails prior to beta re-activation. This is roughly at 3-week intervals until we ship (so will be live again on Tuesday).

Share this post


Link to post
Share on other sites
To summarise some of the above info, we've made the following changes already in our latest 2017 code:
  • Pit limiter speed is now shown in mph. If anyone is converting into km/h then this will need updating.
  • Packing is now enabled. I've updated the UDP info on the first page to show this.
I've got the following items on the backlog for further discussion:
  • Add support for showing penalties
  • Add support for showing car setups
  • Add support for showing revs as a % of max revs
  • Add player names. Unfortunately, sending out any unencrytped personal information from the game is not permitted. We are unable to do this directly from the UDP stream in this way, so this might need some more thought to give the desired result.
  • Continue running telemetry data after the race ends. Presumably this is for recording output for MP races. This is difficult as the output stream is also used by steering wheels and motion platforms and the intention is always to stop outputting to them when the player is no longer driving the car. We need to consider this one more carefully to see if both uses for the data can be accommodated.
  • EDIT: Option for a unique session ID to help correlate telemetry results


Share this post


Link to post
Share on other sites
Hoo said:
To summarise some of the above info, we've made the following changes already in our latest 2017 code:
  • Pit limiter speed is now shown in mph. If anyone is converting into km/h then this will need updating.
  • Packing is now enabled. I've updated the UDP info on the first page to show this.
I've got the following items on the backlog for further discussion:
  • Add support for showing penalties
  • Add support for showing car setups
  • Add support for showing revs as a % of max revs
  • Add player names. Unfortunately, sending out any unencrytped personal information from the game is not permitted. We are unable to do this directly from the UDP stream in this way, so this might need some more thought to give the desired result.
  • Continue running telemetry data after the race ends. Presumably this is for recording output for MP races. This is difficult as the output stream is also used by steering wheels and motion platforms and the intention is always to stop outputting to them when the player is no longer driving the car. We need to consider this one more carefully to see if both uses for the data can be accommodated.


Re player names, i wasn't asking for anything confidential, just the public nicknames that are displayed in multiplayer lobbies and in multiplayer races. 

Re the telemetry data continuing past the end of the race, all we really need is the timing/session information continuing to tick over, all the player vehicle telemetry that would be used by the motion sims could stop updating once the finish line is crossed. It would be handy for it to start streaming just before the race start (when the camera is doing the track preview) and continue until the results screen when all players have finished. Having a "session state" value indicating the changes will make it much easier to detect session changes, session restarts etc. So there could be a couple of session states, "waiting for race to start" for prior to the start lights going out, "race started" during the race, "waiting for race finish" for after player has finished but is waiting for other players to finish, and "race finished" once everyone has finished.

Share this post


Link to post
Share on other sites
We'll look into the additional player telemetry to see if we can keep that running. 

Regarding names, we are not permitted (by the console manufacturers) to broadcast the names as they appear on a console through unencrypted data streams. We'll have to do some more investigation to see if there is a way to support anything like this in the future.

Share this post


Link to post
Share on other sites
Hoo said:
We'll look into the additional player telemetry to see if we can keep that running. 

Regarding names, we are not permitted (by the console manufacturers) to broadcast the names as they appear on a console through unencrypted data streams. We'll have to do some more investigation to see if there is a way to support anything like this in the future.
Ok thanks. Re transmitting the in game nicknames, you must have a different agreement as other racing simulator providers on console are doing this in their telemetry feeds which are unencrypted.

Share this post


Link to post
Share on other sites
Hoo said:
We'll look into the additional player telemetry to see if we can keep that running. 

Regarding names, we are not permitted (by the console manufacturers) to broadcast the names as they appear on a console through unencrypted data streams. We'll have to do some more investigation to see if there is a way to support anything like this in the future.
Ok thanks. Re transmitting the in game nicknames, you must have a different agreement as other racing simulator providers on console are doing this in their telemetry feeds which are unencrypted.
i wonder if their restriction relates to sending any information regarding the XB1/PS4 user account on the console, i could understand that. I wouldnt have thought there would be any restriction on sending a custom driver name that the user has been asked to specify for use in the game.

Share this post


Link to post
Share on other sites
If the custom player name is deemed to be personally identifiable information then there are also rules about handling that properly. From your perspective, it might become difficult to match up user data if people are able to create and change custom player names freely. Less of an issue for a single event, but could rule out storing of longer-term telemetry info per player.

I'll ask the team to double-check the standards and see what might be possible.

Share this post


Link to post
Share on other sites
Hoo said:
If the custom player name is deemed to be personally identifiable information then there are also rules about handling that properly. From your perspective, it might become difficult to match up user data if people are able to create and change custom player names freely. Less of an issue for a single event, but could rule out storing of longer-term telemetry info per player.

I'll ask the team to double-check the standards and see what might be possible.
for what i am doing, it wont be a problem if players change names as each players data gets tied to their own app account. Its just for display purposes in the online portal when looking at race results. Users will be able to add their friends (via their portal logins, not game names) but having the names allows me to show a results table with the in game competitor names that were used at the time.

Actually one thing i forgot to ask (not sure if i mentioned it previously in the F1 2016 DBOX forum), but it would be great if there was a globally unique session ID available for any multiplayer races as this would make it really simple to link telemetry data recorded from different players to the same session.

Share this post


Link to post
Share on other sites
Yes, you had mentioned that. It is on the list.

Share this post


Link to post
Share on other sites
This may be the dumbest question ever but is their some UDP telemetry software I can use on PC to read back telemetry from my beta on Xbox? @Hoo

Share this post


Link to post
Share on other sites
kingmjj said:
This may be the dumbest question ever but is their some UDP telemetry software I can use on PC to read back telemetry from my beta on Xbox? @Hoo
This user-made app is still working well on the beta http://www.racedepartment.com/downloads/telemetry-application.11617/ just adjust your Xbox to send UDP data to PC IP (works best with router). I use it occasionally, still works well (although not adjusted for the beta, but I did notify the developer about this thread).

Share this post


Link to post
Share on other sites
@Hoo - Its been hard to find any multiplayer sessions, I've only managed to come across one so far which only had one other player. Either way i recorded the session telemetry stream so i could review it later. I have noticed that the timing fields are a little bit out of sync for the other players, the sector/lap/lapDist change doesn't line up with the sector, last lap time, best lap time, current lap time change. For example, the opponent crosses the start finish line and the sector number will reset to 0, the lap number will increment by one, but the other timing fields will continue to have data from the previous sector/lap (including the running lap time exceeding the actual lap time) for about 10 packets or so. This only seems to occur for the data for the other opponents in the session. The actual players telemetry data updates slightly opposite, it seems the sector and lap number update are a packet behind the rest of the timing data for the player.

Example screenshot of the player data in excel
https://1drv.ms/i/s!ApGj0SbKlZGjgy2p9xsbEauBUpNV

Example screenshot of the opponent data in excel
https://1drv.ms/i/s!ApGj0SbKlZGjgy5GWsgUIWQSFSAy

Here is the full XLS dump of the CarUDPData for the player (P1) and the opponent (P2)
https://1drv.ms/x/s!ApGj0SbKlZGjgy8I2ktv7G1tXxmn

The lap/sector/lapDist fields have been highlighted yellow, the other timing fields highlighted light brown. You can see that the sector/lap/lapDist changes occur out of sync for these between the two groups of data. Compare the player (out by 1 packet) with the opponent data (out by 10 packets).

They should really update simultaneously, otherwise it makes processing the telemetry rather difficult as one would usually process timing changes on the sector boundaries.

Share this post


Link to post
Share on other sites
Another issue i noticed is that the CarUDPData "BestLapTime" can get set to an invalid lap's time. Ideally this should only represent the best valid lap completed, it means it will always contain the players fastest valid lap time for the session which is something that we need to know for qualifying.

Share this post


Link to post
Share on other sites
@cjorgens79
  • Hard to find multiplayer sessions. Try checking out the front page of the beta forum to see when the beta testers are arranging games. We are also hoping to increase the number of beta testers to encourage more games. If that doesn't work then we've got some other options that we could explore. 
  • Player info for lap and sector time arrives a packet late. This looks like a a one frame delay between some internal systems which handle progress and those which communicate the information to other systems. Is the timing of this critical to what you are doing?
  • Info for other players arrives 10 packets late. The network handles / predicts lap progress to keep the game in sync, whereas information about lap and sector times has to transmitted by the local machine so will be delayed by latency between to the two machines. I think this is what's happening here. I suspect if you looked at this in an offline race with AI that you'll get results similar to player's own lap info. If this presents a significant issue then we can look at the data we send and when we send it to try at group it together. 

Share this post


Link to post
Share on other sites
@Hoo
we are working on a similar system, and for us it's important that data are congruent: i.e. having related data changing at the same time. For us it's ok having some latency, but having related data changing together would be important.

Share this post


Link to post
Share on other sites
I'll ask the team to look into this and see what the impact would be.

Share this post


Link to post
Share on other sites
@Hoo
Yes it is important to have the data in sync both for the player and opponents. I think using the real opponent data only in the telemetry would be best, rather than the predictive data. In the data i exported in the earlier post, there is a point in that race where the opponent was warping back and forth across a good hundred or so meter section of track, if this happened to occur over a sector boundary it would have made dealing with it very difficult. So true opponent data is what would be best IMO, even if it means its a little out of date in the event of network sync iss@Hoondog

Re the MP sessions, i think some of it may be due to timezone, im in Perth, Western Australia (+8GMT), so the times i am able to work on this aren't usually when a lot of EU/US players are on, but ill make do. I may be able to get some of the other beta testers to record some MP sessions for me with my recording tool if necessary.

Share this post


Link to post
Share on other sites
There kingmjj said:
This may be the dumbest question ever but is their some UDP telemetry software I can use on PC to read back telemetry from my beta on Xbox?
There might be just such a thing. Check out this post: http://forums.codemasters.com/discussion/comment/278327#Comment_278327
Not sure however if there is a possibility to read back telemetry data from the XB1. Anyway, it's a step forward being able to use pc tools and apps in combination with the consoles.

Share this post


Link to post
Share on other sites
@cjorgens79 in the app in F1 2017, we will need to do all the process of the link the app with the game or it will be on fly like Project Cars is???
It is a little bit tedious because yo need first of all link them before do any other things, so I do not usually use it in F1 2016. I always forget and when I remember I don't want to exit to the main menu... moreover, the app do not give you much relevant information...

Share this post


Link to post
Share on other sites
JuanCarMR said:
@cjorgens79 in the app in F1 2017, we will need to do all the process of the link the app with the game or it will be on fly like Project Cars is???
It is a little bit tedious because yo need first of all link them before do any other things, so I do not usually use it in F1 2016. I always forget and when I remember I don't want to exit to the main menu... moreover, the app do not give you much relevant information...
As far as I know the UDP telemetry settings in F1 2017 are supposed to persist now between restarts on the consoles, however i don't have a console myself to confirm this but we were told this was fixed.

The new api has alot more information, so it will have pretty much everything (+ some extras) that pCars Dash has for project cars. 

Share this post


Link to post
Share on other sites

×