Page 8 of 13
Posted: Sat Jul 31, 2010 4:39 pm
by Imago
wasn't fwiffo archiving asgs stats pages? couldn't allsrv fetch the players sigma and mu from this?
fwiffos schema looks like this:
Code: Select all
DROP TABLE IF EXISTS `stats`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `stats` (
`id` int(10) NOT NULL auto_increment,
`place` int(11) NOT NULL,
`callsign` varchar(20) NOT NULL,
`mu` decimal(11,2) NOT NULL,
`sigma` decimal(11,2) NOT NULL,
`rank` decimal(11,2) NOT NULL,
`wins` int(11) NOT NULL,
`losses` int(11) NOT NULL,
`draws` int(11) NOT NULL,
`defects` int(11) NOT NULL,
`stack_rating` decimal(11,2) NOT NULL,
`cmd_mu` decimal(11,2) NOT NULL,
`cmd_sigma` decimal(11,2) NOT NULL,
`cmd_rank` decimal(11,2) NOT NULL,
`cmd_wins` int(11) NOT NULL,
`cmd_losses` int(11) NOT NULL,
`cmd_draws` int(11) NOT NULL,
`kills` int(11) NOT NULL,
`ejects` int(11) NOT NULL,
`drn_kills` int(11) NOT NULL,
`stn_kills` int(11) NOT NULL,
`stn_caps` int(11) NOT NULL,
`kills_per_ejects` decimal(11,2) NOT NULL,
`hrs_played` decimal(11,2) NOT NULL,
`kills_per_hr` decimal(11,2) NOT NULL,
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
`status` int(1) NOT NULL,
`lgp` int(8) NOT NULL,
PRIMARY KEY (`id`),
KEY `index` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=932403 DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
if it can't find it here fail-over somehow either using the ASGS rank or defaults for the sigma/mu
this is just a suggestion to see us though in R6 until R7/CSS. If this is feasible, then am i right in understanding that allsrv would have the required info. necessary to perform autobalance "bakers way"?
Posted: Sat Jul 31, 2010 5:56 pm
by cashto
the.ynik wrote:QUOTE (the.ynik @ Jul 31 2010, 08:28 AM) Looking at your code, isn't it likely that the 'matching' player (plyBestMatch) is the player with the second-highest rank?
No -- what it does is put the best player in the pick pool on the weaker team, then finds a player in the pick pool that balances the teams as much as possible.
For example, if the team ranks at this point are 100 vs 90, the algorithm picks the best player in the pick pool. Let's say he's a 12. Now it's 100 vs 102, so the algorithm looks for a 2. There isn't a 2, but there is a 4. So after this iteration of the loop, the teams are 104 vs 102. (I've simplified and treated ranks as real numbers, but the algorithm works the same way when rank = {mu,sigma}).
If there's an odd number of players in the pick pool, the remaining players is assigned to the weaker side. We can be sure that this player is in the bottom half of the pick pool, and probably lower (since the top player was removed each iteration).
See, that wasn't so hard to explain, was it? Sheesh.
Posted: Sat Jul 31, 2010 6:23 pm
by sgt_baker
Cashto got it.
Posted: Sat Jul 31, 2010 7:05 pm
by cashto
Well, this does solve the problem that where post-launch autobalance believes that ten (1)s equal one (10). I made a misstatement earlier when I implied that if yellow takes a {25,8.33} newbie and blue takes a {25,1} vet, their teamranks go up by the same amount. Actually blue's sigma goes up more, and teamrank is like individual rank ... three sigmas are subtracted from mu to be conservative. So I can see that it will help the post-launch situation ... team sizes will get unbalanced, but by not as much.
In large games, though, this algorithm is not likely to make much a difference pre-launch. Again, if teams are equal and sigmas are randomly distributed, the contribution by sigma on each side will usually cancel out. Note that the common complaint about autobalance is NOT its pre-launch accuracy, it's about how every time the button is pushed, people jump off the team they're assigned on -- either they don't like their comm, their team, the factions, or maybe they just want to sit around and NOAT whore and forgot to set AFK. To some degree, that stacking instinct is the thing we're trying to stop -- but also, players will not be happy if they do not have SOME freedom to join the team they want.
Posted: Sat Jul 31, 2010 7:24 pm
by sgt_baker
This is something the so-called devs aren't prepared to discuss at the moment unless you give them a solve-all solution "here and now".
Posted: Sun Aug 01, 2010 1:51 am
by Imago
because it's obvious if something is done w/o your approval it is wrong.
you have a ticket in trac for the first change needed to get TrueSkill in alleg, now shut your pie hole and play nice or else you can find some other "so-called" dev to do it.
Posted: Mon Aug 02, 2010 2:14 am
by Imago
Posted: Mon Aug 02, 2010 7:15 am
by Imago
latest change for #192
http://trac.alleg.net/changeset/883/
Sgt_Baker, now I'm going to need your help (I've got Mu and Sigma being sucked in very well now) I have question marks for implementing your c# class into the fsmission code for allegiance. I added the g.balance struct that contains srvVariance, what is that default supposed to be? Also isn't there any variable for the # of teams?
In the meantime I will continue working on "our" ticket by adding in functionality to "refresh" all the players' MSR in their stats object periodically (similarly to how the lobby status is set dirty, when game running state changes, # of teams changes, etc) - this way "we" will have near-real time mu and sigma values for everyone when join requests are made in R6

(Two Weeks).
Posted: Tue Aug 03, 2010 12:43 am
by Imago
myself wrote:In the meantime I will continue working on "our" ticket by adding in functionality to "refresh" all the players' MSR in their stats object periodically (similarly to how the lobby status is set dirty, when game running state changes, # of teams changes, etc) - this way "we" will have near-real time mu and sigma values for everyone when join requests are made in R6

(Two Weeks).
^--- Done. No replies, no comments to ticket, no help with your class....
http://trac.alleg.net/changeset/886
Timestamp:
08/02/10 19:46:36 (less than one hour ago)
Author:
Imago
Message:
this commit completed the periodic (well timed) mu sigma rank (MSR) refresh
tracking #192
File:
1 edited
*
branch/FAZR6/src/FedSrv/fsmission.cpp (modified) (3 diffs)
Resuming thumb up ass position - Hey, at least my server has mu and sigma in it now..
I still dont know wat srvVariance is.. cmon after years of waiting for someone to do stuff with his , well here i am...stuff is being done...
Posted: Tue Aug 03, 2010 1:33 am
by fuzzylunkin1
So . . . once someone actually does something people stop talking about it?