Page 1 of 1

[Nexgen] Nexgen Auto Team Balancer 0.31 (Beta)

Posted: Wed Mar 25, 2020 11:10 pm
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

Re: AutoTeamBalance 2020

Posted: Thu Mar 26, 2020 12:59 am
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:

Re: AutoTeamBalance 2020

Posted: Thu Mar 26, 2020 1:51 am
by [rev]rato.skt
we want everything about ut :D

Re: AutoTeamBalance 2020

Posted: Thu Mar 26, 2020 3:46 am
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.

Re: AutoTeamBalance 2020

Posted: Thu Mar 26, 2020 8:45 am
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.

Re: AutoTeamBalance 2020

Posted: Thu Mar 26, 2020 10:03 am
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 :)

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

Posted: Mon Apr 13, 2020 2:22 pm
by Sp0ngeb0b
Public Beta testing can start; for anyone interested, you can find the download to the latest version in the start post!

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

Posted: Tue Apr 21, 2020 7:22 pm
by RocketJedi
When will it be compatible with nexgen112N? Please and thank you

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

Posted: Tue Apr 21, 2020 10:28 pm
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.

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

Posted: Wed Apr 22, 2020 1:49 pm
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.

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

Posted: Thu Apr 23, 2020 9:14 am
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.

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

Posted: Mon Jun 29, 2020 7:26 am
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.

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

Posted: Mon Jun 29, 2020 11:53 am
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.

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

Posted: Mon Jun 29, 2020 1:43 pm
by asosed
Sp0ngeb0b, have a desire to implement the shutdown option during the game?

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

Posted: Tue Feb 15, 2022 1:30 pm
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.