AMS2 Custom Driver Utility Feature Request

Discussion in 'Automobilista 2 - General Discussion' started by LuxMundi, Apr 8, 2023.

  1. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Hello AMS2 Forums! I am LuxMundi, I am a sim racer and a Java developer. What I'm doing right now is creating a AMS2 Custom Driver (Grid) Utility, and I want to ask people about features that they may want to be implemented in such a utility.

    **AMS2 Custom Drivers Utility 2 is out now and available on Race Department**
    AMS2 Custom Drivers Utility

    Back in late 2021 when the feature of Custom AI grids was first released I made a very small and light program in 3 days of working on my time off for personal use. I distributed the Work in Progress version of it on some AMS2 centered discords to gather some feedback, with the goal of eventually finishing the program and putting it up on Git Hub. Unfortunately the source code of the program was lost in an event of complete SSD meltdown, and thus the project was abandoned. The only thing that survives is a loose .jar file. It is still up on my google drive for people that want to give the old version a spin. It is functional, and it is relatively easy to use.

    EDIT: The program is open source and is released with a permissive Apache 2.0 License. Source code of the In Development version (updates almost every day) can be found here: GitHub

    [​IMG]


    You do need Java 8 JRE in order to run this. Just download both files, put them in the same folder and run the .jar file (Open With Java 8)

    Anyway, I'm back to this project, I'm making Custom Driver Utility Version 2. I have to make it from scratch it will take a few but after it's done I will share the new version's Git Hub Page on this forum. I do understand that someone already has made a web version of a similar utility, and it is great. But I don't believe that either of these software solutions utilize the full potential of the Custom Driver AI feature.

    Feature List for Custom Driver Utility 2:
    • Everything that the first version could do. IE: Export/Import Custom AI Grids.
    • Add sliders for Fuel Management, Mistake Avoidance, Forced Mistake Avoidance, Vehicle Reliability.
    • Track Specific Overrides: (I don't think there's any GUI that supports this feature)
    • Do Not Override This: The ability to say do not override this from the base value.
    • Driver Libraries: Allow users to save their custom drivers into libraries and to add drivers from the library to the grid.
    • Grid Auto Generate: Automatically generates a semi-random grid that is spaced according to user set spacing parameter. (This is a feature I want the most personally because most of the time I just want to space the drivers by like 0.3/0.25 so that they don't glue together as much.)
    The ambition here is to make something that is so thorough in terms of features, bug free and user friendly so that even Reiza themselves embrace this tool when making their AI grids. I want people from this forum to request features that they want to see in a tool like this.

    [​IMG]
    This is included so that you know I mean business.

    As of right now I have pretty much finalized the main Driver Editing GUI.
    All the features from version 1 of Custom Driver Utility have been restored.
    [​IMG]
    This means that at the current pace, I'm going to have a version that is ready for release in around 14-15 days. I will release it on RaceDepartment and on my personal GitHub. You will be able to view, download and edit the source code there if you wish.

    Feature Complete Version will have the ability to do everything that's described above, and will feature some tools such as: Bring the grid closer together/Make it more sparse, and the same with aggression.

    The exciting news is that John B. Ellis who made the amazing NAMeS: Real Drivers for AMS2 files has given me permission to use his files in this software. That will make creating the Library for liveries MUCH easier. That also means that I have the ability to give users the option to generate a grid with real driver names, and nationalities to start their custom grid.
    (It will also offer the NAMeS+ files if those are available for the selected class).

    Thanks to John B. Ellis's NAMeS file I was able to generate a reference library for Vehicle Classes and all 2000 or so liveries that all classes have. This obviously was a huge timesaver. This means that V2 will ship with a library of all stock liveries in the game, allowing users to select them from a drop down menu, instead of manually typing them in.

    I made a little GUI to edit those libraries in case you want to do anything with livery names or tracks without messing with xml files. (there is a way to load a grid with a custom class if you have a mod that overrides the liveries and comes with a custom AI file as well.)

    Track Library Editor GUI
    [​IMG]

    Vehicle Class Library Editor GUI
    [​IMG]
    I'm very happy with how this program is turning out, but there is still quite a few things on the TODO list, but I'm very happy with the progress so far.I think that the program will be complete in around 10 days or so.

    Finally after taking a long break because I had to flee my country for personal reasons I am able to return to the development of this tool. I have fully implemented Track Specific Overrides, who require two steps in order to create. [​IMG]
    First step allows the user to define the tracks on which this track override is going to be in effect. List of Tracks displayed on the left is the list in the Custom AI official thread here on the forum but edited to be in a more user friendly format.

    [​IMG]
    Second step allows you to define which parameters you want to override and to set the values up for using the good old sliders.

    The last few screens were added to the util.

    First is New Grid Wizard that allows the user to start with a pre generated grid.[​IMG]
    It has a few settings that I think are essential for grid generation such as determining how the values in the grid are going to be set and what is going to be the source of names used for the grid. Minimum and maximum values and the ability to cap aggression.

    [​IMG]
    This is the configuration screen. It's not particularly exciting.
    [​IMG]
    And finally the welcome screen all users will see when opening this software for the first time.

    The project at this point is feature ready but will ship without the mass modify tool as right now I can't dedicate time to developing new features and barely have the time to finish those I have started. When the new version of AMS2 is going to come out I will update this software to keep up with any changes that AMS2 custom driver system may undergo and anything added/changed in the list of tracks/ vehicle classes.
     
    Last edited: Jun 15, 2023
    • Like Like x 14
    • Winner Winner x 4
  2. Mazdaspeed

    Mazdaspeed Well-Known Member AMS2 Club Member

    Joined:
    Aug 25, 2022
    Messages:
    1,469
    Likes Received:
    756
    Nice, so this would create an xml file that then we copy into the game folder? I dont know if it is possible to have the same program "install" the new file into the game.
    Or at least have the program with pre generated and named AI files per class, the most time consuming issue in my case is matching the livery ID's and stuff, (John Ellis "names" file covers that, but there might people that dont have it)
     
    • Like Like x 1
  3. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    The program will create an xml file that you can save into any directory that you want, but in the settings you will be able to set the default save directory to be your AMS2 Custom AI folder (or any other folder) so that it saves your files there as a default.

    Since Livery names can change if some or all liveries of the class are overridden by other mods. I will leave the option for users to manually type in the livery name. But if the custom AI grid overrides a known class with its default liveries then there's no point in typing them in, thus you won't have to.
     
    • Like Like x 2
  4. TronLi

    TronLi Well-Known Member AMS2 Club Member

    Joined:
    Dec 19, 2020
    Messages:
    506
    Likes Received:
    352
    It would be cool if this utility could 1)increase the grid to 60 and 2)set the weather/time settings so we could just fire up races externally without having to fiddle with in-game settings.
     
    • Like Like x 3
  5. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    1) This is a great idea, but I believe it's a bit out of scope for this project. This seems like a really good idea for AMS2 Modding tools. Some sort of a centralized utility that lets you change everything there is too mod in AMS2 (Texture Overrides, Livery Overrides, Custom Drivers etc.). At some point I may embark on the herculean task to make a centralized modding tool, but it's not going to happen any time soon, sadly.

    2) I actually have no idea if I can set those things externally. Custom Championships are definitely stored in a way I can read/write them, but custom races, I'm not so sure I can do anything about them. I will keep the idea of firing races externally but I'm not sure it's implementable without major hacks/injections.
     
    • Like Like x 2
  6. projupiter

    projupiter Member AMS2 Club Member

    Joined:
    Aug 10, 2021
    Messages:
    62
    Likes Received:
    26
    If there was a central repository people could upload grids/championships/liveries. Then other users could browse and install. That would be cool, but maybe too ambitious.
     
    • Like Like x 2
  7. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    It's definitely possible to do that for Custom AI. I have a server where I can host a DB of all grids submitted and allow people to browse it. That's not outside of the scope of what I'm aiming for.

    I'm starting to see that AMS2 community seems to be in need of a centralized modding tool. I believe that Custom AI is a very powerful and underutilized feature, that can make a really exciting Single Player Experience along with Custom Championships. Thus I'm focusing on making my life easier (Because I always generate a custom AI grid for my championships), and hopefully trying to let more players play around with that feature.
     
    • Like Like x 4
  8. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    UPDATE: Found a way to do it. I can fire up a dedicated server with the setting you set. But dedicated servers don't support Custom AI as of rig now (1.4.6.4). So pretty much a project for the next 20 years. When the Custom AI gets supported in dedicated servers, I will do it.
     
    • Like Like x 2
    • Friendly Friendly x 1
  9. john Ellis

    john Ellis The Rectifier of Names AMS2 Club Member

    Joined:
    Mar 18, 2020
    Messages:
    838
    Likes Received:
    1,000
    Great work so far reinventing the Grid Utility into V2. I second the request, as time allows, to add custom livery, helmet, etc. features to the editor. An AMS2 installation can include unlimited number of custom skins, for different series and seasons in separate folders, but it is really just the activation of various, realtively simple .xml files that ultimately determines which drivers or livery sets get activated. Consequently, a unified .xml editor with JSMGE-like functionality would be well on its way to being the CM of AMS2. It would also permit, in the future, a platform for controlling various car and track mods (e.g., editing vehicles and drivelines files).

    Also, in addition to numerical 0.0 to 1.0 sliders, it would be fantastic to be able to quickly choose from several presets. Some AI attributes might respond best to a simple, linear range of values (e.g., 1.0, 0.98. 0.96 ... down to 0.5, etc.) while others might react better to a normal distribution of values within a range (e.g., generate a mini bell curve between 1.0 and 0.6, etc.), a random set of values within a certain range, or maybe even a Fibonocci retracement (e.g., an expanding spiral of values down to 0.618, etc.).
     
    • Like Like x 3
  10. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Thank you for your work with NAMeS files. They have been extremely helpful so far, It would have taken me forever to manually add 2000 or so livery names to a bunch of classes, and I don't really have a way of datamining them out of AMS2.

    I would love to eventually make an AMS2 Modding Platform that will have similar functionality to JSMGE, but that project will take a while to create. Eventually I'm planning to make AMS2 Mod Manager that will go hand in hand with the Modding Platform allowing users to have an unlimited amount different livery overrides, helmets, texture overrides, custom AIs and so on, that can be activated with a press of a button, but that won't happen soon, as developing things takes time and I do have a job (I work as a Software Developer).

    The plan right now, is to finish AMS2CustomDriverUtil, and work on Livery Overrides as they are adjecent to Custom AI, when you override all liveries you already have a list of liveries for your class, and with the help of CustomDriverUtil you can generate a Custom Grid for your overridden liveries. It seems like a natural way for the program to grow and expand.

    When it comes to different pseudo random distributions of values, I will have to think about that. Possibly I could allow users to generate grids that have all values bound to different curves depending on how they want to set it up, but I'm not really sure how to display that visually at the moment. I'm going to start working on the "New Grid" interface soon and one of the options would definitely be to set the starting parameters to either Random, or to have it conform to a gradual range, I will definitely think about non linear ranges, but it may not be implemented in the first release version.
     
    • Like Like x 2
  11. john Ellis

    john Ellis The Rectifier of Names AMS2 Club Member

    Joined:
    Mar 18, 2020
    Messages:
    838
    Likes Received:
    1,000
    FYI: There is an AMS2 mod manager that is available, so you may want to take a look so as not to duplicate functionality: Automobilista 2 Content Manager
     
    • Like Like x 1
  12. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Huh, didn't know that. When I'll be thinking about the Mod Manager I will probably ask the guy who's working on it if he wants to collaborate with my project.
     
    • Like Like x 1
    • Agree Agree x 1
  13. john Ellis

    john Ellis The Rectifier of Names AMS2 Club Member

    Joined:
    Mar 18, 2020
    Messages:
    838
    Likes Received:
    1,000
    FWIW, there's this out, too: AMS2 AI Editor

    The AMS2 Content Manager, referenced in an earlier post, is open source, so you could always tinker with it (if you know C#) to add additional features: GitHub - OpenSimTools/AMS2CM
     
    Last edited: Apr 20, 2023
    • Like Like x 1
    • Informative Informative x 1
  14. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Funny. It seems like a lot of people are getting into this whole "Modding Tools for AMS2" kind of a thing at the same time. AMS2 AI Editors seems cool to me, but it's not the functionality I'm going for. The C# AMS2 Content Manager though, seems, actually, pretty good. I know he's doing it open source like me and our licenses are both permissive and are, actually, compatible. Which is pretty good. I messed around with it a little bit and it seems pretty solid to me.
     
    • Like Like x 2
  15. john Ellis

    john Ellis The Rectifier of Names AMS2 Club Member

    Joined:
    Mar 18, 2020
    Messages:
    838
    Likes Received:
    1,000
    I’ve tried the AMS2 Content Manager, and it definitely helps to unify the whole car/track mod and bootfile activation process. After it does its thing, additional livery & AI mods can subsequently be activated through another program (e.g., JSGME for now, until there is something better). Ideally, a single program that could organize and manage everything would be ideal.
     
    • Like Like x 1
    • Agree Agree x 1
  16. sampopel

    sampopel Active Member AMS2 Club Member

    Joined:
    Mar 31, 2020
    Messages:
    337
    Likes Received:
    150
    I've just noticed this thread and am pleased to see talented people making more out of the custom AI feature.

    Some suggestions, in case you've not already got them covered:
    • ability to compare multiple AI drivers' attributes side-by-side (like a spreadsheet view of all drivers that we're probably all currently using);
    • ability to copy an entire set of AI drivers and their attributes from one Series to another;
    • ability to globally change a specific attribute for all drivers in a Series - eg. reduce all GT3 drivers' Consistency attribute by 40%.
      • maybe even enable that for only selected drivers - ie. enable us to select specific AI drivers in a Series via tick-box and then alter a specific attribute for them all by a specified %age.
    Two of the more irksome aspects of the current custom AI system for me are:
    • Reiza changing default skin names - if your tool can somehow pick them up (either from in-game) or by someone like John Ellis maintaining an external file that feeds into your tool, saving users to have to manually check in-game for any livery name changes, etc, then that could solve one of the biggest annoyances.
    • when I export to xml from my custom AI spreadsheet, I have to manually edit the xml each time to get rid of duplicate " symbols and other minor character issues which prevent it from working, which gets a bit tiresome. A nice, clean, working .xml created directly from your tool would be very welcome.
    Best of luck!
     
    • Like Like x 1
  17. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    All of these are very good features, Mass Modify of all drivers is something that I realized I need very early in the testing of the program. Ability to change the series and to reassign the livery names of your drivers should be possible to implement relatively quickly, but comparing multiple drivers like a spreadsheet will require some thought put into it.

    In terms of updating livery names in case they get changed I may be able to automate that process provided that John Ellis updates his NAMeS files first, as I rely on this resource for my vehicle class library.

    The XML files generated by this tool should be clean and won't require any extra fiddling with. Sorry for the late reply I was very busy with moving.
     
    • Like Like x 1
    • Friendly Friendly x 1
  18. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Thank you everyone for your great suggestions! Special thanks to John B. Ellis whose NAMeS files where an absolute godsend for this project as it allowed me not to parse about 5000 vehicle class/ livery name combinations for all cars in this game.

    This Project will be released on RaceDepartment in 2 days or so, after I do some testing with my friends. As of right now Custom Driver Utility V2 is feature complete, and ready for distribution.

    Requested Features Already Implemented:
    • Suggested by Mazdaspeed - Ability to choose liveries from the list or to generate a new Grid with pre assigned liveries.
    • Suggested by John B. Ellis - Range Value Grid Generation tool. (Though not everything suggested is implemented in the version to be released)
    • Full integration with NAMeS - Custom Grids can be generated with real names of drivers thanks to the work of John Ellis and his permission to use his NAMeS files as a basis for generated grids.
    Requested Features that will be coming in future versions:
    • Suggested By Sampopel - Comparing multiple Grids
    • Suggested By Sampopel - Conversion of Grids between series
    • Suggested by Sampopel - Mass Modification of all properties
    • Suggested by John Ellis - Advanced Grid generation, with the ability to individually set how each property is set. Using maths and curves, and weighted distribution.
     
    • Like Like x 3
  19. Mazdaspeed

    Mazdaspeed Well-Known Member AMS2 Club Member

    Joined:
    Aug 25, 2022
    Messages:
    1,469
    Likes Received:
    756
    Nice!! Eagerly awaiting release, thanks!!
     
    • Like Like x 1
  20. LuxMundi

    LuxMundi Member

    Joined:
    Apr 8, 2023
    Messages:
    12
    Likes Received:
    39
    Just in case anyone missed it, It's released on RaceDepartment. It's already up to version 2.1 because the initial release allowed me to gather feedback from the amazing AMS2 community and bug reports many of which are already fixed in the 2.1 release. It also features the Mass Modify tool that I wanted to have ready for the 2.0 release but had to cut it to simplify the debugging process. Thank you everyone that suggested features, and special thanks to John B. Ellis whose NAMeS files saved me a lot of work.

    I appreciate any bug reports, feature requests and any other feedback.
     
    • Like Like x 5

Share This Page