EvenMatchOmni
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
I'll do it as soon as I get real internet back.
Re: EvenMatchOmni
That's a good point. The timer for matches has always seemed off, sometimes showing something like you only played for 5 min but you were actually in the match for 10 min. That would certainly contribute to throwing PPH off, especially per map.
Just another good reason not to rely on map specific PPHs. If the timer is off kilter often, and seems to be, it's off for everyone and the skewed PPHs balance out over time for average PPH, but not so much for map specific PPH.
Using only average PPH could have a negative effect too, where the same players are getting stuck on the same team all the time. But, hopefully with the different mix of players on the server from night to night, that won't be an issue.
“Never argue with stupid people, they will drag you down to their level and then beat you with experience.”
― Mark Twain
― Mark Twain
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: EvenMatchOmni
So the 1 kill and 3600 PPH was on the scoreboard only.
I noticed that EvenMatch requires the player to have at least 10 points before calculating their PPH for balancing purposes. Less than that and they are just counted as zero. It recalculates everybody's PPH every time anyone makes any score (node, healing, kill, suicide, anything that affects score).
Also it seems like PPH is not averaged? I didn't see where that was happening anywhere. If true it means I could have 350 PPH one day, then end the night on a bad match with lousy 100 PPH. The next day when I join the server, it will count me as 100 PPH player. I'm not sure if that's happening but could be.
I noticed that EvenMatch requires the player to have at least 10 points before calculating their PPH for balancing purposes. Less than that and they are just counted as zero. It recalculates everybody's PPH every time anyone makes any score (node, healing, kill, suicide, anything that affects score).
Also it seems like PPH is not averaged? I didn't see where that was happening anywhere. If true it means I could have 350 PPH one day, then end the night on a bad match with lousy 100 PPH. The next day when I join the server, it will count me as 100 PPH player. I'm not sure if that's happening but could be.
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
I thought, and I'll have to check the code, but it computed a value, not really a true average, but look at the map specific PPH as well as overall player PPH. Have to check the exact formula.
I think we could alter the formula to something like, 80% based on overall player PPH, 20% map, or whatever percentage we feel works.
The one thing that gets me is that the PPH file has different Identifiers (not usual GUIDs) so its hard to match up the values to the actual player.
PPH = (PlayerOverallPPH * 0.8) + (PlayerMapPPH * 0.2) So the overall PPH counts more. I think the full map PPH made more sense in the past when more new/different maps coming out.
I also think the Know Player Multipliers need to be turned back on. I know Snarf suggested larger multipliers but I think the lower ones are better, if we make it more than say 30%, that's a huge "gap", so consider:
Enyo at 1.3, his pph is 400, plus .3 = 520.
So say you have the balancer and you have
Enyo = 520 (adjusted), and PlayerB at 400, then there's a 100 point gap to make up with the players, meaning,
Player B gets the stronger players of the next pair, until the balance is met.
So if the multiplier was huge (say 3x) then its a larger gap and the known player gets the weaker of the pair.
I think perhaps something in the .3 or .4 works.
Keep in mind, this won't just magically give the top player all the stains, it picks "pairs" of the top (remaining) scores and assigns them. And the idea that it bubbles up the Enyo/Leon/Xexx/4Doors etc. to the top so they get split up.
I think we could alter the formula to something like, 80% based on overall player PPH, 20% map, or whatever percentage we feel works.
The one thing that gets me is that the PPH file has different Identifiers (not usual GUIDs) so its hard to match up the values to the actual player.
PPH = (PlayerOverallPPH * 0.8) + (PlayerMapPPH * 0.2) So the overall PPH counts more. I think the full map PPH made more sense in the past when more new/different maps coming out.
I also think the Know Player Multipliers need to be turned back on. I know Snarf suggested larger multipliers but I think the lower ones are better, if we make it more than say 30%, that's a huge "gap", so consider:
Enyo at 1.3, his pph is 400, plus .3 = 520.
So say you have the balancer and you have
Enyo = 520 (adjusted), and PlayerB at 400, then there's a 100 point gap to make up with the players, meaning,
Player B gets the stronger players of the next pair, until the balance is met.
So if the multiplier was huge (say 3x) then its a larger gap and the known player gets the weaker of the pair.
I think perhaps something in the .3 or .4 works.
Keep in mind, this won't just magically give the top player all the stains, it picks "pairs" of the top (remaining) scores and assigns them. And the idea that it bubbles up the Enyo/Leon/Xexx/4Doors etc. to the top so they get split up.
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
Did we want to consider Damage points (or even can we with the new mutator?) I think Anon had a point that if you cooperate on a big vehicle you should get some value out of that vs. giving all the points to the finisher.
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: EvenMatchOmni
The large multiplier would also need a large list or it doesn't make sense. A large multiplier and a short list would mean the top players (on the short list) are more likely to end up with the stains. But if it's a large list with most of the regulars on it then their place on the list will matter more than their PPH. Middle road guys would be on the list if it's large enough so they would have middle road multipliers to match and would get sorted accordingly.
We talked about hard coding the list of players so balance would always be good. Having a large list with large multipliers is one way to do it without needing to change code.
We talked about hard coding the list of players so balance would always be good. Having a large list with large multipliers is one way to do it without needing to change code.
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
So I'll get the latest version loaded here shortly, and make the bIgnoreMapSpecificPPH=True and lets see how that goes first (so we don't make two changes at once). Then lets revisit if we need the multiplier. Perhaps less Map specific scoring will do the trick.
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
On Server
- pooty
- Posts: 4535
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: EvenMatchOmni
So not sure how the values work, but with Map Specific off:
EvenMatch: Shuffling teams based on previous known PPH...
EvenMatchDebug: p)o(Oty 37.96 PPH, currently on Blue
37 PPH is pretty low, but I don't have anyone to compare against. I'll leave it set, and lets see how it plays
EvenMatch: Shuffling teams based on previous known PPH...
EvenMatchDebug: p)o(Oty 37.96 PPH, currently on Blue
37 PPH is pretty low, but I don't have anyone to compare against. I'll leave it set, and lets see how it plays
- captainsnarf
- Posts: 2713
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: EvenMatchOmni
Download here EvenMatchOmni_3.3.zip
Changes
- Fix stupid bug with bIgnoreMapSpecificPPH
Change seemed simple enough
That goes into this shitty ass switch statement:
The fix is to set PastPPHMap = -1, not 0.
Love ya wormbo but damn this code is shameful
I could probably just delete it all and do this
Changes
- Fix stupid bug with bIgnoreMapSpecificPPH
Change seemed simple enough
Code: Select all
if(EvenMatchMutator.bIgnoreMapSpecificPPH)
{
PastPPHMap = 0;
}
That goes into this shitty ass switch statement:
Code: Select all
// combine current and past PPH values in a meaningful way
switch (int(PPH == -1) + 2 * int(PastPPH == -1) + 4 * int(PastPPHMap == -1)) {
case 0: // all three PPH values available
retval = 0.4 * (PPH + PastPPHMap + 0.5 * PastPPH);
break;
case 1: // no current (meaningful) score yet, but both past PPH available
retval = 0.8 * (PastPPHMap + 0.25 * PastPPH);
break;
case 2: // no past generic PPH (should not be possible)
retval = 0.5 * (PPH + PastPPHMap);
break;
case 3: // only past map-specific PPH (should not be possible either)
retval = PastPPHMap;
break;
case 4: // no past map-specific PPH
retval = 0.5 * (PPH + PastPPH);
break;
case 5: // only past generic PPH
retval = PastPPH;
break;
case 6: // only current PPH (new player)
retval = PPH;
break;
default: // none of the above (should not be possible)
retval = CurrentPPH;
}
Love ya wormbo but damn this code is shameful
Code: Select all
switch (int(PPH == -1) + 2 * int(PastPPH == -1) + 4 * int(PastPPHMap == -1))
Code: Select all
return (CurrentPPH + PastPPH)/2;