Donate to the B3 fund!

"even a small donation helps!"
Donate with PayPal!
Most of the plugins here are made by B3 users and the authors may not visit frequently. If you need support for plugins or if questions remain unanswered, you will have to contact the author directly. Read the full Support Disclaimer here

NOTE: Do not attach plugins to your forumtopics! Attachements are periodically removed by maintenance tasks. Upload your plugins to our Downloads section instead!

Author Topic: PowerAdmin MoH  (Read 70006 times)

Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #45 on: October 29, 2010, 09:47:08 AM »
any opinions about possibly adding a short countdown for !teams balance (or autobalance), or even a global message to the server of the players being balanced?
I'm not sure what you mean here. At the moment the bot send a global message "'Autobalancing Teams!'" when it does balance from autobalance or !teams.

Is there anyway to add a autobalance exception IE, clan tag?
There could be different strategies to pickup which player to move over the other team. Or even different strategies for considering teams unbalanced (currently only the number of players in each teams is taken into account)

Could please anyone who has ideas about different balancing strategies expresses them and react on this
« Last Edit: October 30, 2010, 01:47:20 AM by Courgette »

Offline foxinabox

  • Sr. Member
  • ****
  • Posts: 157
    • Clan ATRS (Atreides)
Re: PowerAdmin MoH
« Reply #46 on: October 29, 2010, 07:52:36 PM »
I'm not sure what you mean here. At the moment the bot send a global message "'Autobalancing Teams!'" when it does balance from autobalance or !teams.

I'm almost positive when I used !teams, the response was in a [pm], which is why I brought it up. As for the other thing I mentioned about it, was having a response with a countdown, for example, "Teams being autobalanced in X seconds." or if that seems kind of unnecessary, maybe just "Teams unbalanced, <playername> being swapped." Stands out a little more in my mind, but just a suggestion. =p

As for the exceptions for autobalancing, perhaps poeple with low KDRs, or people that recently joined the server being swapped. I don't know how the internals of the plugin works, whether it be random, or based on length of connection. I do like Darksys's idea of clantag exceptions, I would personally use it, but some people may not like it.


Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #47 on: October 30, 2010, 02:38:21 AM »
The game has a spectator mode, but its not simple to use. Just wondering if the bot could make it easier in any way.
DICE advises not to use the spectator mode because it is too unstable. I won't spend time on the spectator mode until it work fine on the game engine side

poweradminmoh v0.8 available. Just add a message to all player whenever the bot balances teams

Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #48 on: October 30, 2010, 01:44:51 PM »
Current balancing strategy explained :

How to recognize that teams are uneven :
  • count how many players are on team A
  • count how many players are on team B
  • if the difference of players between team A and B is greater than the 'maxDifference' value, then teams are considered unbalanced

How to choose the players to force to the other team :
For each player the bot saves the last time that player changed team (voluntary, not when the bot forces him). This value is stored under the name 'teamtime' and updated when :
  • a player enters the game server
  • a player changes teams (voluntary , not when the bot forces him to a team)
To choose the player(s) to force to the other team, the bot will choose the player with the latest 'teamtime' (hence the one who last changed teams voluntary). This is repeated until teams are balanced


Offline Freelander

  • XLRstats dev.
  • Dev. Team
  • Hero Member
  • *
  • Posts: 1000
Re: PowerAdmin MoH
« Reply #49 on: October 30, 2010, 02:32:41 PM »
Would it be possible to integrate player's score in to this process and pick the player with the lowest score? In an action based game, a player who did the most of the work to win the round can find himself in the losing team suddenly because teams are unbalanced and this may be annoying. Likewise in a team assault this may affect the result of the round.

Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #50 on: October 30, 2010, 03:19:07 PM »
MoH provides 3 info for all players : kills, deaths and score.
If you can come up with clear rules on how to pickup a player depending on all players score, I'll see what I can do

Offline Darkskys

  • Full Member
  • ***
  • Posts: 79
    • 82nd Infantry Division
Re: PowerAdmin MoH
« Reply #51 on: October 30, 2010, 07:20:23 PM »
!swap works good. Been using it quite often on our combat mission server(swapping clan members and/or low score players to try to even team scores).
Haven't got around to testing !match again since servers have been full 24-7.
I hope to be able to try it more tonight.

B3 ver 1.4.1b
Poweradmin ver. 0.8

Offline foxinabox

  • Sr. Member
  • ****
  • Posts: 157
    • Clan ATRS (Atreides)
Re: PowerAdmin MoH
« Reply #52 on: October 31, 2010, 02:23:26 AM »
I'm with Freelancer. The bot should balance primarily from the lowest kill count because someone can just join a server and start racking up kills.

Offline Freelander

  • XLRstats dev.
  • Dev. Team
  • Hero Member
  • *
  • Posts: 1000
Re: PowerAdmin MoH
« Reply #53 on: October 31, 2010, 08:40:46 PM »
Maybe you can take 3 players with the latest team time and force the one out of these three to the other team with the least score.

Another option would be to force the player to the other team with the least score without looking at the team time as this option would have the least affect on the round score.

Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #54 on: October 31, 2010, 09:16:08 PM »
Another option would be to force the player to the other team with the least score without looking at the team time as this option would have the least affect on the round score.
This would not be satisfying imho. Picture the following situation :
  • The server gets 8 players, 4 in each team. Team A is winning
  • The best player from team B goes to team A (because he's a prick that does like to be in the loosers team) making teams unbalanced both by the number of players and their skill
  • If B3 was to balance the teams by taking out the worst player from team A to team B then B3 will be contributing to making teams unbalanced (by the players skill)
  • This would lead into a situation where team A is raping team B. Players from team B will eventually be fed up with the situation and either try to move to the winning team, or leave the server...hence making things even worst

That's why for the moment I'm not coding anything of this sort. I don't understand why you seems to believe that it is fair to switch over the worst player. Is there something I'm missing here ?

Offline foxinabox

  • Sr. Member
  • ****
  • Posts: 157
    • Clan ATRS (Atreides)
Re: PowerAdmin MoH
« Reply #55 on: October 31, 2010, 11:00:50 PM »
Its not a matter of switching the worst player, its more of switching the player that has the lowest score and a low amount of connection time (if it's possible.) Is there some way to have the bot read some sort of formula where Player X connected at Y time and has a score of Z, where Y equals the amount of minutes, and possible having the bot add together minutes+score to equal some sort of number to calculate who gets swapped?

As for other games like CoD4, the team balance is based off of who has the shortest amount of time on the team I believe. No matter what aspect you look at this, I believe there is no fool proof way to do this. Yes, shortest connection time could be the number one player, could be the worst player. Yes, lowest score may have been the worst player, but it could have also been the best player with a crap score that particular round.

Offline BetterDeadThanZed

  • Beta Testers
  • Hero Member
  • *
  • Posts: 681
    • Killin Zeds
Re: PowerAdmin MoH
« Reply #56 on: November 01, 2010, 04:41:57 AM »
How about just a random switch? Seems too complicated and too many opinions to consider when talking about requirements to be switched.

Offline foxinabox

  • Sr. Member
  • ****
  • Posts: 157
    • Clan ATRS (Atreides)
Re: PowerAdmin MoH
« Reply #57 on: November 01, 2010, 05:21:19 AM »
But if you do random, then it may pull the best player on the team, thus unbalancing the teams skill-wise, or yanking someone from getting killstreaks. Like I said, no matter how its made, there are always negatives to some degree. Thats why i think switching the lowest score/connect time is best. The game itself is unbalanced at best anyway, so any given map its usually one sided.
Maybe to alleviate some unbalancing,  the bot/game could auto-scramble the players at the beginning of a new map so its not the same teams, and so players can't stack the teams. (This is of course when the bot 'learns' to scramble.) CoD series does this and I prefer it. New maps and new enemies makes things more fir and interesting.

Offline Courgette

  • Senior Dev.
  • Hero Member
  • *
  • Posts: 4883
    • Github repository
Re: PowerAdmin MoH
« Reply #58 on: November 01, 2010, 11:29:29 AM »
I'm thinking we could balance teams differently when teams are unbalanced because of a player disconnecting. In that case there is no 'culprit' to search for, so it might be interesting in such situation to compute the score sum from both teams and pickup the player to move based on its score.

Picture the following teams :
TEAM A
TEAMB
joe (score 30)killer (score 24)
mike (score 5)bamby (score 0)
junior (score -4)rampage (score 20)
ted (score 12)pumpkin (score 42)
scores sum : 43scores sum : 86

Let say mike leaves the game, teams are still not unbalanced by the number of players (gap = 1)
Let say junior also leaves the game, we now have :
TEAM A
TEAMB
joe (score 30)killer (score 24)
ted (score 12)bamby (score 0)
rampage (score 20)
pumpkin (score 42)
scores sum  :42scores sum : 86
Teams are unbalanced (by the number of players)

In that case, the bot could compute the following solutions :
  • Solution A :
TEAM A
TEAMB
joe (score 30)
ted (score 12)bamby (score 0)
killer (score 24)rampage (score 20)
pumpkin (score 42)
scores sum : 66scores sum : 62

  • Solution B :
TEAM A
TEAMB
joe (score 30)killer (score 24)
ted (score 12)
bamby (score 0)rampage (score 20)
pumpkin (score 42)
scores sum  :42scores sum : 86

  • Solution C :
TEAM A
TEAMB
joe (score 30)killer (score 24)
ted (score 12)bamby (score 0)
rampage (score 20)
pumpkin (score 42)
scores sum  :62scores sum : 66

  • Solution D :
TEAM A
TEAMB
joe (score 30)killer (score 24)
ted (score 12)bamby (score 0)
pumpkin (score 42)rampage (score 20)
scores sum  :84scores sum : 44

As such the bot could easily recognize that solutions A or C are the best to maintain the skill balanced.


In the case teams are unbalanced because of a player entering the game, then move that player over (based on teamtime)
In the case teams are unbalanced because of a player switching sides, then move that player over (based on teamtime)

Offline Darkskys

  • Full Member
  • ***
  • Posts: 79
    • 82nd Infantry Division
Re: PowerAdmin MoH
« Reply #59 on: November 01, 2010, 11:36:33 AM »
This would not be satisfying imho. Picture the following situation :
  • The server gets 8 players, 4 in each team. Team A is winning
  • The best player from team B goes to team A (because he's a prick that does like to be in the loosers team) making teams unbalanced both by the number of players and their skill
  • If B3 was to balance the teams by taking out the worst player from team A to team B then B3 will be contributing to making teams unbalanced (by the players skill)
  • This would lead into a situation where team A is raping team B. Players from team B will eventually be fed up with the situation and either try to move to the winning team, or leave the server...hence making things even worst

That's why for the moment I'm not coding anything of this sort. I don't understand why you seems to believe that it is fair to switch over the worst player. Is there something I'm missing here ?

No, you are not missing anything, actually you hit the nail on the head.

I feel the way the teambalance is now works fine(except for when you get balanced you lose any kill streak reward you may have had)Thats why i asked if you could do a clan tag exception(since these are the people paying for the servers).
I use the swap command to move my clan mates and pubbers around to make the gameplay as evenly as possible.
 
Teambalance is just to even the # of players, not skill balance. (All my server admins handle The movment of people to make the gameplay more even).
Ya maybe you could balance by skill rating but that doesn't mean that person(with the highest skill rating) will be on top of the round.
I do like the idea of srcanbling the teams at the begining of the round,

 


Rate this page +1 at Google Search

anything