AutoTeamBalance 2020

Search, find and discuss about Mutators!
Post Reply

Would you like to see an updated version of ATB?

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: 327
Joined: Wed Feb 13, 2008 9:16 pm
Location: Cologne

AutoTeamBalance 2020

Post by Sp0ngeb0b » Wed Mar 25, 2020 11:10 pm

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
Website, Forum & UTStats

Image
******************************************************************************
NexgenAdvancedBanManager || NexgenPlayerLookupSystem || NexgenTeamspeak3Connector
******************************************************************************

User avatar
Que
Experienced
Posts: 108
Joined: Mon Dec 09, 2019 5:49 am
Personal rank: ...
Contact:

Re: AutoTeamBalance 2020

Post by Que » Thu Mar 26, 2020 12:59 am

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:
unreal://103.125.218.185:7760 (469 Test Server)

User avatar
[rev]rato.skt
Skilled
Posts: 220
Joined: Mon Aug 16, 2010 1:09 pm

Re: AutoTeamBalance 2020

Post by [rev]rato.skt » Thu Mar 26, 2020 1:51 am

we want everything about ut :D
Brazilian Server:
Classic 168.227.251.200:7777
Madruga 35.198.46.98:7777
Duel 168.227.251.201:6666
RA 168.227.251.201:8888
Custom 168.227.251.201:7777

ShaiHulud
Adept
Posts: 363
Joined: Sat Dec 22, 2012 6:37 am

Re: AutoTeamBalance 2020

Post by ShaiHulud » Thu Mar 26, 2020 3:46 am

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)
Masterful
Posts: 558
Joined: Thu Jun 24, 2010 10:35 pm
Personal rank: noob programmer
Location: England

Re: AutoTeamBalance 2020

Post by UT Sniper (SJA94) » 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.

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

Re: AutoTeamBalance 2020

Post by Sp0ngeb0b » Thu Mar 26, 2020 10:03 am

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
******************************************************************************
NexgenAdvancedBanManager || NexgenPlayerLookupSystem || NexgenTeamspeak3Connector
******************************************************************************

Post Reply