EvenMatchOmni

Discuss and provide feedback on Maps.
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

I'll do it as soon as I get real internet back.
User avatar
Enyo
Posts: 1626
Joined: Mon Apr 05, 2021 11:27 pm
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by Enyo »

pooty wrote: Tue Aug 30, 2022 3:22 pm
had 1 kill and 3600 PPH :o :lol:
So I saw something the other night with some PPHs were off, basically because the times looked off...I tried to get a screenshot of it but failed.
Maybe check that if we see something throwing the timer off.
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
User avatar
captainsnarf
Posts: 2632
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: EvenMatchOmni

Post by captainsnarf »

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.
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

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.
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

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.
User avatar
captainsnarf
Posts: 2632
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: EvenMatchOmni

Post by captainsnarf »

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.
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

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.
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

On Server
User avatar
pooty
Posts: 4358
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

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
User avatar
captainsnarf
Posts: 2632
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: EvenMatchOmni

Post by captainsnarf »

Download here EvenMatchOmni_3.3.zip

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;
	}
The fix is to set PastPPHMap = -1, not 0.

Love ya wormbo but damn this code is shameful

Code: Select all

switch (int(PPH == -1) + 2 * int(PastPPH == -1) + 4 * int(PastPPHMap == -1))
I could probably just delete it all and do this

Code: Select all

return (CurrentPPH + PastPPH)/2;
Post Reply