Digital Paint Discussion Board

Development => Bugs, Feature Requests, and Feedback => Official Feature Votes => Topic started by: Eiii on January 05, 2008, 06:12:50 PM

Title: Feature: Optional server-side autobalance
Post by: Eiii on January 05, 2008, 06:12:50 PM
...no one likes pub games that are 10v6, anyway.
Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on January 05, 2008, 06:31:13 PM
http://dplogin.com/dplogin/featurevote/feature.php?id=10010
Title: Re: Feature: Optional server-side autobalance
Post by: webhead on January 05, 2008, 11:51:18 PM
what about this: if somebody wants to switch from a team with less to a team with more, then when they execute that "join" command, send 'em some sort of message saying they must wait for someone to agree to switch with them from the other team. Then, all players on the other team would be asked if they want to switch with this person. Once a single person agrees, the notification can be cancelled and the player swap executed.
Title: Re: Feature: Optional server-side autobalance
Post by: Cobo on January 05, 2008, 11:54:46 PM
what about this: if somebody wants to switch from a team with less to a team with more, then when they execute that "join" command, send 'em some sort of message saying they must wait for someone to agree to switch with them from the other team. Then, all players on the other team would be asked if they want to switch with this person. Once a single person agrees, the notification can be cancelled and the player swap executed.
Hm, seems just way to complicated for something that would be as simple as sending "Cant switch teams, they are unbalanced. Wait for someone to leave the team to join"
Title: Re: Feature: Optional server-side autobalance
Post by: FlaMe on January 05, 2008, 11:56:11 PM
I think the concept is like at the end of the round, swap the n00bies at the bottom of the scoreboards around until the teams are within 1 player difference of another.
Title: Re: Feature: Optional server-side autobalance
Post by: webhead on January 06, 2008, 12:17:15 AM
Hm, seems just way to complicated for something that would be as simple as sending "Cant switch teams, they are unbalanced. Wait for someone to leave the team to join"
yah, but there's no way to know how long they'd have to wait. i thought about that but increased the complexity of the idea to make it friendlier to players.
Title: Re: Feature: Optional server-side autobalance
Post by: Deranged on January 06, 2008, 01:21:46 PM
Sounds like a good idea as long as it isn't accidently turned on in match servers :)
Title: Re: Feature: Optional server-side autobalance
Post by: FlaMe on January 06, 2008, 01:22:33 PM
lol match servers should be balanced anyway... unless ur like 3v1ing a clan i dont see the problem
Title: Re: Feature: Optional server-side autobalance
Post by: lekky on January 06, 2008, 01:28:13 PM
I wouldn't like to see this on pub servers. What if the server ends up having 4 vets on one team, and 4 noobs on the other. Is there any way to switch?
Title: Re: Feature: Optional server-side autobalance
Post by: webhead on January 06, 2008, 02:09:24 PM
@lekky: that's why i suggested what i did. [about 7 posts ago (http://dplogin.com/forums/index.php?topic=11162.msg113541#msg113541)]

not only that, i suppose the auto-balance code could also take into account player stats and try to even those out between the teams.
Title: Re: Feature: Optional server-side autobalance
Post by: Cobo on January 06, 2008, 10:07:33 PM
Player stats, or skill level should just be kept away from this.
Title: Re: Feature: Optional server-side autobalance
Post by: Blitz on January 16, 2008, 04:53:52 PM
What about the auto-balancing of teams on the _next_ map, averaging total kills across teams (and ignoring new players)?
Title: Re: Feature: Optional server-side autobalance
Post by: Xena on January 16, 2008, 08:00:09 PM
why not swap with the newest player who joined the server?? that's the most fair i can think of...

most of the time, i see people who are switching teams are newbies who wants to be on "winning" team...

and IF this "deny of switching team" is implemented... PLEASE add on some change map vote feature that doesn't require waiting for game to end because there are some map NO ONE wants to play and they all join one team and wait for the next map... (there's a post on this i remember...)

wow... i never noticed that vote list! off i go! lol
Title: Re: Feature: Optional server-side autobalance
Post by: Herron on January 16, 2008, 08:25:32 PM
i was actually messing around this morning to see if you could make "join blue" and "join red" limited in the commands.txt and only allow "join auto" and "join observer" ... no such luck.
Title: Re: Feature: Optional server-side autobalance
Post by: Edgecrusher on January 17, 2008, 03:33:06 AM
i was actually messing around this morning to see if you could make "join blue" and "join red" limited in the commands.txt and only allow "join auto" and "join observer" ... no such luck.

For now it seems as the easiest solution. It should be tested on one popular server to see if it's a go. Ofc if it could be done this way.
Title: Re: Feature: Optional server-side autobalance
Post by: XtremeBain on January 17, 2008, 06:50:24 AM
i was actually messing around this morning to see if you could make "join blue" and "join red" limited in the commands.txt and only allow "join auto" and "join observer" ... no such luck.

That would be too easy, wouldn't it... :)
Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on January 17, 2008, 01:48:48 PM
What about the auto-balancing of teams on the _next_ map, averaging total kills across teams (and ignoring new players)?
Problem is, there's about 10 players joining or leaving per map on pub servers, so that would only be useful for about 2 minutes.
Title: Re: Feature: Optional server-side autobalance
Post by: supercurtis on January 28, 2008, 08:38:01 PM
This idea sounds good, except that there may be an imbalance of another sort to worry about.  Sometimes there are three or four excellent players annihilating ten or more newer players.  I propose that teams be chosen and balanced (in numbers) every round based on skill (using data from the previous round).  Newly joining players would be placed randomly until enough data could be used to place them better in the next round.  It would be an automatic script picking teams like we all did for soccer in elementary school.

I am not going to place a vote for this one based on my conclusions.   :-\
Title: Re: Feature: Optional server-side autobalance
Post by: Eiii on January 28, 2008, 08:52:58 PM
That's a bit complex. As (I think) someone above me said, it's just a pub game. One team is going to be better than the other. All this is trying to prevent are the cases where one team is severely outnumbered, not insure every game is a tie.
Title: Re: Feature: Optional server-side autobalance
Post by: dnadna on August 07, 2008, 11:55:24 AM
i think there shoud be an option for the admin to turn on auto team balance in case one team sucks but has lots of ppl and one team are pros and have litttle ppl
Title: Re: Feature: Optional server-side autobalance
Post by: Rewind on August 07, 2008, 11:58:43 AM
i think there shoud be an option for the admin to turn on auto team balance in case one team sucks but has lots of ppl and one team are pros and have litttle ppl
Thats actually a good point. Sometimes games are unbalanced number wise, but its fine overall. Making it an option for admins would probably work a bit better. Especially for big pub servers.
Title: Re: Feature: Optional server-side autobalance
Post by: Garrett on August 07, 2008, 12:05:43 PM
This server-side auto-balance feature, in my opinion, should not allow anyone to switch teams if the teams are even.  If the teams are even, you can select to switch teams but you can't switch until someone on the other team wants to switch or if the team you would like to switch to loses a player.  The person who tried to switch to other team 'first' should get 'dibs' on the open spot.
Title: Re: Feature: Optional server-side autobalance
Post by: T3RR0R15T on April 21, 2009, 09:22:30 AM
I think this is one of the next new features. So only a question: Will this or will the forcejoin command be higher prioritized ?
Title: Re: Feature: Optional server-side autobalance
Post by: Eiii on April 21, 2009, 06:16:45 PM
I think this should be focused on more-- you don't exactly see (good) aggressive administration from server owners.
Title: Re: Feature: Optional server-side autobalance
Post by: webhead on April 21, 2009, 11:43:19 PM
if only i had the opportunity to admin a server...
Title: Re: Feature: Optional server-side autobalance
Post by: SuperMAn on April 22, 2009, 12:52:47 AM
Should make it look at the stats from the previous game and balance the teams based on kills or something.
Title: Re: Feature: Optional server-side autobalance
Post by: teflon on August 26, 2010, 05:32:01 PM
I say we just auto balance the teams by numbers, and then just mess it up next game.

Basically we would be removing one problem but make another.

We remove the nubs switching to the winning team, but we lose the ability to even the teams by adding people to the losing team.

I think that this would be better because there will always be nubs, but there will not always be a team loaded with super players.
Title: Re: Feature: Optional server-side autobalance
Post by: teflon on August 26, 2010, 05:33:51 PM
Oh, and just thought of this.

Lots of other games have autobalancing features.  Why don't we just try it for a week and get feedback?

Title: Re: Feature: Optional server-side autobalance
Post by: idias on August 26, 2010, 10:05:01 PM
Pretty sure this has been around for a while now, we apreciatte your feedback and all but try to do it in more recent posts, hit the "View the most recent posts of the forum" button to do so. Also there's no need to go all post crazy and post on every single topic you see, just the ones that actually matter.

Peace...
Title: Re: Feature: Optional server-side autobalance
Post by: teflon on August 27, 2010, 05:21:52 AM
Oh, thx
XD
Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on November 03, 2010, 09:56:02 PM
I have this up for testing on EV1 pub 1.

paintball2://70.85.9.178:27910
Title: Re: jitspoe's .plan
Post by: T3RR0R15T on November 05, 2010, 07:37:52 PM
Sometimes it a little bit confusing, if i will be switched to the other team mid in the round. I didn't noticed the message and wondered, that my own team can kill me... Can you maybe make a (little bigger) cprint like message for that? But normally the autobalance works good on your server.

It kicks me for flooding, if i try to change the team a few times :P

Is it possible to lock/sticky a player in a team with the forcejoin command? If i forcejoin a player into a team and the autobalance switches him back in the same second (or after 10 seconds), the command will be useless. Or if i want to help a team with new players, i can't do that atm if they have the same count of players.

Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on November 05, 2010, 09:49:43 PM
Moved your post over here.

I don't think I'll do much more than add a delay.  Sticking people to teams and such just makes the logic more complicated and opens the door for more bugs.  Not that it would be hard to do, but that's just something for a later iteration, if it's even necessary.

The auto-switch actually uses the dialog print option... that just hasn't been implemented on the client yet.  When that's done, it would pop up a dialog box that you'd click "OK" on, so you couldn't miss it.
Title: Re: Feature: Optional server-side autobalance
Post by: T3RR0R15T on November 06, 2010, 05:27:25 AM
The auto-switch actually uses the dialog print option... that just hasn't been implemented on the client yet.  When that's done, it would pop up a dialog box that you'd click "OK" on, so you couldn't miss it.

Would it mean, that i can sent a message directly to a player instead of his team or the server?
Do you plan to implement that with one of the next (after b31) builds or is it only on the long list?
Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on November 18, 2010, 04:31:49 PM
Would it mean, that i can sent a message directly to a player instead of his team or the server?
Do you plan to implement that with one of the next (after b31) builds or is it only on the long list?

It's just a way of displaying text.  Instead of going straight to the console, it will pop up a dialog.  I don't know when it will actually be implemented, though.
Title: Re: Feature: Optional server-side autobalance
Post by: jitspoe on May 19, 2013, 09:12:38 PM
This has been implemented as follows:

When the teams are unbalanced, the game will attempt to select a "best-fit" player to move over to the other team.  This way, if the game is unbalanced, both in player count and skill, it will hopefully be better after the auto-switch.

The algorithm is this:
player score ratio = (5 * caps + 2 * grabs + kills + 1) / (deaths + 1)
team score ratio = (team 1 score + 1) / (team 2 score + 1)

The player with the closest score ratio to the team score ratio is selected for the autobalance.  For example, if the score was 21 to 10, and a player left the team with 10 points, causing the teams to be unbalanced, and you had 2 grabs (4 points), 1 cap (5 points), 12 kills (12 points), and 10 deaths, you'd be a "perfect fit", because your ratio (22/11, or 2:1) would exactly match the team score ratio.  The +1's on everything are just to help balance out the low numbers so a 1/0 is not an infinite score ratio.

With 1.928, time on the map is taken into account as well.  1 is added to the ratio difference for every 5 minutes of play.  So, say in the above example, you've been playing on the map for 10 minutes.  Now, instead of having a ratio difference of 0 (perfect match), your ratio difference is 2.

If somebody else joined in, and was only playing for a minute, and got, say, 1 kill and 1 death (2/2 or 1:1 score ratio), his ratio difference would be 22/11 - 2/2 = 1, plus 0.2 (1/5 minutes) for time, resulting in a total of 1.2, lower than your 2, so he would be auto-switched instead.

Trying to write all this out makes it sound more complicated than the code used to implement it, but I figured I'd share exactly how it works.  I'm not sure if those are the best numbers to use, but at least it tries to find an ideal candidate to switch.

Cvar settings:
g_autobalance 0 - disabled
g_autobalance 1 - autobalance enabled.  Players will be autoswitched when player counts are unbalanced by more than 1.
g_autobalance 2 - autobalance enabled, team switching to a team with the same number or more players disallowed.