"iRacing is a bunch of kludges all the way down. For the longest time the only way to race was as a solo driver. However, some of the biggest races in the world of real racing is endurance events where 3-4 people share a car over 24 hours. So iRacing added team races at some point. I've done a few things with data endpoints from iRacing, and it reveals a bit about how they did it.
Every driver has an ID. It's just an integer sequentially increasing every time a new person joins the service. Teams, however, are the opposite. Every time a new team is created they are assigned a negative ID, perpetually decreasing as new teams are created. Because of this, an entry into a racing session can be handled by way of a single database column for both drivers and teams. Keep in mind that a racing session is either a "driver session" or a "team session" - you can't have drivers and teams in the same session. You can, however, have teams with just one driver in them.
iRacing is a service that started development in 2004, using custom race simulation tech from ~2001, was released in 2008, and perpetually updated since then. The team is quite small, and has always been.
If there are any questions I have 6 years of experience of both racing and developing third-party tools for the service, and I'll gladly share some knowledge if questions arise."
Yeah, iRacing can be tons of fun and the level of realism is impressive. I live within walking distance of Circuit Gilles Villeneuve and have walked and biked the track more times than I can count and the the sim gets so many of the track details right.
Author here! I have no idea to be honest, I thought it was strange when I saw it in the Python version too. I'm still learning the API and it seems that
"iRacing’s telemetry comes in three variations, data written to an .ibt file 60 times a second, live data exposed to our telemetry API 60 times a second, and a session string in YAML format that contains more or less static information about the session. The YAML string is appended to the end of the .ibt file but only a small portion of that data is exposed to ATLAS."
Author here! Aside from Terminal.Gui, most of my GUI experience comes from SwiftUI on iOS and Mac. However, C# also has another cool terminal library called Sadconsole (https://sadconsole.com/) which I've used in the past to work on a Roguelike(https://markjames.dev/2020-05-21-making-a-roguelike-in-c-wit...). According to the developer, "SadConsole is an MonoGame 3.7-based game library that provides an engine to emulate old-school console and command prompt style graphics. One or more textures are used to represent the standard ascii character set. SadConsole allows you to create console instances which can be managed independently of each other. A console is made up of individual cells which can have a foreground, background, character, and a special effect applied to it."
"iRacing is a bunch of kludges all the way down. For the longest time the only way to race was as a solo driver. However, some of the biggest races in the world of real racing is endurance events where 3-4 people share a car over 24 hours. So iRacing added team races at some point. I've done a few things with data endpoints from iRacing, and it reveals a bit about how they did it. Every driver has an ID. It's just an integer sequentially increasing every time a new person joins the service. Teams, however, are the opposite. Every time a new team is created they are assigned a negative ID, perpetually decreasing as new teams are created. Because of this, an entry into a racing session can be handled by way of a single database column for both drivers and teams. Keep in mind that a racing session is either a "driver session" or a "team session" - you can't have drivers and teams in the same session. You can, however, have teams with just one driver in them.
iRacing is a service that started development in 2004, using custom race simulation tech from ~2001, was released in 2008, and perpetually updated since then. The team is quite small, and has always been.
If there are any questions I have 6 years of experience of both racing and developing third-party tools for the service, and I'll gladly share some knowledge if questions arise."