AIs in ladder

There has been some discussion about trying to put Ais into the ladder queue. I would like to make this a proper discussion. Personally I would be interested to see how ais would actually perform in ladder, aka which rating they would converge to. So the question which ai is the best competitive player could finally be answered! This would probably not disturb the lower ladder regime too much as each Ai would only need to play 30 games or so to have it's rating converge.

A more interesting role of AI in ladder would be to have new players play their placement games against AI. I want to present a concept and go into some benefits and problems.

Ais would first play ladder games until their rating converges. New players would face these Ais in their first placement matches. Which AI they face could be determined by the AIs they beat in the previous placement matches to create a less frustrating experience. The rating of the Ai would not be affected by placement matches to prevent the biass from mostly facing new people shift the AIs rating. It would instead play some games against converged players in ladder to readjust it's rating to possible skill/ meta changes.

So why would we even want to do it?

It would prevent new players facing ~1300 rated players in their first matches and vice versa saving 1300 rated players from having to beating up noobs (This was quite frustrating when I was 1300). I don't have any data of how many noobs and players you face at that rating range but it is quite significant. I found out that there are about as many people who played one ladder game as who played more than one ladder game in the data from 2014 to 2020. So there were a lot of players who clicked the ladder button, got absolutely wiped and then never clicked it again.
Edit: Apparently fixed, new players get focre matched with people with lower rating. Getting a more accurate starter rating might still be desireable, as it causes less unbalanced matches.

The reasons I see against it:

Players might not want to play against AI in ladder but people would possibly prefer to face an AI over getting wiped by 1300s during placement. The games the AI would have to play in ladder to readjust its rating are probably neglible as I would expect it to be less than one per week. The initial games to get the AIs rating might cause some upset though.

I'm not even sure if it would give the result we are hoping for: For instance the AI might be too weak to be a meaningful opponent. If the AI constantly looses to new players the system won't adjust the players rating by a lot. µ and sigma only get adjusted marginally when a higher rated player wins against a lower rated one.
(http://www.moserware.com/assets/computing-your-skill/The Math Behind TrueSkill.pdf, page 29 onwards)
So extra information of the skill of a new player we get by having him face a weak AI is very small and he would have to face 1300s after his placement matches anyway.

The fact that we are changing which rating new players face in their first matches might also change the mean of the whole rating distribution. But I'm not certain on that. Fact is that trueskill has a rating deflation over time. It is observable in the distribution of ladder µ over the last couple of years, but appears to be stabilizing. Avrg.rating should be mean. µ of all players that played at least one ladder game in the previous year and had a sigma<100:

7ba57061-9412-4ea7-b2cf-67eb9ef0e98d-image.png

In summary I think having players face AIs during their placement matches is a good Idea, given we have an AI that can actually beat the average ladder first timer. The other approach would be to manually match these players against weaker opponents. This is probably fine for new players but it made TMM quite a nightmare after the reset as non converged strong players were matched against converged noobs.

Ok, so this idea operates on so many assumptions at the moment that I think we need to gather some info before we can reasonably continue this discussion:

  1. New players face 1300s
    There is server code that should artificially match new players with opponents that are way lower than the average for the first games. Now I say should, because I think it is still a good idea to double check what matches this produces in reality. I suggest querying the API for maybe 100 new players and see how their first 10 games went. Sadly I don't have time for this in a moment, but there are some people that were extensively looking into analyzing data from the API, so they can probably help here.
    While we're at it, we could also check how many of the guys that played exactly one ladder game lost this one (This is maybe not really relevant for this discussion, but I find that really interesting to know).

  2. We have at least one suitable AI for this.
    The AI absolutely must be not cheating or we teach horrible misconceptions to new players how many units they can reasonably expect after a short time.
    I am actually not sure if we have non-cheating AIs that are not utter dogshit. Somebody needs to check that, otherwise this whole discussion is pointless.

  3. New players prefer their first games to be against AI
    This is tough one. I don't really have a solution how we can find that out other than asking around if existing players would have preferred this method. But that is solution that is not really amazing at giving reliable results.

Final thoughts:
I think artifically matching new players against weaker opponents is the better solution. We already do that, but we should definietly check how good that is working at the moment and if we need to tune some values. I see that this led to problems for high rated players when the 2v2 matchmaker started, but that was a once-in-a-lifetime problem, because for the future new queues will be initialized based on global rating, so that should help. We should still make sure that the artifical matching at the beginning doesn't negate that effect, though. (I think it was even planned for 2v2 in the beginning but then because of technical difficulties everybody was falsely initailized to 0)

IMO AI placement games is theoretically not a problem:

Assume:

  • We have infinite AIs for every level of play, none cheat
  • These AIs are absolutely accurately gauged based on the current skill distribution
  • There are no reasons to expect large shocks in player distribution, similar to when FAF saw large growth after 2019

Then the interpolation can simply scale you by putting you against AI rather than players at various levels. If you lose a game, you default to the rating of the previous AI you faced for example. It would rise by 200, resulting in 10 games max for someone that was at a 2000 skill level.

This means no players are bothered by facing people during placement matches. You could also simply start at a higher rating if you want to lower the amount of placement games for the upper tier of FAF.

However, these assumptions are quite far from what are current FAF resources. So instead, a review of what is available needs to be done which can then guide further implementation decisions.

I'm quite confident that the uveso / rngai (without cheating) can beat the average novice player with ease.

A work of art is never finished, merely abandoned

Also, where does the computing power to run all these AIs playing ladder come from?

From the player playing ladder, just like typical games are done.

A work of art is never finished, merely abandoned

Yeah, that was one of the dumbest questions I have ever asked on FAF.

I like this idea. I think it'll be great for getting new players into ladder, and at the very least I can't see how it would have a negative impact. Not only that, but I'd very much like to stop being pitted against 0 rated players as a ~1300 rated ladder player. I've all but stopped playing ladder after a month or so of serious interest in climbing it because that was incredibly frustrating. Both because I felt bad about beating up on a new player and because I'd get no rating for it, and once or twice I even lost rating which is kind of absurd that it allows such a big gap that I can lose rating for winning.

Anyway, mini rant over, I like the idea and don't see issues with it other than perhaps it's a lot of dev work.

@blackyps I wasn't aware that the system was already in place in the 1v1 ladder. Good to hear. I see I already caused some misinformation.

@FtXCommando So we would mainly need to measure the ratings of the available AIs. In theory this could be done by hand. Just having players play AI games in custom 1v1s, logging the current ladder rating and outcome of the game. Then calculating the rating changes/ using the python script. But getting enough players to test against each AI will be hard. Especially bc there should be a big variety of players (that also play actively ladder at the time)

@harzer99 said in AIs in ladder:

@FtXCommando So we would mainly need to measure the ratings of the available AIs. In theory this could be done by hand. Just having players play AI games in custom 1v1s, logging the current ladder rating and outcome of the game. Then calculating the rating changes/ using the python script. But getting enough players to test against each AI will be hard. Especially bc there should be a big variety of players (that also play actively ladder at the time)

Just start with coca but I don't think he has ever played a custom 1v1 4head

I think this has the same mechanical difficulty as having AIs in 2v2 queue or someone's idea for a PVE queue, but on the viability front: AI has made massive strides these past year- depending on the AI I think up to 200-300 rated players can be bullied easily. With the AI tournament going we should get some decent data depending on how many participants there are.

ALSO! I don't know about others, but when I started it was absolutely demoralizing to hit -200 something rating after thinking i was pretty OK at the game as a noob. If there had been games against some easy AI, RNG, uveso, etc I might have kept playing ladder just because of how much easier it would have been to get games, and see my own improvement without wondering if my opponent was just more or less retarded.
Definitely might want to have a toggle or something so people can choose to never encounter AI if they don't like it, but I think it would be super interesting, and it might revitalize the AI scene a bit more for people to have the possibility of essentially getting what they make integrated into ladder, and give us AI devs a lot more data against real people

@blackyps said in AIs in ladder:

The AI absolutely must be not cheating or we teach horrible misconceptions to new players how many units they can reasonably expect after a short time.

A cheating AI means, it has a higher mass energy output from recources and a higher build rate. And there is the Omni View option that removes the fog of war for the AI.

If you turn the cheat/buildfactor to 1.0 and switch Omni view off, then you have a non cheating AI even if you choose AIx.

We (all other AI developers) don't use any code to get data that a normal player can't access. So the AI can only see what a normal player can see, and its not using any other glitch/cheat.
It follows all non cheat rules that we have on FAF.

(Also all AIs are uploaded to Git Hub and you can view & check the code any time)

Are game results reported for single player AI games? I could be wrong but I thought I tested it out and they weren’t. This would pose a bit of an issue, but someone should confirm.

@Askaholic
Tested a AI vs AI game and the gameresult was sended via GpgNetSend:
https://github.com/FAForever/fa/blob/deploy/fafdevelop/schook/lua/UserSync.lua#L97

Confirmed.

Haha Imagine how much better your ais would be if the coders would know how to play the game. Maybe you should pair up with to players.

@shape-of-bennis lmao imagine if good players knew how to make AI. maybe you should pair up with ai devs

I think at least the part about having the AI play ladder to get a real strength rating for them is interesting. It would be similar to what was done with AlphaStar in StarCraft.
Would that already be possible atm, queuing up and having the AI play?

Having AI with an actual rating would be pretty useful, it would give you a consistent and always available way to gauge your own skill as a new player. There are many who are scared of starting ladder because they don't know what to expect or because they fear getting destroyed in their first games; with an AI with known rating it would help a bit with what to expect.

If you put AIs into the ladder, some people will hope for/expect an AI opponent. And then they will get anxiety whenever it's a real person. As it is now, you're guaranteed to get a real person or nothing at all.

The problem of new players being paired against 1300s is real and probably the best way to fix it is to say that a person's 5 first games they can't get anyone over 700. It's not like we have a shortage of 400-700 rated players queueing for ladder.

Well we can lower the threshold any time. It’s currently at 1600 mu (yes mu Not displayed rating) afaik, but it is easily configurable and can be done even while the server is running. New players can’t get matched randomly with any player that has higher than that mu (unless that player is also a new player)

@uveso ok cool. Maybe it was for sandbox games that it wasn’t sending results