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. Do not post "I have the same issue" in an existing thread with a game crash, always open your own thread. Do not PM developers and staff members for personal troubleshooting and support.
  2. As part of our continuous maintenance and improvements to Assetto Corsa Competizione we will be releasing small updates on a regular basis during the esports season which might not go through the usual announcement process detailing the changes until a later version update where these changes will be listed retrospectively.
  3. If ACC doesn't start with an error or the executable is missing, please add your entire Steam directory to the exceptions in your antivirus software, run a Steam integrity check or reinstall the game altogether. Make sure you add the User/Documents/Assetto Corsa Competizione folder to your antivirus/Defender exceptions and exclude it from any file sharing app (GDrive, OneDrive or Dropbox)! The Corsair iCue software is also known to conflict with Input Device initialization, if the game does not start up and you have such devices, please try disabling the iCue software and try again. [file:unknown] [line: 95] secure crt: invalid error is a sign of antivirus interference, while [Pak chunk signing mismatch on chunk] indicates a corrupted installation that requires game file verification.
  4. When reporting an issue with saved games, please always zip and attach your entire User/Documents/Assetto Corsa Competizione/Savegame folder, along with the logs and the crash folder (when reporting related to a crash).

About that maybe-server-api

Discussion in 'Chit Chat Room' started by Minolin, Jun 11, 2015.

  1. f_deutsch

    f_deutsch Hardcore Simmer

    Here we go, on the middle of an update deploy on a staging enviroment :confused:
     
  2. Thanks @Minolin - this is great!

    Just took a quick look. It looks well designed from the first glance! It came to my mind that it would be cool if we'd have the possibility to:

    1. kick players
    2. ban players
    3. send players to pits (this would especially be useful to warn drivers to behave without immediately kicking them :) )

    [I'm just wondering if there'd be a way to have a centralized wish list for the API making it easy for @Lord Kunos to check. I'm sure he won't be able to spend the time reading through all the threads...]
     
  3. Minolin

    Minolin Staff Member KS Dev Team

    My thoughts, including kick/ban/pit. Kick/ban should be easy because the server should do the work anyway; to pits might be a bit more work but surely doable. But your addition to 3. is pretty good, really. Maybe worth more than directly kicking.
    But I think we'll have to wait to the first wishlist-round for that.

    The Lord said something similar. I think this time we'll have more luck with the wishlist thread. Tbh. I hope for a server-plugin section in the forum, hopefully there will be a number of plugin-threads as well.
    Edit: But of course I can start out right here and summarize potential ideas into the front post
     
  4. f_deutsch

    f_deutsch Hardcore Simmer

    I would add to apply a pitstop penalty on demand to a specific driver, going from a stop/go to a n seconds parked on box.
     
  5. f_deutsch

    f_deutsch Hardcore Simmer

    Oh boy.

    Project is for Visual Studio 2013. I have Visual Studio 2010. Is there a way to get a version compatible with VS 2010? Is the VS 2015 community free able to load the project?
     
  6. Minolin

    Minolin Staff Member KS Dev Team

    [Edit: missread the question. Yes, the community is equal to the professional, you're just restricted in the nonprofessional usage]

    Today should be the release, but when I last checked the Release Candidate download was still active.
    You can

    - try again for 2015 community
    - use RC (I currently do)
    - just make a new 2010 solution and insert both files (not that much)
     
  7. f_deutsch

    f_deutsch Hardcore Simmer

    Thanks @Minolin.

    Downloaded VS 2015 community and I could load the project.
     
  8. f_deutsch

    f_deutsch Hardcore Simmer

    Should not we require a guid per session for all events? I am thinking in keeping event records associated to a particular session, being it practice, qual, race.

    Have you guys thought from an object model perspective what we would be able to fulfill? Thinking about the different objects, like a session object associated to the drivers participating on it, the drivers events, etc. If we would get all required information to build a complete functional data model.

    Not sure if I am explained myself on this.
     
  9. bigbawmcgraw

    bigbawmcgraw Alien

    I'm sure he said something about not being able to change the position of the car. I understood that to mean it wouldn't be possible to move a car to the pits.
    It would be good if we could kick OR ban independent of BLACKLIST_MODE status but again not sure if that will be possible.

    A wishlist thread would be useful to you guys.
     
  10. afaik atm it's not possible to know if a car is in the pit - i remeber hearing it in one of the previous stream, but Stefano said he can maybe add this feature later into this year, when he will work on sp pitstops; so, i don't think it's possible, at least now, sadly :(

    btw i opened the example solution, and me too found it very interesting and, as far as i can tell with my limited knowledge (i've stayed at the margin of the discussion, because i probably can't contribute that much, honestly speaking :D) i agree that seems to be well written
     
  11. Minolin

    Minolin Staff Member KS Dev Team

    Vastly out of context, but maybe somebody is more has actually more experience in datagramming. Actually I'm using high-level stuff like WCF for years now, and the years before I always worked with pretty explicit string messages (like Key=value|NextKey=value2). So my low-level knowledge is quite limited.

    In the sample plugin we see a design where the first byte defines what comes next, and interpret the bytes exactly that way. We either read fixed-length (next n byte(s)) or a string (with a length info-byte before).

    How the **** could a plugin (or the server) detect that a message is understood painfully wrong? This could work then the binary data just can't be interpreted as the expected datatype, but this isn't very reliable.
    Example: I accidentially fed the Lord's plugin with a message of ACSP_CAR_UPDATE + "Hi plugin!"; those are the sucessfully parsed values (=this did the plugin understand as a valid CAR_UPDATE-report):
    upload_2015-7-21_12-36-14.png

    How would you detect such a missusage, are there best practises or common senses?
    Disclaimer: I'm pretty sure the concept as-is is pretty good and looks very efficient. I just have no idea how to get this a bit more failsafe.
     
  12. nonnex

    nonnex Alien

    Very pragmatic how I am, I would do:

    - definition of the structs and checking datatypes as first granulation,
    - then validy of content by regex where possible.
     
    Last edited: Jul 21, 2015
  13. Ben Lee

    Ben Lee Alien

    On the cars being detected in pitlane issue, how did wally's drive through penalty app detect the car was in the pits?
     
  14. Minolin

    Minolin Staff Member KS Dev Team

    Datatyping is implicitly done but not really helpful. Binary representation of datatypes are very dense. You can read every byte as double or int or unsingned int, always. Strings can fail sometimes, where I have no idea how UTF32 works.
    But yes, a boundary check of an incoming value is probably the way to go. We can tell if a RPM value is sensible, same for car IDs or whatever. The vectors might be more interesting, but if the other values are plausible I had a good feeling about it.

    Regex is string only, is it?

    Uh. This could lead to a situation that we tax our resources by 97% XML computation and 3% for the actual work ^^ Na, I like this binary stuff, doesn't look like it can be done much more efficient.
    But no, in fact I don't like binary stuff and streamreaders personally, this feels like beeing back in the 90s and looping with std::iterators.

    Edit:
    Just thought about the "we can tell if a RPM value is sensible"... What if they suddenly come up with a Jet engine? :D
     
    Last edited: Jul 21, 2015
  15. nonnex

    nonnex Alien

    ah ok, missed the binary aspect, doh.

    anyway rudimentry datatype checks could be done and (maybe) additional to it some plausibility settings.

    For example RPM (int) 0 - 20000
     
    Minolin likes this.
  16. maybe @WallyM can step in and tell us if there's a way to check if a car is in the pitlane :)
     
  17. Minolin

    Minolin Staff Member KS Dev Team

    I'm pretty sure that PLP just annouces the penalty, but doesn't detect if it has been executed.
    This could be achieved by boudary-boxing the pitlane and check if a driver entered this, but needs to be noted for every ****ing track. Of course this would also be done on the server, probably with better execution (kick/block/disqualify/whisper), and you wouldn't need all the clients have installed an app voluntarily
     
  18. nonnex

    nonnex Alien

    Cant it be read out from the track data?
    AC_PIT_0 to the cube named AC_PIT_XX for pitlane
     
  19. WallyM

    WallyM Alien

    The PLP app does detect if you've taken your penalty. It looks for the pit limiter being on, which is reported to the python app.
     
    Alessandro Greghi likes this.
  20. Minolin

    Minolin Staff Member KS Dev Team

    Haha what a great hack. Nice one :)
    But unfortunately this means you cannot simply convert PLP to a plugin :(
     

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