1 |
I agree that it would be good to distinguish low ranks better than by different shades of orange. But this does not influence balance because the balancer operates on the continous numbers behind the discrete ranks.
|
1 |
I agree that it would be good to distinguish low ranks better than by different shades of orange. But this does not influence balance because the balancer operates on the continous numbers behind the discrete ranks.
|
2 |
\n
|
2 |
\n
|
3 |
I think there are two major improvements for balance to be made:
|
3 |
I think there are two major improvements for balance to be made:
|
4 |
\n
|
4 |
\n
|
5 |
1. Reduce "the fluff" that makes shown rating deviate from actual WHR mean value.
|
5 |
1. Reduce "the fluff" that makes shown rating deviate from actual WHR mean value.
|
6 |
\n
|
6 |
\n
|
7 |
2.
Look
into
how
the
code
iterates
through
player
constellations
and
optimize
it
to
also
minimize
rating
deviation
if
this
is
possible
without
worsening
equal
win
chances.
Maybe
the
code
can
also
be
made
more
efficient
so
that
more
constellations
can
be
checked
for
this
without
more
computation
power.
If
someone
points
me
to
this
piece
of
code,
I
might
take
a
quick
look
at
it.
|
7 |
2.
Look
into
how
the
code
iterates
through
player
constellations
and
optimize
it
to
also
minimize
rating
deviation
if
this
is
possible
without
worsening
equal
win
chances.
Maybe
the
code
can
also
be
made
more
efficient
so
that
more
constellations
can
be
checked
for
this
without
more
computation
power.
|
|
|
8 |
\n
|
|
|
9 |
Edit:
|
|
|
10 |
I took a look in the code and found two balance functions: LegacyBalance and PartitionBalance. If player number < DynamicConfig.Instance.MinimumPlayersForStdevBalance, it does PartitionBalance. Otherwise LegacyBalance.
|
|
|
11 |
\n
|
|
|
12 |
LegacyBalance goes through up to 2 million constellations in a recursive way while also minimizing deviation weighted by DynamicConfig.Instance.StdevBalanceWeight (very elegant but not most efficient).
|
|
|
13 |
\n
|
|
|
14 |
PartitionBalance goes through all constellations iteratively. As going through all constellations would be too costly for very many players (more than 38 resulting in 1 million constellations), it defaults to LegacyBalance for very many players. This one is more efficient but I didn't find a deviation minimization in it.
|
|
|
15 |
\n
|
|
|
16 |
Now the question is what the values for DynamicConfig.Instance.MinimumPlayersForStdevBalance and DynamicConfig.Instance.StdevBalanceWeight are.
|
|
|
17 |
\n
|
|
|
18 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/tree/master/ZkLobbyServer/autohost/Commands]Commands[/url]
|
|
|
19 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/blob/master/ZkLobbyServer/autohost/Commands/CmdBalance.cs]CmdBalance[/url]
|
|
|
20 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/blob/06d3dbbae8f8da66e8631666df21124101e92daf/ZkLobbyServer/ServerBattle.cs#L455]ServerBattle[/url]
|
|
|
21 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/blob/06d3dbbae8f8da66e8631666df21124101e92daf/ZkLobbyServer/SpringieInterface/Balancer.cs#L401]Balancer[/url]
|
|
|
22 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/blob/06d3dbbae8f8da66e8631666df21124101e92daf/ZkLobbyServer/SpringieInterface/PartitionBalance.cs#L225]PartitionBalance[/url]
|
|
|
23 |
[url=https://github.com/ZeroK-RTS/Zero-K-Infrastructure/tree/master/ZkLobbyServer/MatchMaker]MatchMaker[/url]
|