Author Topic: Different approach: What is still needed/lacking?  (Read 1610 times)

Offline Ripshaft

  • Full Member
  • *
  • Topic Author
  • Posts: 56
  • Karma: +15/-1
    • View Profile
    • Awards
Not going to bog down with a big intro, just gonna get right to it.

Things that are needed for playdota.eu bots


A way to quickly know if the game you've just joined is stacked for one team (pub stomp)
A way to quickly know if one team is a group of friends who almost always plays together (pub stomp)
A way to quickly drop or otherwise avoid noobs in a pro game.
A way to quickly drop or otherwise avoid pros in a noob game.
A realistic scoring system.


Now, for some more detail. Basically, almost every game I join that I'm not hosting myself is victim to one of those problems. When I do host myself, it's a very tedious duty to check every player that joins, knowing that about 40 will join and leave before the game even gets started. The bot can easily have the functionality to prevent these problems. It is highly unrealistic for players joining a game to be able to check about the above problems properly. You can join and start !sd'ing every player, but chances are the game will start before you get through more than 5 of them, and even if you discover the teams are stacked, there's nothing you can do about it unless the host cares, which is unlikely since it's near impossible to stack without the host's consent. Additionally it's not realistically possible to check for teams of friends in game, you can alt tab and look at their stats, and see if they share a ton of games together, but by the time you alt tab back, the game will most likely have started and the noobs on your team will be typing in -afk before you've got your hero, and then you have to sit through a steamroll.

****
Edit: Just fyi, awhile back I started intentionally joining stacks to discover the clearest criteria for how to identify what makes a stack. Now what it really comes down to is the following: A mega stacker will always have an incredibly unrealistic w/l ratio, due to the current score system strongly favoring w/l over all else, this also results in an incredibly inflated score.

Bottom line: Fastest way to avoid a stack currently is to first identify the owner of the game you've joined, and then check his stats, if his w/l ratio is completely impossible for a pubber, you're probably in a stack. To confirm, check the other players on the owner's team, chances are they will all/mostly have a impossible w/l ratio as well.

If you want to be extra sure, ask the host to shuffle and see the reaction =p or check the players on your team, they usually have severely negative k/d ratios.

However, it does seem from the results of my tests that there's not always an easy way to verify a definitive stack. Checking for a cumulative score difference of 100 between the teams generally means stack if it goes through, though I have had normal, and even good games where this is the case, the inflated stats of a few players can really throw off these numbers. Also alot of really good players have terrible scores, due to the scoring system explicitly favoring stackers. If the score is ignored, alot of stackers still have garbage k/d ratios despite how much they win. So yeah, like i said, not easy to properly define based purely on the score stats. In the end the w/l ratio is the best way I can see to properly identify them. A simple check like seeing if 2 or more players on the team have a win percentage of 70%+ would probably do the best to identify stacking.

Of course true stackers, who only stack to stomp noobs would have no real problem getting around this by intentionally reducing their w/l ratio. Ah well like i said, no perfect solution but I'm still thinking on it.
****

So... Now that the needs are somewhat clear, solutions;


As for the scoring system, I've read that they're currently working on it. The current system places a massive emphasis on w/l ratio, which is completely irrelevant, and influenced most by abuse of the system rather than any form of player skill. People with the highest w/l ratios tend to be the most unskilled of players, only playing noob stomps or otherwise arranged games. With a new realistic scoring system in place, it can be applied as a single stat of reference in many of the features I will suggest from this point in.


A way to quickly know if the game you've just joined is stacked for one team (pub stomp)

An average of the player scores for both teams should be compared when the host submits !start, or just periodically, if the ratios are all out of whack, the lower team should ALL have to consent for the game to start. All are required because in a noob stomp situation, most noobs just want to play and get experience, not realizing what it means to be in a noob stomp, 4/5 noobs would just agree regardless of what comes up just to get playing. It might be an idea to disable stats on these games regardless of the outcome, at least until the new scoring system is in place.


A way to quickly know if one team is a group of friends who almost always plays together (pub stomp)

This is an ideal function for a bot to handle if it can. I don't think game specific information is stored in the bot's dbs, if it could perform a remote lookup, it could check the past 10 games of each player, checking for other players on their team who are also commonly present on their team in the past. If this level of functionality is not available in the bot, it might be a good idea to add it in, it should be possible with minimal overhead, I'm not sure on the current structure of the db that ghost/pd.eu bots use, as I havent looked at it in awhile, but it shouldn't be too difficult to add in a listing of the players each player has played with on their team for 5-10 previous games. Then a simple compare could be done either at !start or periodically, and the opposing team warned. This one wouldn't necessarily require full consent from the other team to continue, as simply knowing that the opposing team has players that frequently play together is enough for most players to be more aware and play better, and be more motivated to kick their ass, knowing that the other team will expect to win.


A way to quickly drop or otherwise avoid noobs in a pro game.

A simple !pro command, available to the host would be ideal for this. Once typed in, the game will either block or boot any players who do not satisfy a  'pro' condition. If the scoring system is redone and works, this would probably be sufficient a check, simply disallowing anyone with a score below a certain threshold. Before that, or if the scoring system just doesn't work very well, then a k/d/a ratio check should work fine, for example a good check would be (k+a*0.5)/d > 1.25 or so. It's unlikely that anyone who doesn't satisfy that condition is any good. This of course doesn't guarantee the players joining will be pro, it just eliminates most of the noobs.

When a new player joins the game while !pro is enabled, they are notified in the join message. If the game is supposed to be pro, the new player can simply request it, if the host wont enable it, they can leave. Not a perfect solution, but it's quick and easy. It wouldn't take long before most players demand it, noobpros tend to take pride in how 'pro' they are, so they'd probably want it, resulting in pro games which do not use !pro commonly failing to start due to lack of interest over games that do have it enabled. Players that have either no games or a very small amount of games will be allowed, but a message will be broadcast informing the host or everyone that this is the case, at which point it's at the host's discression.



A way to quickly drop or otherwise avoid pros in a noob game.

My solution to this is basically the exact same as the !pro solution, except it's !noob instead, and instead of having to be above a certain threshold, now it's below. Additionally there'd have to be an emphasis on amount of games played, which is compared to their stats in those games. A player who has an ok score in noob games shouldn't be denied their ability to continue playing noob games until they've played a certain amount (10,20?), however, someone with an absolutely stomp score should be barred from noob games provided they have a few of these games under their belt (like 3 or so). So basically number of games is the primary check, with score being a secondary, if they pass the initial check, their score is checked, if it's far too high, they're denied. If their fail the initial check (the number of games), but their score is utter crap, they would also be allowed.

To put it into a pseudocode type format, to make it clear to anyone who can read that:

if (number_of_games < threshhold)
{
 if (Score >= CrazyHighScore && number_of_games > 3orso)
 {
  DENIED! boot/block
 }
 else
 {
  OK!
 }
}
elseif (score == crap)
{
 OK!
}
else
{
 Boot, deny.
}


I am sure that the !noob, !pro, and team stat check options are feasible and easily added, the others I'm not so sure about. I have an idea on a realistic scoring algorithm, but I need to run atm so cant write that in, might add it later if I remember. Just need to post this before I forget again =/
« Last Edit: March 17, 2010, 03:48 by Ripshaft »

Offline penisfacelol

  • Junior Member
  • *
  • Posts: 14
  • Karma: +1/-1
    • View Profile
    • Awards
Re: Different approach: What is still needed/lacking?
« Reply #1 on: February 24, 2010, 11:58 »
Well... imho the problem with all this is that it is too complex and not very transparent.
Categorizing people to rigid "!pro" and "!noob" classes would definitly be a big turn-off for many players..  especially to the people near the borderline.
People dont suddenly become pro. Its a gradual process.. so the transition should be gradual.

I would rather see the solution, you yourself offered in some another topic.. (compare team player scores and do not allow starting if the difference is too big). This would avoid dividing people into !pro and !noob.. which is demeaning and arbitrary.


Offline penisfacelol

  • Junior Member
  • *
  • Posts: 14
  • Karma: +1/-1
    • View Profile
    • Awards
Re: Different approach: What is still needed/lacking?
« Reply #2 on: February 24, 2010, 12:05 »
If you think about it.. the host would still have full control to kick noobs or pros in inappropiate games (which would avoid games where there are 4 pro and 1 meganab   VS  5 average players), while still restricting him from stacking.

Offline Ripshaft

  • Full Member
  • *
  • Topic Author
  • Posts: 56
  • Karma: +15/-1
    • View Profile
    • Awards
Re: Different approach: What is still needed/lacking?
« Reply #3 on: February 24, 2010, 22:57 »
Reading fail =/ My suggestion does not categorize or seperate people as noob or pro, it only creates easily useable safeguards for extreme noobs from pro games and likely pros from noob games. Not the other way around. The commands are to tell who is definately not noob or pro, not to determine or descriminate who is noob or pro, everything applies in the lobby only, no distinctions are made that reflect on the user anywhere else.

As for the other comments...

complexity; there's 3 general categories of people who this applies to, the programmers, end hosts, and end user/client. The !noob and !pro commands should be relatively easy to program and apply to anyone familiar with the bot code, and is excessively simple as far as programming jobs go. To the hosts, all they need to do is type the command once per game if wanted, and that's it, for clients, if they care they can see if it's enabled, no other involvement is required. I'm not sure what part of that is more complex than putting on your socks in the morning.

transparency; how transparent the system is depends on the end program, if the programmer feels like it they can very easily echo out the logic for the resulting actions (ie when someone's kicked/denied), if not, it's still not really a big deal to most people, they'll really only complain if it does not work very well or not at all.

And my previous general suggestion about the teamstack is also present in this one. They're all meant to work in tandem, each addressing different issues of the greater problem of finding consistent good games.
« Last Edit: February 24, 2010, 23:01 by Ripshaft »

Offline 7th.SkY

  • Junior Member
  • *
  • Posts: 46
  • Karma: +5/-3
    • View Profile
    • Awards
Re: Different approach: What is still needed/lacking?
« Reply #4 on: March 16, 2010, 14:57 »
I'm not sure if I understood you well enough, you're suggesting for the bot to be able to count the scores of each teams and decide whether the game is balanced or not. So, for an example, the Sentinel team has a total of 20, while the Scourge has 10, now bot should automatically shuffle the players to make, if not exactly then nearly 15-15. If that is what you meant, I like this idea a lot!

It's hard for a bot to decide if you're noob or pro, because, basically, there are EM modes, noob games, pro games, and if you have a total of 90 games played, 30 of each category, we have a total mess.
Therefore, splitting into "noob" and "pro" categories is almost an impossible mission. Maybe, those guys who entered games that contain word "pro", or "expert", or "godlike", shouldn't be able to enter games named "noobs" or "newbies", as a part of the game name. Now, if a "noob" wants to enter "pro" game, meaning, if he feels like he has made some progress and is now ready for pro games, his stats should be erased and, therefore, he should be able to enter any game he wants that would be decisive to what type of games are going to be played on that account.


However, first thing's first, I think we should change the way stats work before we can do anything else, cause we can't add suggestions related to the stats system that we haven't seen yet and have no certain info about it...

Offline ek0

  • Honored member
  • HolyShit Member
  • *
  • Posts: 5029
  • Karma: +347/-260
    • View Profile
    • Awards
Re: Different approach: What is still needed/lacking?
« Reply #5 on: March 16, 2010, 17:00 »
A way to quickly drop or otherwise avoid noobs in a pro game.
A way to quickly drop or otherwise avoid pros in a noob game.
Ban request forum...