Chatbox
Where is the best place we can all link up to have a reunion? A facebook group? Only platform I think we all look at daily hahah but who knows if anyone wants to show their actual face. :P Made one just now -[link]-
2 years ago
Oh I'm so down. I still play zombie escape sometimes on CS:S. Never gets old. So down for Office.
Also 15 years for me. Fuck man we are getting old as shit.
Also, loving Back 4 Blood. Highly recommend to everyone who enjoys coop zombie action. I play on steam. gLiTch handle was retired with FT. You can find me as theRemedy on Steam friends.
Also 15 years for me. Fuck man we are getting old as shit.
Also, loving Back 4 Blood. Highly recommend to everyone who enjoys coop zombie action. I play on steam. gLiTch handle was retired with FT. You can find me as theRemedy on Steam friends.
3 years ago
Super down for a rerun. I think we all have some old connections to plan something ahead of time, on an updated game, or even outdated, for all of us to do an event on. I would look forward to that very much
3 years ago
View all posts (680)
Forums
Fish Tank Clan :: Forums :: General Forums :: Server: Fish Tank Classic |
|
« Previous topic | Next topic » |
apTB Outline/Details |
This topic is now closed |
Author | Post | ||
alcosatz |
|
||
FT Classic Op
Registered Member #39
Joined: Fri Dec 02 2005, 10:30PM
Posts: 1545 |
As promised, here are some details about how apTB works. This is rough outline and I'll probably clean it up. Feel free to ask questions because I know some of this is vague. Concepts: * EKPD, SKPD, HKPD: - Player (and team) performance is best judged by "kills per death," three variants are: - SKPD is "session" KPD, based on KPD since each player joined the server - HKPD is "historical" KPD, based on past X days of individual SKPD's (30 days is X for now), loaded on connect and saved on disconnect - EKPD is "effective" KPD and is a weighted rate of SKPD and HKPD combined, with current SKPD being twice as important as HPKD. this places more emphasis on current session performance, but means that historical performance does play a (limited) factor * Team Strength/Score - determine effectiveness of each team based on (see factors defined below): - number of wins in Wxx - current weak streak (if any) - averaged team EKPD * win streak - we're all familiar with this simply put: the current number of consecutive wins by a team * decisive win - a team wins with a high percentage of survivors and the other team is entirely destroyed - NOTE: does not affect team strength, but does change balance meter (see below) * Wxx - track team wins where xx is a past number of rounds - if xx is 10 then this can be expressed as: "T/CT 8/2" where T's have won 8 of the past 10 rounds and CT's have won 2 of the past 10 rounds - the more rounds that are tracked, the less "fresh" the data is, currently 10 but higher values are possible * Balance Meter - starts a certain value at plugin start (or after an auto team swap occurs), when it reaches 0 then a swap is attempted - this is a measure of the current buffer for sustained team imbalance that will be tolerated - meter drops when a strong team wins (by the difference in team strengths) - raises when a winsnap occurs - configurable regen after each round (currently very low) * swap candidacy - determine how reasonable of a candidate each player is for swap after each round; based on different factors - swaps this session: lower each player candidacy based on the number of times he/she has been swapped this session - raise/lower each player candidacy based on their win-loss count for this session; more wins than losses makes the player a better candidate - raise candidacy based on a high EKPD if the player is on the strong team and raise candidacy if the player is on the weak team and has a low EKPD - lower candidacy based on the number of times swapped this session * swap immunity - ensure that no player will be swapped in less than X amount of rounds (currently 8 i think); balancer should ALWAYS honor this - ensure that a minimum number of rounds must be played in between swap attempts Process: * round start - hand out cash or health if configured - peform pending swaps * round progress - increment K/D for each active player - minimal code needed to track this and reduce any performance penalties on the server during round progress * round end - calc new winstreak or flag a winsnap - calc factors for team strength - calc individual performance (new EKPD, SKPD) - calc and sort players by swap candidacy - calc team score (average EKPD, Wxx, streak) - calc survivor percentage for each team, flag either a decisive weak or strong win at >74% survivor rate - change balance meter based on results of last round (diff in team strength, whether a DW occurred) - dump invidiual player stats to console - calc minor/major advantages based on teamstrength - if team strengths are too close, but meter is <= 0 then notify of a pass on balance ONLY - else if team strengths are far enough apart AND meter is <= 0 then try to find best candidates for a swap AND min number of rounds played since last swap - try to balance teams: - determine whether this will be a one-for-one swap or one-for-none based on current player counts - three pass system (may not find possible candidates because of player immunity) - first pass tries to give losing team (based on team strength) a reasonable advantage; try highest candidates (in order) for swaps first - second pass is the same as first, but there is a larger margin of gains for the weaker team, again sorted by candidacy - third pass is the "best effort" variety. the first two passes probably failed because any possible swaps would give the weak team a landslide in skills (thus stacking the losing team) or because there is simply NO possible swap that would give the weak team an EKPD advantage. this pass tries to close the gap as best as possible (i.e. there was a EKPD difference of -1.5 before, and a swap drawing that difference closer to 0 and less than -1.5 IS a good idea) - else no pending swaps are placed, meter may or may not have been changed, and next round starts Edited Mon Nov 12 2007, 01:56PM |
||
Back to top |
|
||
jigg4joe |
|
||
Registered Member #326
Joined: Wed Jul 05 2006, 04:15AM
Posts: 635 |
impressive very well thought out, this may inspire me to get on more often as i was one of the people who missed the old team balance script |
||
Back to top |
|
||
Madvillain |
|
||
Registered Member #445
Joined: Sun Oct 01 2006, 11:42PM
Posts: 2233 |
very thorough, and so far no complaints from what i've seen. lol @ knight getting swapped like 5 times in 5 rounds (slight exaggeration) |
||
Back to top |
|
||
alcosatz |
|
||
FT Classic Op
Registered Member #39
Joined: Fri Dec 02 2005, 10:30PM
Posts: 1545 |
I realized that some of the stuff displayed in the console is not explained. Here's a little flavor of the debugging details: -[link]- That's a limited amount of debugging data--I can crank it up much higher than that. Requests where made for what the columns of player and team data mean, so here we go: Player data: C# - client number, internal use T - Team, duh! K - Kills, duh! D - Deaths, duh! EKPD - Effectibe KPD (based on SKPD and HKPD, see above) SKPD - KPD for this session HKPD - Historical KPD (based on previous rounds recorded) R - Rounds played this session WL - Win/Loss for this session, positive is more wins, neg is more losses SS - Rounds since swap this session S - Swaps this session V - Volunteer flags set, details in a later post SteamID Name Team data: Team - derr P - player count EKPD - average team effective KPD SKPD - average team session KPD HKPD - average team historical KPD W10 - (Wxx, see above) number of wins in the last Wxx tracked Str - Team Strength (based on EKPD, Wxx, and streak) The only major thing that is missing is a replacement for balancing teams by player count. Mani's auto balancer, which is almost ONLY based on player counts will swap people when a difference of more one player count per team happens. I think this is confusing people because it will be something like 10 on 7, a few people get swapped, and they think it is apTB doing that. It shouldn't be too hard to turn this feature of mani off (as it has very little to do with skill and more to do with player count per team) and create something of my own. |
||
Back to top |
|
||
A Drunk |
|
||
Registered Member #437
Joined: Sat Sep 23 2006, 02:18AM
Posts: 1224 |
This plugin i think works real well and it looks very confusing. I know this is not about this plugin, but do u know why sometime if their are 2 people alive it says that one of you is the last man standing. I was just wondering. | ||
Back to top |
|
||
alcosatz |
|
||
FT Classic Op
Registered Member #39
Joined: Fri Dec 02 2005, 10:30PM
Posts: 1545 |
I know what you're talking about. That's a separate SM plugin, Drunk. It has nothing to do with apTB. | ||
Back to top |
|
||
*Kill Time* |
|
||
Registered Member #543
Joined: Sun Jan 21 2007, 06:33AM
Posts: 497 |
KT- Kill Time, Duh! Yes AP ur script is quite helpful. No more 15+ rounds winning streaks. Although those were quite fun(if u were the winning team that is) Now to make a script that autoslays if a person stands still for more than 20 seconds. |
||
Back to top |
|
||
Wildcard23 |
|
||
Registered Member #514
Joined: Wed Dec 20 2006, 06:33AM
Posts: 1067 |
I agree with Jigg. This is extremely impressive and I believe it does it's job on the lowest settings that you have it set to right now. Excellent job AP. | ||
Back to top |
|
||
Knightrider |
|
||
Meteor 2016
Registered Member #316
Joined: Mon Jun 26 2006, 09:14PM
Posts: 3503 |
Wow Alcohol, you are certainly brilliant. I'm going to say Mad, you weren't exaggerating. In fact, you were one under. I was swapped 6 times. It gets the job done for sure though | ||
Back to top |
|
||
ABadNewsBear |
|
||
Registered Member #611
Joined: Wed Mar 21 2007, 08:35PM
Posts: 219 |
Wildcard23 wrote ... I agree with Jigg. This is extremely impressive and I believe it does it's job on the lowest settings that you have it set to right now. Excellent job AP. Way to use the wrong "its" wild. Phail |
||
Back to top |
|
||
Powered by e107 Forum System
|
|
Chatbox
Where is the best place we can all link up to have a reunion? A facebook group? Only platform I think we all look at daily hahah but who knows if anyone wants to show their actual face. :P Made one just now -[link]-
2 years ago
Oh I'm so down. I still play zombie escape sometimes on CS:S. Never gets old. So down for Office.
Also 15 years for me. Fuck man we are getting old as shit.
Also, loving Back 4 Blood. Highly recommend to everyone who enjoys coop zombie action. I play on steam. gLiTch handle was retired with FT. You can find me as theRemedy on Steam friends.
Also 15 years for me. Fuck man we are getting old as shit.
Also, loving Back 4 Blood. Highly recommend to everyone who enjoys coop zombie action. I play on steam. gLiTch handle was retired with FT. You can find me as theRemedy on Steam friends.
3 years ago
Super down for a rerun. I think we all have some old connections to plan something ahead of time, on an updated game, or even outdated, for all of us to do an event on. I would look forward to that very much
3 years ago
View all posts (680)
Online
- Guests: 188
- Members: 0
- Newest Member: kremtest
-
Most ever online: 329
Guests: 329, Members: 0 on Tuesday 21 January 2020 - 22:22:19