I've already blogged about how to receive data from Codemasters F1 2010/2011 (It also works with the Dirt series, same format at least :)). I haven't explained what I wanted this data for.
Being an avid sim racer I was on the lookout for ways to improve my driving style and car setup. Lap times alone are not very indicative because there's no indication where exactly I'm losing or gaining time when I make a change to my driving style (corner entry, acceleration, braking etc) or car setup. The only data I've got to go on is my lap time, and of course the less scientific "gut feel" of the car.
Way back in the 90's I played Microproses (Geoff Crammands) Grand Prix series. In the game itself existed a telemetry component that logged your laps and allowed you to view a number of different points of data from your car on a graph, such as a wheelspeen, car speed, brake and throttle pedal application, ride height and more. I used this information to determine the effect of my setup changes on lap time, and to see where around the track I was getting the biggest benefit (or suffering). F1 2011 is a great game but being marketed also at the console gamer and more casual market, it lacks the telemetry component. I also used an external programme written by a sim racing fan, F1PerfData, back in my GP2 days that was pretty good. I wanted something like that (or that) for F1 2011.
I found F1PerfView and it's data format. and after further investigation found that F1 2011 does export telemetry. My goal was to now convert that data from the F1 2011 format into something F1PerfView could use. On top of that I wanted an application that would run alongside F1 2011 and give me realtime feedback as I lapped the various circuits, returning data such as:
- Current Speed
- Current Lap time
- Fastest Lap Time
- Average Lap Time
- Difference in speed between my fastest lap and current lap at my current point on the track
- Different in time between my fastest lap and current lap at my current point on the track
I wanted this information so I could instantly see how a setup change or change to my driving style impacted on lap times, without having to exit F1 2011 and load up F1PerfView. In essence I wanted faster turn-around in setup changes.
This is where F1Speed comes in. It's designed to run concurrently (on another monitor preferrably) with F1 2011 and receive data from it, both logging laps for use in F1PerfView and giving real-time feedback.
- There are some other high-level goals of this app, mainly
- Log data to a server so people can download others' fastest laps for their own comparison and improvement
- Save fastest lap to disk for sharing with your friends or league teammate.
- Import a saved lap for comparisson.
- Save fastest laps for loading in at leater sessions.
To achieve this I've developed an application in C# 4.0 that does just this and I'm blogging about the decision I made in coming blog posts.