Problem: Stackers

Discussion in 'General' started by KMFrog, Mar 9, 2008.

  1. LordDz

    LordDz Capitan Rainbow Flowers

    Messages:
    5,221
    Likes Received:
    0
    Trophy Points:
    0
    WOOPSIE!

    Will suiciding to defend your commander be included? :p
     
  2. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    I have good news.

    When we were preparing for the initial release of the plugin, we ran onto a problem and we invented a way that would fix it.
    The side effect of this solution is that we can skip the entire iteration and the way of coding the plugin will make it autobalance itself and set the weights (that we discussed above) automaticly.
     
  3. Metalhead

    Metalhead Member

    Messages:
    232
    Likes Received:
    0
    Trophy Points:
    0
    I think you can't do this that way.
    Sometimes it might be very important in a game to build something, even if it is wall. One of the things I hate most when I'm commander is not finding engineers to build something.
     
  4. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    There is no way to perfectly evaluate players gamestyle. Nor automatic, nor manual methods can do that. We can only make something that will be fairly close to the real player skill value. We will use the best method we will be able to think of and code.
    Your saying "You can't do it that way" won't help much here, as we don't have a better method than statistical evaluation of weighted player skillpoint gains divided by his deaths divided by his playing time. We take the escort syndrome into account (one team kills much more frequently than the other, capturing a flag in NF is worth much more than capturing flag in BE, etc).
     
  5. -Mayama-

    -Mayama- MANLY MAN BITCH

    Messages:
    6,487
    Likes Received:
    0
    Trophy Points:
    0
    Yeah a successfull sticky nade suicide run on escort is worth 50 points or more.
    Same for a the 9 mine that killed that arty or he heavy
     
  6. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    I am near an unplesant stage of development called 'testing'.
    To test the new app, I will need to setup a test server and get some people on it. Then those people will play on the server and server will write some messages on chat to them, saying some things about what they do.
    The test is about checking if all those messages will be true and if big error messages appear on the server console. If I made a mistake, plugin will lie about some things, f.e. it will say "You have just killed a tank" when You actually didn't, or it will say "You have just recived skillpoint for defusing 2 mines" when what You did was sabotaging two buildings. Those will be the errors that we will look for.
    Currently the plugin just gathers loads of data into the database. I mean it doesn't balance players just yet.

    For the first testing session I will need just some people from Europe to play on the server.

    I need to ensure that a few people actually will to testplay the server. If not enough people will volunteer, We will have to think of something else. The first test session probably will be launched next weekend, but it all depends on how much time I will need to code all this stuff to a stable version and how much time I will spent coding it.

    I think my machine and network can hold like from 8 to 12 players.

    Testers (only european please, as the test server will be located in Poland) please sign in to the KMBalancerTesters SteamFriends group.
     
  7. Stu

    Stu BehälterGott

    Messages:
    799
    Likes Received:
    0
    Trophy Points:
    0
    Thank god for american servers, the only servers hosted in the land of the free and the home of the brave. I don't like having to put up with shit like that.
     
  8. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    Hey guys, would You:
    • like to join the wrong team (not the one You picked) fast OR RATHER
    • wait up to 15 seconds before You will be able to join a team, but have greater chance of joining the team You picked
    ? Ofcourse joining a team later than a minute after the game has started will always be instant.
    Those 15 seconds would be used to try to smartly pair players that want to join opposite teams, rather than assigning both of them to the teams of their not-choice...
    It's pretty hard to implement such a feature, I need to know if We need it.
     
  9. Superlagg

    Superlagg Member

    Messages:
    620
    Likes Received:
    0
    Trophy Points:
    0
    Yarr, that wouldnt be solvin' nothin but de lack'a 'eadaches we all be havin. I enjoy bein' with de Brenoidies, they keel-haul ev'ry onea them sorry NFs. Course, ey, I be playin both endsa them fields too, and I be wantin me choice! If I be wantin' ter 'arpoon ye Great Orange Whale, or if'n I be wantin te squash ye dopplegangin AFV's'n APC's, I'mma wantin me right ter do so! The coorent system of balancin after de fact is good'nuf. Heck, ye cant be joinin an unbalanced team anyhow, an ye cant be judgin skill ter inta this! Is madness, an all boot impossible! Ye cant be wantin teamwork, then be puttin in Commodores to flush all de teamworkin out!

    Aye, ye lilly... jus play 'arder, de autobalance is enough fer player pop.

    Oh yar! De Commodore's comin!
     
  10. Metalhead

    Metalhead Member

    Messages:
    232
    Likes Received:
    0
    Trophy Points:
    0
    For me it doesn't matter in which team I play, but I wouldn't be amused if I chose a team and then it joins me to the other one.


    I really like what you said about the "Escort syndrome" (I hope you meant it the way I understood it ;)). Here are some Ideas I had concerning this... don't know if everything is technically possible
    - Building refineries gives you more points if your team has less refineries and not too much resources (like 8000 or so)
    - Building radar and forward barracks gives more points. (Because in most games this is very important and it might cost you the game if it takes too long until someone builds them)
    - Healing or repairing someone who requested it gives more points than doing this without beeing asked
    - Repairing empty vehicles gives less points than if someone s in it. (Most times if you repair an empty vehicle, it is yours... and repairing someone else's thanks in a battle deserves more points than just repairing it somewhere in your own base)
    - Reviving gives more points if you are further away from the spawn and if your team is running low on tickets
    - Radar/Camera gives points if it constantly spots enemies
    ... to be continued, these are just some ideas I had ;)
     
  11. Xyber04

    Xyber04 Member

    Messages:
    68
    Likes Received:
    0
    Trophy Points:
    0
    Holy shit.
    Whats "to" mean?
     
  12. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    I don't know what are You asking about. Could You give a shorter, more precise Quote?


    BTW: plugin is semi-operational, it gathers the data, but it doesn't use it to balance teams yet. Most of the balancing code is done, but data gathering is buggy. It needs testing. Please sign to KMBalancerTesters steamgroup, I scheduled an event of testing in 30 minutes.
     
  13. Myth

    Myth Member

    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    The one problem i have with this atm :) (hope u can fix) Is when i play with me bro.

    We both haves computers in the same room and we can each see each other screens and hear each others sounds.

    So we always join the same team but sometimes it hard too do that bec of the auto team join. so when one of us join a differnet team and start playing i can see what the other team doing and so can he

    which makes it borning for us as we know what going too happen.

    is there anyway of making it so that it can make you join the same team if you are on the same net ip?
     
  14. Metal Smith

    Metal Smith Member

    Messages:
    4,520
    Likes Received:
    3
    Trophy Points:
    0
    Hmm...

    OMG LANNERS BAN BAN BAN!!!

    >_>

    heh, hope some certain servers don't see that post Myth. or that your steam ID isn't listed. Either or :P
     
  15. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    Well, I must say this seems to be reasonable.

    This will probably have to wait for the next version of the plugin. There are at least 3 versions planned.

    If a player joins and he has the same IP address as some other player that is already on the team - the player can be:
    1. Automaticly assigned to the same team
    2. Disallowed to go to spectator, so they cannot cheat
    3. Excluded of mid-game balancing, so he doesn't get switched (mid-game switching is not in the first iteration).


    Generally I would like to gather plugin features and I hope You guys will help me prioritize it so I first code what is really needed and code the minor things later. It would be good to know what is important for the community.

    By now, plugin code supports:
    • Logging of skills and kills made by players, with team and map specified
    • Logging of player session starts and ends
    • Logging wins and play times by maps
    • Detecting players that try to leave their team just after they were assigned to a team. This is blocked.
    • When both teams are empty, allowing the first player to join a team of his choice
    • Allowing the player to join the team of his choice if it wouldn't cause major stack.
    • Disallowing unauthorized players to join teams. You cannot play with STEAM_ID_PENDING (it would not log properly).
    CURRENTLY I am working on:
    • Refactoring code to match updated database schematics
    • Properly logging weapon properties (headshots, roadkills, melee etc)
    • GetPlayerSkill() - this is the last thing needed to enable actual team balancing
    Things to do:
    • Handle plugin reloading properly
    • Properly logging vehicle destruction
    • Detecting players trying to ragequit to spectator.
    • Detecting players that try to mid-game join a weaker team (that may happen f.e. when a good player leaves NF and someone from BE wants to help poor NF) (allow them)
    • Mid-game switching players if the teams are suddenly stacked (f.e. because someone left). Commanders would be protected from being switched that way. Plugin would try to switch someone that is playing short (like 2min) rather than switching someone that has build the whole base etc.
    • Reconnecting to database and handling broken database connection
    • Allowing every player to mark a buddy. When I mark Blight as a buddy and Blight makes me his buddy, We will be always assigned to the same team and we will always play together, we will not be mid-game switched (or we will be both switched). Notice You can only have one buddy and he has to choose You as his buddy too to make this work.
    • Detecting players with the same IP address and always putting all of them to the same team.
    • Edit (added): Making algorythm not greedy, it should be aware that players join in large groups in the begining of the map instead of handling them one by one
    • Edit (added): on demand personal stats display, like statsme or something
    • Edit (added): algorythm that will count and set skill weights automaticly on mapchange
    • Edit (added): improoving the way plugin processes players that pressed autoassign
    Known bugs:
    • If player has a non-ascii nickname, he is kicked with "Your nickname contains unallowed characters" message. This is due to unknown bug in SQL_QuoteString(). Maby I just need to upgrade my SourceMod.
     
    Last edited: Mar 31, 2008
  16. km_

    km_ Member

    Messages:
    50
    Likes Received:
    0
    Trophy Points:
    0
    Heres a good idea for this problem (from the eyes of a gamer, and not a server admin):

    Dont do it.

    Reasons:

    If you put some anti-stack/auto-balance thing in place then than 1 of 3 things will happen.

    1) During the final moments of the game when all that is left of one team is their commander with no tickets/spawn points, and everyone else is dead (or in maps like escort or district), people will go spectate just to watch the commander die/team lose.

    If you implement something that will autobalance the teams, in a manner like TF2 (where they team switch when they die), it will cause the winning team to get lower numbers if the commander runs over them while they are running around as infantry during that moment. It sure will piss me off if my team is winning, I am attempting to decon their commander, he runs me over and it swaps me to his team.


    2) It will cause players to not be able to play with their clan or friends. I dont want some stupid plugin causing me not to have fun with my friends.

    3) It will piss players off and make them goto other servers, or even other mods. This has happened with a few mods, SourceForts in particular..but their mod is dying over other reasons as well.



    The only useful way to keep teams balanced (number wise) is to only allow people to join the team that has the least amount of people.



    As for the plugin Reef is working on, no one likes a plugin that polices players in that manner. Griefing is one thing, penaltizing players because of balance issues is another.

    Also some people actually go spectate midgame for other reasons than ragequitting, they may have to do something important IRL, and they go spectate to allow someone else to join in their place.

    I have seen plugins like this go up for debate only to have a war over it, and people (good players and noobs who join the forums) boycotting the servers that implement this.

    I think your plugin is full of epic fail...but thats just me.
     
    Last edited: Mar 31, 2008
  17. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    Sorry, this post is long but it wouldn't change anything if I would split it to pieces.
    I needed to write most of those things anyway. It's fortunate that KM_ brought some issues up.

    That is easy to detect, isn't it? If players are rapidly leaving to specatate or quitting the server, there is no point to switch players from the other team to 'keep the balance'. That brings the 'detect ragequitting/ragespecting' feature up the priority list, thanks for input.
    BTW: mid-game switching is not implemented yet. Now plugin only assigns players when they join the server.

    Currently on servers like KM, balancing is done as described below:
    1. if teams are empty, player is assigned to random team whatever button he presses. 50% chance to fail the player's expectations.
    2. If the amount of players on both team is even, it assigns player to the random team, whatever button he presses. Large chance of assigning the player to the stacked team.
    3. If You want to play with Your clan, You can't.
    4. If You want to play with Your buddy, You can if You are lucky. 50% chance to fail the player's expectations.
    5. If there are 3 pro players in BE and 4 emp_recriuts on NF, next player will join BE, causing the game to be stacked even more than it was.
    6. (continuation of the above) if one pro player would like to switch to NF to help emp_recriuts - he can't, because the plugin count's the number players, not the skill, and guess what: players are not equal to eachother! There are ones that are much more skilled than the others!

    In the future on servers that will use the plugin, balancing will be done as described below:
    1. if teams are empty, player can choose a team.
    2. If the the total skill of both teams is close to eachother, player is allowed to choose a team. If it's not close - player goes to the weaker team.
    3. If You want to play with Your clan, You can't.
    4. If You want to play with Your buddy You can tell the plugin who is Your buddy and if he confirms, plugin will do it's best to put You both on the same team. This will be done in version 2 or 3.
    5. If there are 3 pro players in BE and 4 emp_recriuts on NF, next player will join NF, causing the game to be less stacked. This will be slightly improove on non-greedy algorythm (v2 or v3).
    6. (continuation of the above) if one pro player would like to switch to NF to help emp_recriuts - he will be able to do so.

    As I have said, this is probably detectable. You can help me write an algorythm that would detect such a case so it never happens.

    On KM You cannot choose the team, yet still it's full of happy players. If You "dont want some stupid plugin causing me not to have fun with my friends", You should change the server already, and You could consider changing the nick as well.

    One of the biggest problems in games like NS, Empires, and CS(:S) are the epic stax that always happen. Playing on the stacked team is not fun, like beating a 8-year old kid. Being beaten by someone that knows kung-fu is not fun too.
    THAT IS what causes people to go to other servers and mods. I personally hate playing with the stack. It causes me to play less that I would, if there were no stacks.
    We have no data on how much players are pissed about being stacked or about being unable to stack. I would say, that it's up to the server admin to decide if he wants his server not to be stacked.

    Keeping teams balanced number wise is not usefull. 10 noobs vs 10 pros is skillstacked.

    Noone likes stacks too. The question isn't even "what is less bad".
    We already removed ability to choose the team, but KMSP plugin does it randomly. Why won't We do it better? Assign to the weaker team.

    I don't understand. What kind of penaltizing are You talking about?
    We are rewarding player with fun of a not-stacked game!

    That is a good point, but it's hard to depend on it. What if player switches to spectator and wait untill someone joins the team he left, then he joins in hope of being assigned to the other team? It would be bad. So We could sticky the player for a map, so once plugin decided where to put him, it's final (unless mid-game-balance). This is also bad, because if he gets back to the team he can unbalance the game heavily. We could count his presence on spectator as he would be in a team, playing. That's also bad, because he is not playing and he may never return until the map changes.
    Unless the server has force_respawn set to 1, the best way of idling is to stay in the team (and possibly die when You are afk). You don't click, so You don't respawn, so You don't use a ticket. Eventually when You get back You will want to respawn and then You use a ticket, but if You would go to spectator and back, You would have to use a ticket too.
    There is no quitting to spectator 'to make place for someone else', server isn't set to not count spectators to the players limit.

    I have seen plugins being debated too, but instead of debating I decided to code it and Frog decided to test it on KM server. CowardlyLion decided to test the plugin on [mush] server.
    I have never seen players boycotting the servers that implement autobalancers. Every single server that I have seen got more popular after installing autobalancer on it.
     
  18. km_

    km_ Member

    Messages:
    50
    Likes Received:
    0
    Trophy Points:
    0
    Most of my post was in regard to the plugin you were making. Having a database track my skill, and put me in place accordingly is, to me, policing me to do something I dont want to do.

    What if, for example, I made a clan (I will use CP for example). CP has 4 members, and it contains the best players in the mod, most headshots, 9mines, vehicle kills, etc.... The thing is we only like to play on the same team. So say we join a game, from what your plugin is doing, it will not let us all play on the same team, most we can get is 2 on a single team or 3 at most.

    Everytime I join a server, Mittoes/KM, the clanners always want to be on the same team. With a skill stacker plugin, clans wont be able to enjoy playing together on the same team.
     
  19. Superlagg

    Superlagg Member

    Messages:
    620
    Likes Received:
    0
    Trophy Points:
    0
    As long as I'm still able to choose to play on whichever team I like, I'm fine with it. I dont want to play a team I dont want to play just because they happen to be full of idiots, otherwise what's the point in even asking you what team you want to be on?
     
  20. Reef

    Reef Member

    Messages:
    795
    Likes Received:
    0
    Trophy Points:
    0
    The new KMBalancer plugin will do it's best to put You in the team of Your choice, but it will not allow the teams to be stacked. Currently on servers like KM You are blocked from choosing a team: NF and BE buttons are just aliased to Auto Team. With KMBalancer, You will be able to choose Your team MORE times than with the plain random, that means You guys should moan at the old system and motivate me to speed up the development of the plugin so You will be able to choose Your team faster. I guess some forum users are unable to understand that issue.

    Putting You into the random team is "policing You to do something You dont want to do" too, yet, You moan at the plugin that will allow You to choose a team more than the current solution.

    I doublt that You will find ANY server of any game that will allow that kind of behavior.

    Without a skill stacker plugin, non-clanners won't be able to enjoy playing. Clanners playing together on the same team is not fun too, because there is no challange, there is no real enemy, there is just a bunch of noobs to waste.

    Clans can get their own servers up and convince players to join and fight their stack if they want to. Gee, clans don't do that.
    Afaik Ghosts are told to do their best to balance the game, not to stack it.
     

Share This Page