EvenMatchOmni

Discuss and provide feedback on Maps.
Post Reply
User avatar
captainsnarf
Posts: 2630
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

EvenMatchOmni

Post by captainsnarf »

It's pretty easy to repackage this thing into our own version (already done actually). Is that something we want?

Currently your score for balancing purposes is based on your current points per hour, average points per hour, and also your average points per hour for that map. Those are combined to give your score.

We could change that to do whatever.

Here is what is there now in code:

Code: Select all

case 0: // all three PPH values available
	return 0.4 * (PPH + PastPPHMap + 0.5 * PastPPH);
			
case 1: // no current (meaningful) score yet, but both past PPH available
	return 0.8 * (PastPPHMap + 0.25 * PastPPH);
			
case 2: // no past generic PPH (should not be possible)
	return 0.5 * (PPH + PastPPHMap);
			
case 3: // only past map-specific PPH (should not be possible either)
	return PastPPHMap;
			
case 4: // no past map-specific PPH
	return 0.5 * (PPH + PastPPHMap);
			
case 5: // only past generic PPH
	return PastPPH;
			
case 6: // only current PPH (new player)
	return PPH;
I was thinking of adding a fourth value - known player multiplier. By default this would be 1.0 so nothing changes. We then add a list of known players e.g. enyo,leon,xexx,tater,etc and give them higher multipliers, and maybe lower values for some others (they get high scores but don't help their team). Enyo and Xexx both do a good job leading the team communication. That's hard for PPH to quantify so something like a known multiplier might help.
User avatar
pooty
Posts: 4351
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

Nice. I think we probably want that.
The other thing I think we want is to able to force a reshuffle_teams() at admin command. We just need the code to allow admins to do that within even match. Like a manual mulligan, at times the admins can tell teams are fubar'd and it'd be nice to just get a do over.
User avatar
McLovin
Posts: 1165
Joined: Sat Apr 03, 2021 12:54 pm
Location: Salt Lake City, Utah
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by McLovin »

pooty wrote: Sun Jan 16, 2022 10:29 pm ...
The other thing I think we want is to able to force a reshuffle_teams() at admin command. We just need the code to allow admins to do that within even match. Like a manual mulligan, at times the admins can tell teams are fubar'd and it'd be nice to just get a do over.
How would the reshuffle_teams() work? Wouldn't you get the same teams you started with. What would be the difference between reshuffle_teams() and forcing the map to reload?
User avatar
pooty
Posts: 4351
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

Probably why it wasn't implemented, it only works after a mulligan because there's new scores... when the mulligan hits, it usually does decent job reshuffling. But say one team misses the mulligan by a few seconds, now we could force it. Or when one team is clearly sandbagging...
User avatar
McLovin
Posts: 1165
Joined: Sat Apr 03, 2021 12:54 pm
Location: Salt Lake City, Utah
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by McLovin »

pooty wrote: Mon Jan 17, 2022 9:40 am ...
Or when one team is clearly sandbagging...
...
Image
User avatar
captainsnarf
Posts: 2630
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: EvenMatchOmni

Post by captainsnarf »

Ok, so I have shuffle working and also the config database for known players.

For shuffle, admin must login then type "shuffle" in chat to shuffle teams.


For balancing, I was hoping I could just plop the multiplier in next to the PPH calculating code but there is more to it than that.

PPH is used at match start and also during shuffle (match start does a shuffle).

PPH is *not* used for new players joining.

If teams are odd, new player is put on the team with less players.
If teams are even, new player is put on the team that has made less progress. This is configurable based on the 'SmallTeamProgressThreshold'. Not sure what our setting is.

'Progress' is basically which team has the most core points and power node health.

If these are the teams:

Code: Select all

red           blue
----          --------
leon          snarf
sk10h         kameltoe
golasa69      xexx
and blue got to the node first, then it will put enyo on red if he joins. If teams are even and score is even, new players always go on red.


I think it shouldn't look at the game score/nodes at all for new joins. It should look at the team instead. If teams are even, add up the team PPH and put them on the weaker team. Does that seem right?
User avatar
pooty
Posts: 4351
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

Very Nice!
I think it shouldn't look at the game score/nodes at all for new joins. It should look at the team instead. If teams are even, add up the team PPH and put them on the weaker team. Does that seem right?
Yes..that would be better...when teams are even. I don't think there's fix when teams are uneven by player count, you get who you get. You might get Xexx,Enyo, Leon, or you might get Javiar, Goloas69.

And I believe the Shuffle in game (eg. Mulligan) takes into account any current PPH scores..not just the saved ones IIRC.
User avatar
captainsnarf
Posts: 2630
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_1.0.zip

Changes from EvenMatch

- Add "shuffle" call for admins that can be used at any time. Does a full 'mulligan' shuffle. Use responsibly, everybody dies when you call this.
- Add Known players database with PPH multiplier. Default this is 1.0 but some players will be higher.
- Replace 'progress' calculation to be based on team PPH not team score. This affects shuffle, mulligan, teams call, and new joins.


It includes a known player database. Currently there is only one player :mrgreen:

Code: Select all

[EvenMatchKnownPlayerDatabase KnownPlayerPPH]
PPH=(PlayerName="Snarf",Multiplier=1.0)
TODO is to add more PPH rows for more players. Help is appreciated :) We could probably start with e.g. top 20 players and see how it works first. The other changes to the progress calculation might already be enough and we might not need this list after all. I think maybe the max multiplier should be 1.5? and lowest is 0.75? something like that.

For the most part I think PPH is correct, but say these guys have all the same PPH (roughly):
leon,sk10,xexx,enyo

IMO it is a mistake to put xexx and enyo on the same team. I think they should be scored higher even if PPH for all four is the same. They help their team more than both leon and sk10 due to 'leadership' points. Other players ( won't name names) actively try to talk your team out of trying. They might get scored lower even if they get frags.

This is a drop in replacement for the existing EvenMatch mutator. It uses the same EvenMatchPPH.ini file. It might be a good idea to back that up 8-)

Also, I need to add that this is pretty much untested. I don't really have a server or players to test with :P
User avatar
pooty
Posts: 4351
Joined: Sat Apr 03, 2021 10:22 am
Location: Michigan
Server Sponsor: Yes
Server Admin: Yes

Re: EvenMatchOmni

Post by pooty »

I'll give it the once over later and try to get it on the server this afternoon.

I think with the KnownPlayer, we can start simple, and give the top 10 players maybe a 1.25 multiplier and maybe a mendoza line group a 0.75 (that group that you know is just not good... Golosa69 comes to mind).

Going forward.
I think we can leverage this: https://www.omnipotents.com/utstats/ons ... e=6&page=1 (not fully complete yet)
It has derived stats for nodes constructed / hour, nodes destroyed / hour, constructing nodes des/hour, and composite (sum) rank.
I don't have the sorting working yet... it should sort by ?? Or if maybe someone has a better way to generate a composite ranking vs. sum?

And I need to filter it out, so you have to have at least 10hours of playing time.
Another thing, stats db goes by player name, not guid, so you might see people who change their name listed more than once. The EvenMatch uses the guid so its good wrt to that.
User avatar
captainsnarf
Posts: 2630
Joined: Tue Jul 06, 2021 1:51 pm
Location: Washington
Server Sponsor: Yes
Server Admin: Yes
Contact:

Re: EvenMatchOmni

Post by captainsnarf »

pooty wrote: Sun Jan 23, 2022 11:20 am I'll give it the once over later and try to get it on the server this afternoon.

I think with the KnownPlayer, we can start simple, and give the top 10 players maybe a 1.25 multiplier and maybe a mendoza line group a 0.75 (that group that you know is just not good... Golosa69 comes to mind).

Going forward.
I think we can leverage this: https://www.omnipotents.com/utstats/ons ... e=6&page=1 (not fully complete yet)
It has derived stats for nodes constructed / hour, nodes destroyed / hour, constructing nodes des/hour, and composite (sum) rank.
I don't have the sorting working yet... it should sort by ?? Or if maybe someone has a better way to generate a composite ranking vs. sum?

And I need to filter it out, so you have to have at least 10hours of playing time.
Another thing, stats db goes by player name, not guid, so you might see people who change their name listed more than once. The EvenMatch uses the guid so its good wrt to that.
I used player names for the known player database because I didn't want to have to lookup guids. It can of course be spoofed if someone impersonates an alias, but this is only for balancing purposes so it's not really a big deal.
Post Reply