Firstly I found out that my more advanced probability systems are equivalent to my simple probability average system (not to current, though).
[Spoiler]This system is still of another type than the systems mentioned in this thread. Here you can see the
simple version. I found the equivalence while thinking about
FFA calculation, because the formulas can be brought in the same form (with higher order tensors though).
Secondly I have found out that applying my distinctivity modificator D(n) (which depends on the average number n of players in a team) on a probabilty p calculated by the elo system is surprisingly equivalent to a multiplication of the elo difference with D(n). Proof:
[Spoiler]My distinctivity modification formula was p^D/(p^D+(1-p)^D)=1/(1+(1/p-1)^D)=f((f^-1(p))^D), where f(x)=1/(1+x) and f^-1 its inversion. You can already see that the composition of f and exp is the Fermi-function, which is the probability function of the elo system p=f(exp(eloDif/b)), b:=400/ln(10). So if we apply f^-1 on p, we get exp(eloDif/b). If we apply ^D, we get exp(D*eloDif/b). If we apply f again, we get the elo probability formula with D times eloDif.
Therefore we can represent any system so far (except the above mentioned probability system) with only a elo difference multiplicator D(n). Current: D(n)=1, smes: D(n)=n(0.5+0.5ⁿ), sqrt sm: D(n)=sqrt(n) (the one I prefer due to my test results)
Thirdly I have found a factor "Math.Sqrt(sumCount / 2.0)" in
SpringBattle.cs. This is exactly the factor sqrt(n), because n=sumCount/(number of teams). (The code only considers 2 teams.) This irritated me. I expected this factor to be 1 so that the overall elo change due to a game is constant and only distributed to players (proportional to EloInvWeight). But this means that games with more players are considered more meaningful to elo change. Of course the average elo change of a player will still be lower in a bigger game proportional to 1/sqrt(n), but I would expect it to be 1/n. The only argument for this that comes to my mind is that games with more players tend to be longer and thus would be more meaningful, but taking other things than win or loss into account doesn't sound reasonable to me. This factor is not directly an error, but I would either use a constant factor or a dependency in (winnerInvWeight+loserInvWeight)/sumCount to make elo change higher for lower weight.
So I would move the factor sqrt(n) from the elo change formula in lines 146, 147 to the elo probability formula in lines 142, 143 as an elo difference multiplicator, because games with more players are not more meaningfull, but more distinct.