accservermanager icon indicating copy to clipboard operation
accservermanager copied to clipboard

[Misc] Current state for ACC 1.0

Open grimsi opened this issue 5 years ago • 25 comments

  • [x] support new tracks (thanks @surtic86)
  • [x] support racecraft rating requirement (thanks again @surtic86)
  • [x] support competition rating (not necessary)
  • [ ] limit server slots depending on safety rating settings
  • implement support for entry lists (huge feature, will likely take longer):
  • [x] entry list support backend (currently not 100% tested)
  • [ ] entry list support frontend
  • [x] implement support for teams + driver swaps (done with entry lists)
  • [x] implement support for spectator slots + spectator password (thanks @surtic86)
  • [x] implement support for the broadcasting API if needed (not needed)
  • [x] implement support for locking server during race

grimsi avatar May 27 '19 17:05 grimsi

Could you get the new tracks in as a quickie, before moving on to the harder stuff?

If I specify a junk track name, the err log spits out this, which I assume is all the supported names.

==ERR: 'monza' ==ERR: 'brands_hatch' ==ERR: 'spa' ==ERR: 'misano' ==ERR: 'paul_ricard' ==ERR: 'zolder' ==ERR: 'silverstone' ==ERR: 'hungaroring' ==ERR: 'nurburgring' ==ERR: 'barcelona'

cheesegrits avatar May 30 '19 18:05 cheesegrits

@cheesegrits It seems like there's more to be done than just the tracks. I can't seem to get a server running, wine starts in a defunct state (or at least ps aux | grep wine tells me that after I opened bash on the container) for some reason here, and I had a clean install of the VM where it's all running in (started playing since official release). Using latest version of Docker (CE) in a freslhy installed Debian 9 VM. And yes, the user which runs accservermanager is added to the group for docker, so it should be capable to do anything Docker related as well.

CptChaos avatar May 30 '19 20:05 CptChaos

I made a first Pull Requests for the Tracks: https://github.com/grimsi/accservermanager/pull/15

For other things i need to look more into the Code first and get it setup right for Testing and all. Can you eventually make a short Setup Readme for Developers? How to Build the Frontend into Backend and so on?

surtic86 avatar May 31 '19 05:05 surtic86

support racecraft rating requirement (thanks again @surtic86)

Not yet complete Supported. Im working right now in the Frontend on it. But Pull Request will come son on the Repo as soon as get the Jar Building ;)

surtic86 avatar May 31 '19 09:05 surtic86

Awesome. I will take a look at the other stuff on the weekend if you need any help just send me an email or something

grimsi avatar May 31 '19 09:05 grimsi

spectator don https://github.com/grimsi/accservermanager/pull/19

surtic86 avatar May 31 '19 16:05 surtic86

do you want to open separated issues / feature request for the bigger features?

also i havn't found any default settings for entry lists, teams and competition rating. looks like they are still working on some stuff before they release the Doc https://www.assettocorsa.net/forum/index.php?threads/0-6-multiplayer-server-configuration-for-server-admins.54830/page-17#post-1055663

surtic86 avatar May 31 '19 16:05 surtic86

New Server Params: "isRaceLocked" so no one can Join when the Race is running https://www.assettocorsa.net/forum/index.php?threads/public-beta-1-0-2-build-3898406.58119/

surtic86 avatar Jun 08 '19 20:06 surtic86

Good spot! I find it really irritating that there is no official documentation yet because I would have time to code this weekend... Unfortunately it will take a few days bc they want to fix all their bugs first

grimsi avatar Jun 08 '19 20:06 grimsi

@grimsi If it gives you something to do, here's an example of an entrylist.json Kevin from Kunos shared with me (and gave permission to share on).

{
    "entries": [
        {
          "drivers": [
            {
              "firstName": "Number",
              "lastName": "One",
              "shortName": "NOO",
              "nationality": 1,
              "driverCategory": 2,
              "helmetTemplateKey": 500,
              "helmetBaseColor": 0,
              "helmetDetailColor": 0,
              "helmetMaterialType": 0,
              "helmetGlassColor": 0,
              "helmetGlassMetallic": 0.0,
              "glovesTemplateKey": 2,
              "suitTemplateKey": 500,
              "suitDetailColor1": 40,
              "suitDetailColor2": 160,
              "playerID": "S123456"
            },
            {
              "firstName": "Kevin",
              "lastName": "Someone",
              "shortName": "KST",
              "nationality": 1,
              "driverCategory": 2,
              "helmetTemplateKey": 500,
              "helmetBaseColor": 0,
              "helmetDetailColor": 0,
              "helmetMaterialType": 0,
              "helmetGlassColor": 0,
              "helmetGlassMetallic": 0.0,
              "glovesTemplateKey": 2,
              "suitTemplateKey": 500,
              "suitDetailColor1": 40,
              "suitDetailColor2": 160,
              "playerID": "S654321"
            }
          ],
            "customCar": "",
            "raceNumber": 88,
            "defaultGridPosition": -1,
            "forcedCarModel": -1,
            "overrideDriverInfo": 1,
            "isServerAdmin": 1,
            "configVersion": 0
        }
    ],
    "configVersion": 1
}

He added ...

it has many options, but the absolutely important line is the playerID - there goes "S" + steamid so the whole thing can be stripped down to

{
    "entries": [
        {
          "drivers": [
            {
              "playerID": "S123456"
            }
          ],
            "raceNumber": 88,
            "forcedCarModel": -1,
            "overrideDriverInfo": 1,
            "isServerAdmin": 1,
        }
    ]
}

cheesegrits avatar Jun 09 '19 07:06 cheesegrits

(Kevin is working on an admin document, hopes to have it ready soon)

cheesegrits avatar Jun 09 '19 07:06 cheesegrits

Thanks a lot! I will start working on it (although the final release has to wait until we have an official documentation anyway).

grimsi avatar Jun 09 '19 07:06 grimsi

Good thing it looks like with the Entry List you have also don Teams and Driver Swap Implementation.

  • implement support for entry lists (huge feature, will likely take longer)
  • implement support for teams + driver swaps

surtic86 avatar Jun 09 '19 18:06 surtic86

Doesn't look like the entry list contains the parameters for teams and driver swaps all I can see is different car skins and colors but no team assignment

grimsi avatar Jun 09 '19 22:06 grimsi

Well, that example has two drivers (NOO and KST) for a single entry, which is how you enable swaps. So 'entries' is an array of objects, then within each entry object is a 'drivers' array of driver objects.

cheesegrits avatar Jun 10 '19 04:06 cheesegrits

The other thing Kevin shared with me was in settings.json you can now have ...

"dumpLeaderboards": 1,

... which, if there is a ./results folder, should dump results. I haven't tested it yet.

I can't remember if I mentioned, but I do server admin for a league (ACRL), and we've been evaluating ACC in our off weeks in the current AC based GT3 season, to decide if it's ready for league use yet. Short answer is "not yet", but I reckon a few more bug fix and minor feature releases and it should be. And I'm very interested in using accservermanager as part of our league provisioning. We typically have about 100 drivers in a GT3 season, so pre-quali, entry lists for server splits and result handling get quite complex. We currently have provisioning built in C#and Rust. I'm busy dealing with AC stuff for our current season atm, but as soon as we start the serious planning for our first ACC season, I'd be happy to start helping out with any work you need doing on accservermanager.

cheesegrits avatar Jun 10 '19 04:06 cheesegrits

You're both right, I viewed this issue on my phone and didn't realize that drivers is an array. That certainly makes things easier. Implementing entry lists in the backend is trivial, but the frontend may take a while (especially if done right. I have a few ideas like searching for Steam names instead of entering Steam IDs or having a color picker instead of entering the color codes).

If you want to use my software for your league we can talk via DM. I guess you would need a few extra features that the server manager currently does not offer, but I have no problem implementing them. Only problem is that my time is currently limited since I have exams at the end of the month and after that I have to write my bachelors thesis which means that I cant really commit to anything right now. But I will do as much as I can

grimsi avatar Jun 10 '19 08:06 grimsi

Kunos just released an official documentation 🎉

https://www.assettocorsa.net/forum/index.php?threads/the-server-admin-handbook-thread.58245/

ServerAdminHandbook_v1.pdf

grimsi avatar Jun 10 '19 12:06 grimsi

Uh i see you have a lot don today! Thanks

surtic86 avatar Jun 10 '19 19:06 surtic86

When do you think the new tracks will be added?

GazCBG avatar Jun 14 '19 22:06 GazCBG

The new tracks are already added thanks to @surtic86

However the other stuff will most likely take a while

grimsi avatar Jun 16 '19 08:06 grimsi

Not sure where to put it, but since the release of 1.0.5 today there's a new version of the handbook out. See attachment ServerAdminHandbook_v2.pdf.

CptChaos avatar Jul 04 '19 17:07 CptChaos

Thanks for the heads up!I'm writing my last exam at University tomorrow and then I will be away for a while but after that I will definitely continue to work on this project.

grimsi avatar Jul 04 '19 18:07 grimsi

And version 3 of the ServerAdminHandbook has been released, I took the liberty to upload it so you don't have to search for it. ;) I hope your exams went good and that you enjoy a well deserved holiday now!

CptChaos avatar Aug 10 '19 09:08 CptChaos

ServerAdminHandbook_v5.pdf

In the mean time, version 5 has been released. Since version 3 the handbooks are also packed in the folder where you can find accServer.exe. :)

CptChaos avatar Nov 02 '19 14:11 CptChaos