[Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Search, find and discuss about Mutators!
Post Reply

Would you like to see an updated version of ATB?

Poll ended at Thu Mar 26, 2020 11:10 pm

Yes
6
86%
No, I'll stick to the classic ATB
0
No votes
No, no ATB for me in general
1
14%
 
Total votes: 7

User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

[Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by Sp0ngeb0b »

Image

Nexgen Auto Team Balancer (NexgenATB) is a completely rewritten version of nogginBasher's AutoTeamBalance for the Nexgen Server Controller.

Beta Testing
The mod is is still in beta testing; you can access the latest version from GitHub. Please report any bugs, feedback or requests to me via GitHub or into this topic.


Improvements regarding the original AutoTeamBalance mod
  • Players are identified using their Nexgen ID and no longer by nickname/IP adress. This prevents the system from accidently "forgetting" a players strength.
  • Graceful database access. Locating a player inside the database is stretched over several game ticks which protects the gameserver's performance.
  • Players joining mid-game are put into a waiting state before being assigned a team and being able to play. This way, several players joining can be considered together for fair team assignment.
  • In case of uneven team sizes, NexgenATB waits a fair amount of time in case a player has lost connection / needs to reconnect.
  • Players who leave before the game ends and the strengths are updated are also considered for the computation and their strength is updated as well.
  • Only the real play time of player's are considered; i.e. when they go spectate for 5 minutes during a game, this time will not be considered in the final strength calculation. This also provides full compatibility with Nexgen's stats restoring functionality.
  • The system fully utilizes Nexgen's game states and therefore the option `Let Nexgen handle the gamestart` can be enabled, including the corresponding countdown.

Click for full Documentation
Click for latest Beta Release + Download


Original Post:
Sp0ngeb0b, topic title:AutoTeamBalance 2020 wrote:The corona crisis has given me quite some time which I'm using to finally tackle several issues with the well known AutoTeamBalancer (ATB) from nogginBasher. Since my gameserver has returned, I've observed its behaviour and identified the (from my pov) main problems:
  1. Players are only identified using their nick/IP adress. This results in regular players suddently starting from the default value which can cause uneven teams.
  2. The event-driven nature of ATB requires the server to go through its database in a single pass. This can lag the server if the db is large.
  3. Players joining mid-game are immediately assigned to the weaker team. However, on my server clients tend to wait in spectator mode until another player joins. ATB doesn't recognize this situation which can uneven the teams in case the later joined player is stronger.
  4. Players reconnecting can cause rebalancing in case the team size difference temporarily exceeds two.
  5. Insufficient wait time at gamestart, players joining after the initial team sort is done.


Some of the issues might also be caused by insufficient configuration (most likely the last point); however, keeping an overview of the available ATB settings is not that easy (just open its default config file :ironic:).

Now, I've first considered modifiying ATB, but soon realized that it's probably best to give it a fresh start and rewrite it completely. I've decided to go with a server-side-only Nexgen Plugin, as it makes sense to use the (unique) Nexgen ID of the players to always recognize them. The above mentioned problems are solved in the following ways:
  1. Using the Nexgen ID as a unique identifier
  2. Since the Nexgen ID is not available server-side at the join event anyway, the system can now stretch the database search over several ticks and prevent the server from overloading
  3. Players joining mid-game will be put into a waiting state before being assigned to a team. This way, several new players can be considered in the team assignment.
  4. Teams are only rebalanced in case of a size difference after an appropriate wait time if a player just left.
  5. The system fully utilizes Nexgen's game states and therefore the option 'Let Nexgen handle the gamestart' can finally be enabled - this allows for configuring corresponding wait times.
The original ATB contains a lot of additionals features which are only remotely related to team balancing, but rather for server management. I've stripped all of these and only implemented the core features I like to see on my server to provide fair teams. This does not include mid-game rebalance by strength difference or player request, but only by team size difference at the moment. I'm planning on putting a first Beta version on my server in the next days.

What's the purpose of this thread?
Bragging rights :wink: Jking, I want to use this thread+poll to query the community if there is still interest for such an update. Depending on the response, I may readd missing features and put more focus on the "general applicability" and not only for my needs. There is one limitation whatsoever: Since I'm a Nexgen maniac, this whole rewrite will remain a Nexgen plugin and therefore require the gameserver to run it.

Cheers

PS: I've finally managed to get most of my UT stuff to GitHub. You can check the ongoing development for NexgenATB here
Last edited by Sp0ngeb0b on Wed Apr 15, 2020 6:40 pm, edited 4 times in total.
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
Que
Inhuman
Posts: 790
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...
Contact:

Re: AutoTeamBalance 2020

Post by Que »

Hey Sp0ngeb0b , definately very interested.
Ive found that since moving to 469 my ATB is not functioning right no idea why.
I'd be kean to test the Beta when youve released it also.

Perhaps you could send me a copy through discord?
Cheers
:tu:
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
*Our Servers
User avatar
[rev]rato.skt
Adept
Posts: 438
Joined: Mon Aug 16, 2010 1:09 pm

Re: AutoTeamBalance 2020

Post by [rev]rato.skt »

we want everything about ut :D
Brazilian Server:
Alma Negra - 34.95.189.187:7777
Classic - madruga.utbr.cf:7777
Duel - x1.utbr.cf:6666
ShaiHulud
Adept
Posts: 459
Joined: Sat Dec 22, 2012 6:37 am

Re: AutoTeamBalance 2020

Post by ShaiHulud »

That's fantastic Sponge, what a great initiative. I think one of the few positives of our current situation is that we'll see an explosion of creativity in all sorts of fields.

NogginBasher produced an enormous number of mods for UT, I feel very indebted to him.
User avatar
UT Sniper (SJA94)
Inhuman
Posts: 753
Joined: Thu Jun 24, 2010 10:35 pm
Personal rank: Retard
Location: England
Contact:

Re: AutoTeamBalance 2020

Post by UT Sniper (SJA94) »

The problem with the Nexgen id is that you can just remove the Nexgen data from user.ini, then set it to read only so you have a different id every game/boot up.

Would be nice to have a new better version though so can't wait to see what you do.
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: AutoTeamBalance 2020

Post by Sp0ngeb0b »

Resetting the Nexgen ID is rather an issue for reliable banning than for feature driven mods like this. The goal of even teams should be desirable for all (serious) players on the server, so they would gain nothing from abusing it. Also, server admins probably dont want to host players on their server which are resetting their ID all the time anyways - individual actions are required then :mrgreen:

Thanks for the feedback so far! I will provide a beta here at some point when I think the new system is ready for that :)
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.30 (Beta)

Post by Sp0ngeb0b »

Public Beta testing can start; for anyone interested, you can find the download to the latest version in the start post!
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by RocketJedi »

When will it be compatible with nexgen112N? Please and thank you
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by Sp0ngeb0b »

I'm not compiling every release for 112N as it tires me to do so and without knowing there is somebody using it. If you want to beta test I will upload 0.31N soon.
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
RocketJedi
Inhuman
Posts: 850
Joined: Wed Mar 12, 2008 7:14 pm
Personal rank: I.T Master
Location: New York
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by RocketJedi »

Sp0ngeb0b wrote: Tue Apr 21, 2020 10:28 pm I'm not compiling every release for 112N as it tires me to do so and without knowing there is somebody using it. If you want to beta test I will upload 0.31N soon.
I understand. Thank you for your response.
https://www.vulpinemission.com
Image ROCKET-X8 Server
Image MONSTERHUNT w/ NALI WEAPONS 3 + RX8
Image BUNNYTRACK NY
Image SNIPER DEATHMATCH
Image InstaGib + ComboGib + Jailbreak
Image ROSEBUM ROCKET-X RB
User avatar
Que
Inhuman
Posts: 790
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by Que »

Sp0ngeb0b wrote: Tue Apr 21, 2020 10:28 pm I'm not compiling every release for 112N as it tires me to do so and without knowing there is somebody using it. If you want to beta test I will upload 0.31N soon.
I think that Iam using 112N thanks Sp0ngeb0b :tu:

Edit:
I can wait till a stable beta in 112 is completed no hurry on the N version.
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
*Our Servers
User avatar
asosed
Adept
Posts: 279
Joined: Fri May 15, 2020 2:36 pm
Location: Russia
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by asosed »

Sp0ngeb0b, hey. Great plugin. There is a question. How to disable it during the game? If there is an equal number of games, then it does not allow you to switch to another team.
Image
User avatar
Sp0ngeb0b
Adept
Posts: 376
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by Sp0ngeb0b »

You can't disable it mid-game; however, by disabling the "Let Nexgen handle the game start" option, NexgenATB will automatically be disabled after a map switch.
Website, Forum & UTStats

Image
******************************************************************************
Nexgen Server Controller || My plugins & mods on GitHub
******************************************************************************
User avatar
asosed
Adept
Posts: 279
Joined: Fri May 15, 2020 2:36 pm
Location: Russia
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by asosed »

Sp0ngeb0b, have a desire to implement the shutdown option during the game?
Image
User avatar
Que
Inhuman
Posts: 790
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...
Contact:

Re: [Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Post by Que »

UT Sniper (SJA94) wrote: Thu Mar 26, 2020 8:45 am The problem with the Nexgen id is that you can just remove the Nexgen data from user.ini, then set it to read only so you have a different id every game/boot up.

Would be nice to have a new better version though so can't wait to see what you do.
How about the server just kick people who refuse a NexGen ID?... That would be handy 😜

As for being able to disable the auto-balancer mid game or at the start of the match this would be good also.

Perhaps could be done on a vote basis.. where players type !unbalance into the console and if the majority type it then the balancer disables for the match... However it still calculates strengths and so-forth then at the start of the next game it rebalances the teams.. for here players can again !unbalance the teams and shuffle into teams they want to be in..

And/or add the option Into NexGen itself so an admin can set and forget.. either enable/disable at his/hers will.
Would be ideal.
*Join our Discord Here.*
Our mods - MVX , SSB , SmartWFL , UTCmds , BotCommands , Smart Stats , join/leave announcer , NoSmoke , UTLogin , BrightSkins , Server Tran…
*Our Servers
Post Reply