I am working on an algorithm to score individual players in a team-based game. The problem is that no fixed teams exist - every time 10 players want to play, they are divided into two (somewhat) even teams and play each other. For this reason, it makes no sense to score the teams, and instead we need to rely on individual player ratings.

There are a number of problems that I wish to take into account:

- New players need some sort of
*provisional ranking*to reach their "real" rating, before their rating counts the same as seasoned players. - The system needs to take into account that a team may consist of a mix of player skill levels - eg. one really good, one good, two mediocre, and one really poor. Therefore a simple "average" of player ratings probably won't suffice and it probably needs to be weighted in some way.
- Ratings are adjusted after every game and as such the algorithm needs to be based on a per-game basis, not per "rating period". This might change if a good solution comes up (
*I am aware that Glicko uses a rating period*).

Note that cheating is not an issue for this algorithm, since we have other measures of validating players.

I have looked at `TrueSkill`

, `Glicko`

and `ELO`

(which is what we're currently using). I like the idea of TrueSkill/Glicko where you have a deviation that is used to determine how precise a rating is, but none of the algorithms take the random teams perspective into account and seem to be mostly based on 1v1 or FFA games.

It was suggested somewhere that you rate players as if each player from the winning team had beaten all the players on the losing team (25 "duels"), but I am unsure if that is the right approach, since it might wildly inflate the rating when a really poor player is on the winning team and gets a win vs. a very good player on the losing team.

Any and all suggestions are welcome!

EDIT: I am looking for an algorithm for established players + some way to rank newbies, not the two combined. Sorry for the confusion.

There is no AI and players only play each other. Games are determined by win/loss (there is no draw).