1. Do you need support for Assetto Corsa Competizione? Please use the proper forum below and ALWAYS zip and attach the WHOLE "Logs" folder in your c:\users\*youruser*\AppData\Local\AC2\Saved. The "AppData" folder is hidden by default, check "Hidden items" in your Windows view properties. If you report a crash, ALWAYS zip and attach the WHOLE "Crashes" folder in the same directory.
  2. FOR ASSETTO CORSA COMPETIZIONE: If you report issues with saved games, please always zip and attach your entire User/Documents/Assetto Corsa Competizione/Savegame folder!
  3. If your game executable is missing, please add your entire Steam directory to the exceptions in your antivirus software, then run a Steam integrity check or reinstall the game altogether.

Let's talk about broadcasting (programmer's thread)

Discussion in 'ACC General Discussions' started by Minolin, Dec 12, 2018.

  1. expor

    expor Gamer

    Thanks for the prompt reply.

    I would appreciate if this was communicated though. After the track grip level enum was introduced it was only mentioned that the grip level from shared memory would now be 0, because it was replaced by the enum. Also these values were still available after that patch. Cloud level is not available in Shared Memory, I can undersatnd the forecast and track status are sufficient for rain level and track wetness.

    Also the Broadcast API is versioned, so I find it very strange this is changed without a changelog, breaking existing applications.
  2. pankykapus

    pankykapus KS Dev Team Staff Member KS Dev Team

    It doesn't break anything, the output is just 0, the API itself hasn't changed (which was intentional). It is by design that the weather and grip values are no longer quantified, people (both players and broadcasters) should rely on visuals and the HUD widget/SM ranges.
    The UDP values remaining available after the shared memory update was the actual unintentional thing.
  3. expor

    expor Gamer

    Fair enough, except that when the grip level enum was announced only the surfaceGrip float value was referred to as obsolete (unless I'm mistaken) in the release notes. Making it explicit which existing values in the UDP API would also become 0 (I understand this was missed initially) would've been nice.
    Patch 1.7.4. notes:
    Appreciate the quick replies for clarification.
    pankykapus likes this.
  4. Fabio Pittol

    Fabio Pittol Gamer

  5. expor

    expor Gamer

    Still a question about the removed data from the Broadcast API. `clouds` was useful to indicate how sunny it is. With the new enum in SharedMemory we only know if it's dry, but that gives no indication on whether it's clear sky, half clouded, full clouded etc. The amount of water on the track was also useful (also to mimic race practice servers for leagues) and can be configured specifically on a server/SP as well. I'm still questioning wheter removall all the provided data made sense, as 'clouds' and 'trackwetness' are not contradicting the enum, it just adds more detail?
  6. Minolin

    Minolin Staff Member KS Dev Team

    That's the issue. Drivers were using overlay software connecting as spectator to the own client; thus being able to read out more information than other drivers have. Removing the values restores fairness, even though we lose information for broadcasters and commentators (which is why the numbers were in in the first place).
    To be fair, we have much more in the (broadcasting) UI in the meantime, so while a commentator is looking at the stream, he basically has what he needs. The rest is a case of "why we can't have nice things".
    Salvatore Amato and expor like this.
  7. expor

    expor Gamer

    Thanks for taking the time to reply. I'm using the api for live timing information for my endurance team, which is of course not the actual intention of the broadcast api. I guess that's exactly the use case you described :). I understand the reasoning, it was just nice to have the extra information.

    I would still really appreciate it if we could have sector times filled in for the current lap (they're just empty now), OR just the gap times, in the api. This would also be interesting for the broadcasting aspect, and the game itself also has this information (gaps are updates per sector already).
    Last edited: Apr 3, 2021
    Ricoow likes this.
  8. Doug Duthie

    Doug Duthie Simracer

    @Minolin - Are there any plans to fix up the broadcasting events so that penalties are published? We get when penalties are cleared, but not when they occur. This would be especially useful for post race penalties as I've currently got no way of adjusting for these
    expor, Ricoow and RadstaR like this.
  9. Mamandurrio

    Mamandurrio Rookie

    Cirith Ungol likes this.
  10. marc.dieters

    marc.dieters Rookie

    Hello, I've just dicovered this and find it very cool stuff. But I have one question, how do the worldposx and worldposy values represent the position on track ?
    I'm trying to figure out how these values can be altered so driver posititions can be shown on a track map.

    Thanks in advance !
  11. expor

    expor Gamer

    I never used worldpos, but I would suggest using spline position instead. It represents a value between 0.0 and 1.0 which you can scale to the track length in meters.
  12. marc.dieters

    marc.dieters Rookie

    Wow that's great. I'm gonna try that. Thanks a lot !
  13. Doug Duthie

    Doug Duthie Simracer

    This is a bit of a long shot, but I've reported an issue at https://www.assettocorsa.net/forum/...ssages-supplied-on-broadcast-interface.69162/

    Basically, I've got a user running ACC Results Companion were periodically nothing is received on the broadcast connection after the connection is made and the registration result received. On subsequent sessions, where I get fresh connections, it seems to resolve itself.

    The AC2 logs report TCP errors (LogKsOnlineServices: Error: OnMessageTCP: ACONP_SESSION_ACCEPTED gave a different session ID 5D4DEC5F49974F379BF0B8453953A2AD vs CurrentSessionGuid 5D4DEC5F4F37499745B8F09BADA25339) but I think these might be issues getting the player ratings, rather than reporting broadcast issues.

    My broadcast code is based on the Kunos BroadcastingClient sample, but with the fix that someone posted here to prevent a resource leak on closing connections.

    Has anyone seen anything similar or got any hints? Has anyone seen broadcast issues when there are issues with player ratings? I don't know if this is an issue with system resources, something with ACC or something I am causing with the way I'm opening the broadcast connections

  14. You are now justice, protector of the frails. :)
  15. jkchen

    jkchen Rookie

    (小加太) Upd 杜布德 · 德金 · 德 · 普特 · 德 · 德 · 普特
  16. jkchen

    jkchen Rookie

    Anyone provide c++ UPD document or source code example, thanks a lot, I really can't find it!
  17. Doug Duthie

    Doug Duthie Simracer

    This is going to sound like a really dumb question, but how do I identify the driver for the player?

    I know the carId and raceNumber from shared memory so can identify the car. If this is a multiplayer team, how do I know which driver is the player? I was previously matching the driver name (from Customs\Drivers\driver1.json) to match the driver from the DriverViewModel. However, this doesn't work in all cases. If the player has at any time changed his First/Last/Short name in ACC, his old name will still be reported over the broadcast interface so I can't match. (I've changed my driver name twice...the first as a test then changed back. It took 6 months for the change to be reflected in the online events...possibly after the stats were rebuilt)

    Shared Memory uses the virtual driver name in SP or the Account name in MP so I can't use that (as that might not match the driver name).

    The seasonEntity file works for SP (where playerID > 0 in events.carset.cars.drivers.info) however this isn't populated for MP

  18. expor

    expor Gamer

    I'm not sure you can do more than that. I only use the player car (so I get the id from shared memory and match that with broadcast data), but from what I know you can only get the current driver index from the broadcast API and there's no concrete information as to what the index of the player is in shared memory. Only thing left is name matching but I wasn't aware of the limitations you mentioned. Hopefuly someone else has more information but I don't remember running into anything useful on this topic over the last year of working on my app :(.
    Doug Duthie likes this.
  19. Doug Duthie

    Doug Duthie Simracer

    Ah - bit more info. It looks to be on a server with a fixed entry list, so the driver name on the server (simracing.gp or whatever) overrides the driver name through the ACC UI.

    If any of the Kunos guys pop by, it would be nice to have some indicator either in the Broadcast API or in shared memory of the driver index of the player

  20. Iko Rein

    Iko Rein Gamer


    I built into my tool support for driver swaps (up to total 5 drivers) and at the same time had to work bit around this stuff.

    Just looking at the specs, I first I thought that I would use the currentDriverIndex in the CarEntryList. But it seems, it wasn't updated or the way my tool works it wasn't updating.

    So I looked more and found out, that in the RealTimeCarUpdate packet the DriverIndex actually gets updated, when the driver is swapped. So that would be most likely for you too a way to see, which driver is active. I ended up building system, where I also look at the driver name (from the incoming SHMEM data for all drivers) and then check that against the Driver names from the CarEntryList to ensure, I am taking in data from the right driver. Not beautiful, but seems to work. Don't know how that extra check works on server with preset names, though.

Similar Threads
Forum Title Date
ACC Physics Let's talk about spins... Apr 2, 2021
ACC PS4 - XB1 General Discussions Let's talk multiplayer/online servers Jul 11, 2020
ACC General Discussions Let's talk about broadcasting (user's thread) Dec 12, 2018
Console Lounge Let's talk vote to kick Mar 18, 2017
Console Lounge Quick race weekend (let's talk abou it Vol.1) Feb 24, 2017
Chit Chat Room Let's talk Lotus 98T Feb 17, 2017
Console Lounge Porsche Cayman GT4 - Let's talk gearing Jan 16, 2017
Console Lounge Let's talk about rage quitters... Dec 9, 2016
Chit Chat Room 935/78 - Let's talk setup and driving Oct 30, 2016
Console Lounge Let's talk about braking Oct 6, 2016
Suggestions Let's talk weather (I am not asking for rain). Aug 15, 2016
Chit Chat Room Let's talk wheels...again. why not? Aug 27, 2014
ACC PS4 - XB1 General Discussions Let's do something, this is going to get ugly...(Servers) Aug 3, 2020
ACC General Discussions Let's get acquainted? Nov 28, 2019
ACC General Discussions POLL! Let's buy this game again every year to support Assetto Corsa guys! Jul 20, 2019

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice