we almost completed all required steps to finally have queues that are bigger than 2v2. The main roadblock was having an algorithm that can handle the premade teams of various sizes, that queue up, while still producing good matches. I wrote that algorithm over the last months and we tested it successfully in June. Recently we finally merged the code into the develop branch after making sure the code quality and test coverage was up to standards.
We are now testing new code that will handle the rating initalization for the new tmm rating. Once that has been merged we can make a server release to deploy the new code. Once that is in effect, the new matchmaking code will also be used for 2v2 matching. It is possible that there will be a short delay until we have added the new queues in the database. Once that is done, the new matchmaker queues will appear in the client. A client update is not required.
I will write a separate post about how the new matchmaker code works in the near future.
Of course we will also inform you when the update is in effect, but I guess you will notice that pretty soon if you regularly play matchmaker games.
What will be coming?
We will be releasing the following:
A combination of the ladder and development teams reviewed the content available for release of the two matchmakers, along with the player councilor discussing feedback from the players. In the end we determined that the two matchmakers for 4v4 would be best to accommodate the desires of the playerbase.
Differences between the two new queues
Per feedback from conversation with players, it was determined that there is a large desire for a matchmaker similar to typical custom games where players can find a more relaxed game experience. So the queues will work like this:
For the Fullshare Matchmaker:
Both queues will use your global rating and add some more deviation on top to initialize the new matchmaker ratings. After that your wins or losses in global won't affect them, just like the other queues. With this we want to avoid that pro players will get matched randomly with lower players like it happened with the initial 2v2 release. The deviation increase will still allow you to reach a new rating quickly if you are under- or overrated in global. It will also make your displayed rating approximately 400 points lower until your deviation has settled again.
Why is there no 3v3 matchmaker being released?
Quite simply, we wanted to bring a matchmaker that would be most appealing to a wider audience. In addition, the following issues exist:
What needs to happen before release?
We need all people to use a client version that can handle different per-queue game options, most importantly different share conditions. The newest client version (v2021.10.0) has that capability. With an old client you would still see the queues, but the game would refuse to start. Because of this we will need to set the minimum required client version to that version, so everybody will be forced to update. This means it is especially important that this new version doesn't have any big issues and we will only increase the required client version when we are positive that this is the case. So check it out here: https://github.com/FAForever/downlords-faf-client/releases
The other thing that needs to happen is deploying the new server update. We can't really give an estimate when that will happen, because Brutus is very busy at the moment.
Note that the deployment of the new queues is more like a configuration change and separate from the server update and client release. As explained above we can't give an exact date yet, but I estimate some time in the next few weeks is realistic. We will keep you updated when we have a release date.
it is time for an update on the progress that has been made on the league system. I believe the last post was this one: https://forum.faforever.com/topic/311/graphic-artist-wanted
We have decided to use petrics artwork. You can find his post here: https://forum.faforever.com/topic/311/graphic-artist-wanted/23
You may remember that we originally planned to release the league system alongside the team matchmaker. That was last christmas, or in other words over 9 months ago. So what happened? To answer this I will give you some insight into the developing process:
First some basics: The FAF client communicates with our lobby server and additionally gets some info from our API. Persistent information, like your rating, gets stored in the database, so it can be accessed by the server or the client by using the api whenever necessary.
We wanted the league system to be not part of the lobby server but to be a separate, independed service. This has the benefit that we can update, shut off, restart etc. the league system without having to touch the lobby server. This allows us to deploy updates without having to restart the server and in consequence have everybody kicked and the currently running games destroyed. The league service even has its own database to store the league data.
So far so good. But actually implementing this was way more difficult than I anticipated. I mentioned that the client queries the API for information. We want this separation of the server to be abstracted away from the client, so all data should be available from the same API. This is actually difficult, because the api has to get access to both databases. But the standard configuration assumes there is only one database. Elide, the library we use for our API can handle the case of several databases, but this requires a reconfiguration. This needs special knowledge, so kubko did the job (Thank you kubko!). However, nobody told kubko that other work couldn't continue until this was solved, so he treated it as low priority until several weeks later we talked about this and I was made aware that this information got lost.
This actually illustrates really well, why the development of the league project happens so slow. This project touches so many different aspects of FAF. It needs changes in at least six different repositories on github, each with their own relase cycles, and many depending on one another. This makes it extremely easy that one part is bottlenecking the rest.
Another example: The league service was actually already running for quite a while, the server sends info messages about games that the league service can read to trigger changes of the players' league scores. However UmbraSolis and me didn't really pay attention to the format of the messages. The league service read these messages, but failed to parse them. Worse, we realized that we actually need different info from the server. So now we needed to change the league service to accept the new message format This was relatively quick to be done, but it reuqired another server and league service relase.
Add to all of this the normal issues of a volunteer project where random people randomly don't have time for some weeks due to the job, university, holidays or whatever and you arrive at the pace that you see. This also illustrates well why we can't really give estimates when a feature will be ready. It is so uncertain how much time people will be able to spend on a project and new issues that need to be dealt with before a release pop up constantly.
Right now the league service is functional and already processing game results for a test season I started. The client UI is also mostly working now. This screenshot is using real data from the test season.
As you can see it is already in a good state, but there are still some things that need to be worked on, like the number of placement games not being relayed. I also need to alter the division distribution because right now, almost nobody gets placed in bronze and we get a bit too much grandmaster players.
The additional UI is quite a large change to the client code, so even when it is ready the new code needs to be reviewed properly and this will also take some time. Because of this it will not make it into the October release. Maybe it will be ready in November if everything is largely smooth sailing from now on.
The only definite release date estimate is - as always- soonTM.
Today I've been able to take a look into the server log from our testing session. It confirmed that things went well. So the test was a success! Thanks again to everyone that helped me with testing!
There are some minor touch ups to do and we also have to set everything up for the production environment, so don't expect a release next week, but we are getting close to a finish line now. If nothing unexpected happens, we can probably see a release in a few weeks.
Good to know that only othe player councillor can host tournaments
I see a lot of "FtX ignores the lower rated players" but not a lot of specifics, so here are some thoughts and some questions I have so we can maybe see how much merit this statement has.
One aspect I saw mentioned, is that there are almost no tournaments for lower rated players. I think that is a fair observation and we could really use more of these. Morax also recently pointed this out in a separate thread. Luckily Suzuji seems to be very motivated to organize some. And because you don't need to be PC to be a tournament director, I'm looking forward to seeing some tournaments from him regardless how this election goes.
It seems like Emperor_Penguin and the players he knows are very unhappy with the maps in the ladder pool. Can you elaborate why the pool "doesn’t prioritize regular player preference, fun, playerbase growth, and new player retention anywhere near as much as it should"?
Also what exactly do low rated players desire, when talking about mapsize is apparently not it? What are these same things that they all dislike as Valki said? And how do you determine that what you and the people you talked to is representative to the playerbase as a whole? I am about 1k rated myself and I generally like the pool. I think the rating brackets for the pool are a good solution to give lower rated players maps that are easier to play.
Polling lower rated people is really difficult because their community interaction is really low. Many don't even read the news. Only a server message to all boosted the poll result numbers significantly and I don't want to have everyone bothered by popups every month.
I'd also like to hear some examples of the "toxic/derogatory attitude/rhetoric", because the dictator FtX meme gets hinted at a lot, but so far nobody bothered to explain what egregious things he has apparently done. To me it seems that some people are disgruntled because he denied their proposed changes/maps/ideas. In my experience, everytime this happened was because the ideas or maps were not well thought out (i.e. had negative implications that the proposer didn't think of, or didn't even adress the root problem but merely a symptom), were of low quality or simply not feasible (hello low dev resources).
It was just a day ago, but at the same time it is over 30 posts ago that Morax requested I say a little bit about the upcoming league system. It's true, I and many others have been working on it. It will probably be ready in the next months. Basically it will provide divisions and seasons for the players like almost all competitive games do.
This will not remove the trueskill system, but it will hide it from the players in favor of their division. This way we can hopefully provide a better sense of progression while also making the system easier to understand. No more "why do my teammates get a different amount of points than I" and the like.
There is no plan to have a global rating division system. So the divisions would basically only exist for the matchmaker queues. That does however not imply anything about what you will see when you join a custom game. It's basically an added feature for the matchmaking system. Changes to how the custom games rating system works could be introduced at the same time, but are not necessary.
I also don't like the idea of a button. It is a bandaid for the problem that currently the matchmaker doesn't do a good job.
Your example match of 700 + 1200 vs. 1300+ 1300 has a whopping 700 rating disparity. For established players this shouldn't match, because the chance for the first team to win this is extremely small.
At the moment it does match eventually, because there is a bug in the current server version that rates extremely badly balanced games better than it should. If you want to play this anyway you could ask in aeolus who is queued up and if they want to play a custom instead, but this doesn't warrant an extra ui element.
To give you all a better understanding of how the algorithm works, I prepared some graphs for you. I created a script that passes artificial data to the matching algorithm and plots the results. In the bottom right you can see the rating distribution used for that run. Newbies are people with at most 10 games played in that rating. The distribution is based on real data based on global. Newbies get extra bonuses to match faster. This is especially important, because they can drop to extremely low ratings if they lose their first games and they would have the same difficulty to get matched like top players. We don't want them to get stuck, so we need to help them a little to get games. "search" in the diagram refers to a queued up party, that can contain multiple players. In the top right you can see the wait time of each search based on their average rating.
The graph in the top left shows some metrics about the created games. The games where sorted beforehand, so the game number doesn't correlate to when the game got created. Rating disparity is the difference in total rating between the two teams. Rating deviation is the standard deviation of the ratings of all the participating players in the game. Skill difference is the rating difference between the lowest and highest rated players in the game. It is roughly 2,5 to 3 times the standard deviation. This is just mathematics. You can ignore the rating deviation line and instead focus on the rating disparity and skill difference, because these are the "hands on" game metrics. Finally the graph in the lower left depicts the wait time again. This time sorted by wait time. Honestly the most interesting part are the averages and means written in the top right corner of the plot.
All plots have fixed y ranges (except the rating distribution). I did this, so it is easier to spot differences. This means however that some very high values are cut off. I consider these outliers, so it doesn't matter too much, just keep it in mind. I still have the maximum values in my spreadsheet.
This should be enough introduction, let's start with the bucket team matchmaker. This one was used until the server update 10 days ago.
The currently running configuration of the new matchmaking algorithm looks like this:
As you can see it improved the overall game quality and equalized the wait time a bit. It still suffers from extremely bad games, just like the bucket team matchmaker. The reduced wait time outliers is what you experience as getting very bad games when you are high rated or are queueing during quiet hours. This is mainly because of the mentioned bug, but we can still get some more performance by tuning the parameters.
This is what I came up with, that will be available with the next server update:
As you can see the lines in the top left don't go off the charts anymore, so we got rid of the horrible games. The general skill difference also improved a bit. The top players are back to being in queue forever if no suitable match can be found. The careful use of bonuses makes sure that we match more aggresively on the lower rated end. By the way, this is why you see these spikes at the end of the curves. They are the newbie matches being more lenient with balance.
Because the algorithm is configurable we will even be able to see some of these improvements before the next server update.
I hope I could answer some of your questions. I know that I covered a lot of stuff and I just glanced over some of some of the details to keep the post readable, so if you have any follow up questions, don't hestiate to ask.
I just had a look at the bigger picture and this might come off as a bit blunt, but I realized I don't want to participate in entirely pointless low effort balance threads. You regularly circumvent the requirements of balance posts by instead posting them in the suggestions subforum. We are now arguing about huge changes in the balance that were made with little thought about the consequences and without a proper baseline of what exactly the problem is and why the solution could even theoretically solve the problem.
The balance team won't even consider the thread and rightfully so. So without any foundation that this thread would lead to anything besides wasting my time, I will stop here.
The DoT idea and the name of the unit gave me an idea. I present to you the real firebeetle: https://imgur.com/a/rdL7f9q
Not at the moment.
Relevant thread: https://forum.faforever.com/topic/2678/update-what-happened-to-the-league-system
Did you try manually deleting any leftover files after deinstalling the client?
That's not entirely true. A huge problem is that the engine doesn't really support them, so we would need ugly hacks that cause performance problems to implement them, if at all possible.
You assume that people either stick to tanks until they figured out power balance, or that they are able to switch their production to tanks when they power stall. I doubt that is going to happen. We already see people teching up when whey can't afford it and if people reacted to power stalls we wouldn't need this change in the first place.
A short power stall doesn't lose you the game. Stalling endlessly and not fixing it is what is really bad. If anything you need to find a way to make new players aware that fixing their power stall is way more important than microing some random small tank engagement.
Typically the latest client, but it shouldn't matter too much, because I don't think there were any client changes to the searches recently. Are you using Player Name "contains" instead of "is"? I just tested different stuff and it was all reasonably fast except that one. The database of all replays is really huge and checking for substrings in the players is really complicated. So if you know the player name you can use "is" and massively speed up the search. If you use the filter search, it already does this for you.
If you absolutely have to run a complicated query you can limit the time range of the replays to speed it up. You are probably not that interested in games a long time ago anyway.
@nooby said in Replay vault download:
It is very slow for me to navigate
It is very slow for me to navigate
What does very slow mean and what are you trying to do? For the normal replay searches (searching for a player, searching for a map, etc.) it always felt fast enough for me.