MischiefSC, on 06 September 2014 - 12:39 PM, said:
That's what I was trying to get at. So it does effectively alternate adds to each team for new population. In balancing Elo does it shoot for an initial 'range' target or does it grab a 'bundle' of high/low to match target for the match?
So if I get this right it grabs a couple of the oldest waiting players in the queue and they effectively set the Elo target for the match as well as pre-seed themselves in the 4x3 matchup. Then it looks through the whole queue for fits based on criteria of exact tonnage match > weight class and matching Elo > high/low to target?
For all the talk of nobody taking Lights I'll get matches with 4 lights on each side. Does it prioritize weight class over Elo or vice versa?
Yes, it effectively alternates adding to each team, as long as the size of the groups being added are roughly equivalent. In the case where an 8 man is added to team 1, and a 5 to team 2, then the next team to receive a group would be team 2 since it is still the smaller.
And now this is exactly where it gets complicated.. Yes, the average Elo of the seed group is saved off. This become the baseline skill level around which the entire game is built up on. There are also obviously multiple competing constraints that the matchmaker is attempting to simultaneously satisfy, including group size, Elo, weight class, game modes, region, and factions when we enable that feature. Most of those constraints require some form of tolerance decay, or release valve as I describe them to design. The decay functions are exponentials, with constant start and stop inputs, that vary with respect to time (age). That evaluation of a given decay function is quantized onto an output range, and these are fed into a search algorithm that locates potential matches and returns the most desirable. All of these parameters are tunable on the fly from our matchmaking command center.
This somewhat analog approach to balancing simultaneous constraints seems to work quite well in practice. We can easily make small tweaks to inputs to subtly change our desired biases in match outputs. There are a few constraints that always take priority. These are what we refer to as hard-constraints, as opposed to the softer constraints like Elo, or the number of heavy mechs in a match. Those hard constraints are currently team size, balanced weight class matching (although this switches off after 4 minutes searching in group queue), region, and game mode.
MischiefSC, on 06 September 2014 - 12:39 PM, said:
Is it pattern generated, as in when I finish a Terra Therma match another TT match starts or just scrolling down a menu? As in if I finish that TT match and immediately drop another am I likely to get caught in that same new TT match or is this just random chance? I find that if I drop again immediately after the last I'm more likely to catch the same map or is that just anomalous?
It's a random dice roll, using the c standard random function, seeded with system time, every time a server boots. There should be no magical stride that sees you getting placed on the same server on the same map repeatedly. There have been times where I could swear there was some selection bias in the system myself though. One of the engineers went so far as to write up a quick simulation of distributed RNG's like we're using just to see if there was a loss of entropy when compared to a single random number generator. We found that the distribution using a distributed system was less random. Not terribly surprising I guess. Anyways, all of this has reminded me to go back and change this so that it uses a centralized RNG; so thanks!