EASports WRC C++ datalogger
Posts Link to heading
Intro Link to heading
EASports WRC is a rally sim racing game developed by EA, its the successor of the Dirt Rally series and a pretty cool game to play As my day to day job is in automotive, I have a special interest in sim racing games. And since I’m an engineer, I have a special interest in data 😎
Luckily, EA released an API that allows the user to check data generated by the game via a UDP connection. After having the data available, we need to figure out a way to display it and to store it.
In the past, I used this dirt rally 2 datalogger developed by Philipp Erler in Python for the dirt rally game series (in my case I only used it for dirt rally 2).
For my use case I wanted it to do multiple things:
- See the data live
- Store the data for latter review
- Represent the data in meaning full widgets
Design Choices Link to heading
Before starting I had to choose the tools that I wanted to use to develop such a program. At the time, I found this pretty cool video from The Cherno about a framework his team build called Walnut built on top of ImGui. It seemed to fit quite well to my target and it was well documented. I wanted to store the data gathered in an ASAM MDF file, which is a standard file format defined by Association for Standardization of Automation and Measuring Systems, and there are some libraries for it written in C++ available online, however I was not able to make compile properly, so I shifted to use .Yaml files and Yaml cpp to store and read data.

Example Layout
The layout is fully customizable, which means you can chose what you’re seeing and have whatever layout you would like to see.
I will be writing posts about the progress here and will do an instructables in the near future so keep an eye on it.
Here are some of the windows available:
All signals display
The Stage status serves as a control panel it shows the current stage time, the distance until the stage end and has two buttons. Control PanelStore Run
button allows the user to store the current run into an YAML file. The Clear Run
button allows the user to clear the current data, in case you want a reset.
The vehicle position allow the user to have an Idea of where you are on the stage. At the end of a run it should look similar to the trace of the stage at the game menu.

Vehicle Position
If you like my projects please consider supporting my hobby by buying me a coffee☕ 😄