.rcd files and virtual drivers...sorta works, but not quite.

Discussion in 'Technical & Support' started by daltontr, Jan 21, 2019.

  1. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    I had the pleasure of getting up close and personal with the IMSA LMP3 Prototype Challenge cars at VIR. So, when the rF2 LMP3 Norma was released, I immediately started planning to replicate the series. What seemed to be the best option, was to create virtual drivers and for the most part it worked as planned, as I was able to create custom skins and talent files.

    However, after several weeks of testing, I still can't seem to get the .rcd (talent) files to work properly. The names and skins show up as they should, but the "talent" is randomly placed in each session...unless...I click the finish session button.

    For example, I created 22 drivers and divided them up into three very distinct talent groups. 8 Gold drivers, 8 Silver drivers and 5 Bronze drivers. The gold drivers had a qualifying speed of 95, silver drivers 55, and bronze drivers 15. If I click finish session right after going to qualify, all the drivers would line up in a logic manner. First all the gold drivers, then silver and bronze. This works every single time I click the finish session button.

    However, if I accelerated the session or simply allowed the session to progress on it's own, the results were completely random. Again, the skins and driver names were correct, but bronze drivers would be on the pole with silver and gold drivers dispersed randomly. It doesn't make any sense...unless the "talent portion" of the virtual driver files is being ignored during a normal session.

    Of course, this totally defeats the purpose of what I'm trying to do and it's altogether rather discouraging, because if the files weren't encrypted, this could easily be rectified.

    Anyway, I'm about to throw in the towel on this little project, but maybe I'm missing something or looking past the intuitively obvious. What am I doing wrong and/or is there another way to accomplish this?
     
    philmcqueen likes this.
  2. bhendrik

    bhendrik Registered

    Joined:
    Mar 22, 2014
    Messages:
    205
    Likes Received:
    79
    Hmm strange,

    What kind of real road do you use. I use natural progression. Works fine. Wich track do you run? Is the outcome wrong on each track?
    Can you post a screenshot of your rcd file? Have you set limiter to 0 ?
     
  3. fsuarez79

    fsuarez79 Registered

    Joined:
    Nov 23, 2016
    Messages:
    544
    Likes Received:
    582
    Make sure you don't have a "Classes =" line in your rcd files, otherwise talent won't work.
     
    Damian Baldi likes this.
  4. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    Natural progression...hmm...that's interesting. It's not something I would have considered, but I did have it set at 15X for all three sessions. I'll set to normal and test it.

    Limiter is set to 0

    Here is a portion of the game options in the player.JSON file.
    "Game Options":{
    "AI Aggression":0.2952,
    "AI Brake_Grip Usage":0.98,
    "AI Brake_Grip Usage#":"Fraction of theoretical brake grip that AI attempt to use (can be overrode in HDV)",
    "AI Brake_Power Usage":0.98,
    "AI Brake_Power Usage#":"Fraction of theoretical brake power that AI attempt to use (can be overrode in HDV)",
    "AI Calibrate Sample Size":2,
    "AI Calibrate Sample Size#":"When AI calibration is set to 2, this is the number of trials the AI should run while testing each parameter. bigger # == larger file size of saved data",
    "AI Corner_Grip Usage":0.99,
    "AI Corner_Grip Usage#":"Fraction of theoretical cornering grip that AI attempt to use (can be overrode in HDV)",
    "AI Formation by Position":false,
    "AI Formation by Position#":"If true, AI will line up for yellow or formation laps by fixed position behind the pace car, if false they will line up relative to specific car they should be following",
    "AI Fuel Mult":0.99,
    "AI Fuel Mult#":"Additional fuel multiplier for AIs because of their driving style",
    "AI Limiter":0,
    "AI Limiter#":"Range: 0.0 (no limiting) - 1.0 (limiting used to make racing closer but also make more driver differences on flat-out tracks)",
    "AI Logic Override":0,
    "AI Logic Override#":"use bitfields to disable certain AI behaviors. 1= blocking line, 2 = flexible superspeedway driving line",
    "AI Mistakes":0,
    "AI Mistakes#":"a range of (intentional) AI mistakes from 0.0 (none) to 1.0 (sometimes). Anything above 1.0 multiplies the frequency",
    "AI Power Calibration":7,
    "AI Power Calibration#":"Adjustments with AI strength (0=none, or add the following: 1=power, 2=gearing, 4=fuel)",
    "Active Sleep Time":-1,
    "Active Sleep Time#":"ms to sleep each loop if the game is the active app (-1 to disable). Consider setting to 1 or more if you are running a dedicated server on the same machine.",
    "Auto Line Smoothing":1,
    "Auto Line Smoothing#":"bit field where 1 = fastest line, 2 = left, 4 = right, and so on; add up each path's value you want to smooth for this parameter; note this causes multiplayer join lag!",
    "Auto Skip Garaged Vehicles":false,
    "Auto Skip Garaged Vehicles#":"If 1, vehicles in garage stalls will be skipped when cycling cameras. Set this value to 0 to see all vehicles; the left shift key can be held while cycling to dynamically suppend auto skipping.",
    "Auto-change Opponent List":false,
    "Auto-change Opponent List#":"whether to change the single-player allowed vehicle filter when player changes vehicles",
    "Autocalibrate AI Mode":0,
    "Autocalibrate AI Mode#":"When in a test day with 1 AI, AI will attempt to perfect his driving line, and save his knowledge for future use",



    Below are samples of the three driver categories. I manually opened each one with the in-game editor, hence the decimal places, but you can see there is a very dramatic difference between each category.

    ---GOLD Driver--------------------------------------------------------------------------------------
    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Austin McCusker
    {
    Team = Forty 7 Motorsports - (G)
    Component = Norma_M30-LMP3_2017
    Skin = altmccusker.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #047
    Number = 047
    Aggression = 50.00
    Speed = 94.79
    QualifySpeed = 94.79
    WetSpeed = 84.90
    StartSkill = 94.79
    Crash = 2.08
    CompletedLaps = 95.00
    MinRacingSkill = 94.79
    Composure = 94.79
    }
    }

    ---SILVER Driver--------------------------------------------------------------------------------------
    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Kyle Masson
    {
    Team = Performance Tech - (S)
    Component = Norma_M30-LMP3_2017
    Skin = altmasson.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #019
    Number = 019
    Aggression = 34.90
    Speed = 69.79
    QualifySpeed = 34.90
    WetSpeed = 59.90
    StartSkill = 80.21
    Crash = 3.13
    CompletedLaps = 95.00
    MinRacingSkill = 69.79
    Composure = 69.79
    }
    }

    ---BRONZE Driver--------------------------------------------------------------------------------------
    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Paul LaHaye
    {
    Team = ONE Motorsports - (B)
    Component = Norma_M30-LMP3_2017
    Skin = altlahaye.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #086
    Number = 086
    Aggression = 9.90
    Speed = 50.00
    QualifySpeed = 9.90
    WetSpeed = 40.10
    StartSkill = 50.00
    Crash = 4.17
    CompletedLaps = 95.00
    MinRacingSkill = 50.00
    Composure = 50.00
    }
    }
     
  5. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    Here are some screen grabs to further clarify what I'm seeing. The first picture (GRAB_001.jpg) is the practice session settings, the second is a practice session after twenty minutes (GRAB_002.jpg) and the third is by clicking the finish session button (GRAB_003.jpg). If you look at the team name, the letter inside the parenthesis is the drivers category designation. (G) = Gold, (S) = Silver, and (B) = Bronze.

    In the first practice session the drivers are pretty much all over the place and the lap times are ridiculously close. It almost appears like they are all using the same .rcd file...weird.

    Anyway, there is not a single Gold driver listed in the top ten and the difference between first and eighteenth is approx. seven tenths of a second. As a matter of fact, the time difference between most positions is measured in 100ths, which is a far from realistic.

    However, when I click finish session, the results are pretty much exactly what I would expect to see. All of the Gold drivers are in the upper half of the grid and the separation between first and eighteenth is nearly five seconds. Which seems spot on, based on the differences between each driver category.


    BTW - I did test the Real Road Time Scale at Normal and it had no effect.
     

    Attached Files:

  6. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    I've tested at Road Atlanta, Road America, Lime Rock Park, VIR, Silverstone and Sebring. All with the same results.
     
  7. fsuarez79

    fsuarez79 Registered

    Joined:
    Nov 23, 2016
    Messages:
    544
    Likes Received:
    582
    Beats me, I don't see anything wrong. The only difference is that I have AI limiter set to 1%. I think I read somewhere that the limiter is a multiplier used with talent files and mine always work fine using 1%. Perhaps you want to try that instead of zero, otherwise I have no idea.
    It's even weirder that it works fine if you simulate the session.
     
    daltontr likes this.
  8. davehenrie

    davehenrie Registered

    Joined:
    Jul 6, 2016
    Messages:
    7,484
    Likes Received:
    4,397
    That is the exact opposite behavior shown throughout the lifespan of ISI/S397 products. To get a proper qualifying result for AI you always had to accelerate the sessions. Never stop before the session expired, never skip the qualifying. So now it sounds like everything has been reversed. Nobody every said the ISI core-code was anything if not complex.
     
    Emery likes this.
  9. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    Worth a shot, I'll test that tonight.
     
  10. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    I'm simply following what I assume is the designed "in-game" process. When you create a Virtual Driver, rF2 creates a folder for the alternate skin and an .rcd file for the Virtual Driver driver that contains his name, team, number, etc...At that point that is the only information in the .rcd. You have to then go into "Edit AI" to input the aggression, speed, composure, etc. Once that is done, you end up with a completed .rcd file for that individual driver. Rinse, repeat and rF2 creates a new folder and corresponding .rcd file for each new virtual driver. Hence, the multiple .rcd files.

    Having just typed all of that, I remember something very odd about this process.

    When you create the Virtual Driver it creates a folder using the new virtual driver's name, but the corresponding .rcd file is listed numerically.

    I think...I'm trying to recall this from memory.

    I'm pretty sure that's how it works though. So, if I create a driver named Joe Smith, rF2 creates a folder named "Joe Smith" and then creates an .rcd file with his information, but the name of the .rcd file is not his name, it's a sequential number, starting from "0".

    I only mention this, because I'm changing the .rcd file name to match the folder name. The reason for that, is because it makes it far easier to know which .rcd file is associated with each driver. It's overly complicated to have to cross reference twenty or more sequential numbers with the driver folder names.

    I'm not sure why rF2 does it that way, because it's not the least bit intuitive and it would make far more sense for the .rcd file name to match the virtual driver folder name...

    Anyway, this got me thinking that maybe rF2 is ignoring the .rcd's during a normally timed session, because I'm changing the .rcd file names from a number to text...yea...I'm grasping at straws, but it's just convoluted enough to actually make sense. As davehenrie said, "Nobody ever said the ISI core-code was anything if not complex."

    Just to rule this possibility out, I will create the Virtual Drivers from scratch, without altering the .rcd file names and see if that has any effect.
     
  11. fsuarez79

    fsuarez79 Registered

    Joined:
    Nov 23, 2016
    Messages:
    544
    Likes Received:
    582
    That's not the issue. I do the same and rename the rcd files to match the folder names and mine work fine.
     
  12. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    Thanks, that saves me the trouble of testing that theory. I'm definitely going to try changing the limiter to 1, as you suggested. If that doesn't work...I'm out of ideas. I suppose as a last resort I can perform an uninstall/reinstall, but I'm avoiding that like the plague.
     
  13. philmcqueen

    philmcqueen Registered

    Joined:
    Mar 14, 2011
    Messages:
    695
    Likes Received:
    2,288
  14. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    Our topics are related, but I think it's a little premature to combine to two topics. I have a very specific problem that I'm trying to troubleshoot and I'd like to keep it on point, until which time I can actually provide some real lessons learned.

    Let me do a little more investigating and if I can come up with some concrete answers to my problem, I'll be happy to share them in your thread as well.
     
    philmcqueen likes this.
  15. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    I tried the limiter at 1%, but it had no affect. So, I decided to start fresh and created three new very distinct virtual drivers. The results were quite discouraging.

    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Gary Great
    {
    Team = Team Great
    Component = Norma_M30-LMP3_2017
    Skin = alt.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #0
    Number = 0
    Aggression = 50.00
    Speed = 100.00
    QualifySpeed = 100.00
    WetSpeed = 100.00
    StartSkill = 100.00
    Crash = 0.00
    CompletedLaps = 100.00
    MinRacingSkill = 100.00
    Composure = 100.00
    }
    }

    --------------------------------------------

    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Mike Mediocre
    {
    Team = Team Mediocre
    Component = Norma_M30-LMP3_2017
    Skin = alt.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #1
    Number = 1
    Aggression = 35.42
    Speed = 35.42
    QualifySpeed = 34.90
    WetSpeed = 34.90
    StartSkill = 34.90
    Crash = 0.22
    CompletedLaps = 34.90
    MinRacingSkill = 35.42
    Composure = 34.90
    }
    }

    ---------------------------------------------

    //[[gMa1.002f (c)2016 ]] [[ ]]
    LMP3
    {
    Barry Bad
    {
    Team = Team Bad
    Component = Norma_M30-LMP3_2017
    Skin = alt.dds
    VehFile = NORMAM30_08.VEH
    Description = Prototype Challenge #2
    Number = 2
    Aggression = 1.04
    Speed = 1.04
    QualifySpeed = 1.04
    WetSpeed = 1.04
    StartSkill = 0.52
    Crash = 0.00
    CompletedLaps = 0.52
    MinRacingSkill = 1.04
    Composure = 1.04
    }
    }


    As you can see, there is quite the difference between each driver and when clicking the finish session button in practice, the times reflect that (See GRAB_006.jpg). Gary Great posted a 1:17.283, Mike Mediocre 1:27.592 and Barry Bad 1:29.221.

    In qualifying, I allowed the session run uninterrupted and the results can be seen in GRAB_007.jpg. This is NOT what I'm expecting to see. To be honest, it looks like AI Limiter is "ON", but I have verified, dozens of times, that it is not.

    So, I started the 30 minute race and you can see in GRAB_008.jpg that Mike Mediocre has a 4.102 second lead over Gary Great and Barry is trailing by 11.284 seconds. At that point, I decided to see what would happen if I clicked finish session with 15 minutes remaining. The results, GRAB_009.jpg are eye opening.

    Gary Great goes from being down by four seconds to lapping both Mike Mediocre and Barry Bad...TWICE...in the remaining 15 minutes.

    Seriously...what the hell?!?

    Honestly, during a normal timed session, it really looks like the AI Limiter is engaged, because the times are so close. However, I know it is set to zero (0.0) in the player file. This really has me baffled and I think it's now time for the uninstall/reinstall, because this makes no sense whatsoever.
     

    Attached Files:

  16. fsuarez79

    fsuarez79 Registered

    Joined:
    Nov 23, 2016
    Messages:
    544
    Likes Received:
    582
    Sorry to hear. Indeed, makes no sense.
    From my part, I've never changed anything in the .json files regarding AI. Simply created virtual drives, added talent to each rcd file and has always worked as intended.
    Hope you get it sorted out
     
  17. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    The good news is that the uninstall/reinstall as seeming cured all my woes.

    The bad news, I have no idea what was causing the issue in the first place. I am relieved that the problem has apparently resolved itself, but it would have been nice to know why. I'm still going to continue to conduct some testing, as I rebuild all the virtual drivers and I'll post any pertinent findings I notice along the way. Maybe I'll stumble upon the issue again and discover the source of the problem.

    There is one thing that I found rather interesting during tonight's test session. After the reinstall, I recreated my three drivers, Great, Mediocre and Bad. Gary Great was all 100's, Mediocre Mike all 50's and Barry Bad 1's across the board. Of course, Gary Great finished atop the standings and Barry Bad was bringing up the rear for every session and it didn't matter if I let the session run it's course or click the finish session button. The order of finish was always as intended.

    I performed approx. two dozen individual tests with accelerated time and another half dozen clicking the finish session. I simulated practice, qualifying and a 30-minute race session during each test and all tests were conducted at Silverstone.

    As expected, whenever I clicked finish session, there was a huge lap time gap between the drivers, but when I allowed the session to run it's course those times were closer and very consistent. There was usually nine tenths of a second between Great and Mediocre. Barry bad was usually three seconds of the best lap time. Again, this was very consistent in every session over dozens of tests.

    How is that interesting?

    Well, based on my observations, there seems to be a larger divide between 1 to 50, versus 50 to 100...and that does make pretty good sense when you think about it.

    Another curious thing was watching ole Mediocre Mike hang tough with Gary Great during the races. During a half hour race the gap was almost never more than a second and a half and there were times that Mike looked like he might threaten for the win, but Gary would always eventually stretch the gap and win. Usually the gap between Gary and Mike was around two seconds over the course of a thirty minute race.

    That's not really that interesting, but when I dropped Mike's stats to 40's across the board. The effect on individual lap times was minimal, maybe another tenth or two, but the results of the race were quite noticeable. Instead of Mike hanging around in Gary's shadow, Gary would drop him early and instead of the usual 2-3 second victory, it was always easy eighteen to twenty second win. btw, Barry was always about 55-58 seconds off the lead.

    Anyway, it works. Which is great, but it's really bugging that I don't know why.

    Thanks for everyone's inputs, it was much appreciated.
     
    bhendrik and fsuarez79 like this.
  18. bhendrik

    bhendrik Registered

    Joined:
    Mar 22, 2014
    Messages:
    205
    Likes Received:
    79
    There is a difference per track in the range of good,meddiocore and bad. The ai range is sometimes 3 seconds and on othet track just 1 second. Think is has to do how the modder/creater defines the aiw for the track
     
    daltontr likes this.
  19. daltontr

    daltontr Registered

    Joined:
    Jan 11, 2012
    Messages:
    19
    Likes Received:
    5
    When I was initially building my Prototype Challenge series, I had the idea to include the Enduracers P3 Ligier. Long story short, I decided to abandon that idea and just built the series using the Norma. However, I forgot to delete the old Ligier virtual drivers and that was possibly, maybe even probably, the reason for all of my problems.

    When I created my three drivers last night, I noticed that the very first driver that I'd created was coming up with the wrong name. It was really confusing and then I realized that I knew that name. Aaron Povoledo. He is a Ligier driver and the first virtual driver listed in the old Ligier folder. I couldn't understand why his name was showing up?

    I then remembered I was told that you CANNOT have two virtual drivers with the same name, regardless if they are in different series/cars. Now, there wasn't a duplicate driver name, but there had been before, so I had to assume that this was a residual effect from the previous duplicated virtual drivers. I deleted the old driver files and rF2 recognized "Gary Great" as the proper driver name, but I was still forced to reinstall to cure the problem.

    Sidebar: The reason I decided to temporarily abandon the Ligier/Norma combined series was because the Enduracers P3 is far too fast and has an insane amount of grip. If AI for the Norma was set to 105, I'd have to dial down the Ligier to 95 to get them in line with the Norma.
     
    willevans likes this.
  20. davehenrie

    davehenrie Registered

    Joined:
    Jul 6, 2016
    Messages:
    7,484
    Likes Received:
    4,397
    I don't know if this will help, but in the 'old' days of rF1/GTR2, there were limits for most of the lines in the rcd file. Exceeding those limits, either too high or too low, invalidated the rcd and rF1 ignored it. See if one of the early ISI cars has any .rcd files with comments about what each line does, if so, it should give you a range of values you can input.
     

Share This Page