1
Feedback / What I personally want to see changed. [rev 6]
« on: April 03, 2010, 05:59 »
Intro
My suggestions so far deal with either optional commands that many will find useful - or that are too controversial to be made default - and general changes that would have little to no notable negative impact to the competitive player while providing large potential bonuses to all players.
... but that's not because that's just what I want... I just think that kind of stuff is needed. What I'd actually like to see done, what I'd do if I controlled the bots, is much more dramatic, and figured I'd get it off my chest, because it bugs the shit out of me almost every game.
The Changes:
First, remove !ping and !from completely.
Remove !banlast and !ban, auto ban all volountary leavers, except those who are leaving under reasons justified in the rules.
Remove !synclimit, !setlatency, add a 20 second delay after connection window pops up until host can use !drop.
Add a !voteteamunmute (only the player's team has to vote, only unmutes for team speak)
In the same way, have a !votemute and !voteteammute that work in the same way as above, but with muting. Also add a signifigant ban for teams of friends muting the odd man out, or just anyone muting without due cause, and broadcast this when !voteteammute is used.
Remove !muteall, or modify it so that it actually does mute ALL, and make it enterable only within the first 3 min or so. Add an equivalent vote function called !votemuteall which would be the same as the old !muteall, but requiring 60-80% vote.
[rev 6]With personal muting (see below) in place, there's really no need for the host or anyone to have muting power. Remove all mute commands other than the personal muting.
Votekick's abuse potential is always a problem as long as there is a vote, given the nature of the average dota player. To reduce this signifigantly, have only the host/owner able to call !votekick, paired with a signifigant ban for votekick abuse, and a message broadcasting this much to the players whenever a !votekick is called, with information on how to reach the forum.
Change the current scoring algorithm to remove the w/l ratio entirely, then apply the w/l ratio to adjust the score: 50% w/l no change, >50% w/l = reduction in score proportional to amount, <50% w/l increase in score proportional to amount. This is only a temporary change until a real scoring system is in place. This heavily normalize the scores and significantly reduce the score inflation caused by stackers. Obviously the goal of this is to reduce stacking, resulting in a higher amount of actual balanced good games.
Change the backdoor rule from 'there is not backdoor rule' to 'clear and plain backdoor rule' - there must be a uninterrupted line of creeps leading to the building, and creeps at the building, to attack it. An alternative would be to allow the host to declare and enforce the backdoor rule with cooperation from ban forum admins.
To deal with stacking in the shortterm, add !votescramble, requiring 50% votes to pass. While the vote is in progress, the game cannot be started. Think of it as waiting for spoofcheck but more like a stackcheck. The votescramble will not change the position of the player in slot 1/0 (blue). If the vote passes, another vote may not be made until the host uses !swap or another slot manipulation tool. Not perfect, just a damn good option.
[rev 2] Allow !hold to only be used if there is a slot open or closed (and not being held for someone), if there isnt one, display message saying to close a slot. When !hold is used, it will automatically close a slot. If the slot is opened, it will auto-re-close, displaying a message saying 'slot x currently held for player [playername]', after 5 seconds if the slot's attempted to be opened again the slot will open and the player will no longer be on !hold, and a message displaying this will be displayed. !unhold [playername] would also be an added command, who's use should be obvious. The above is easy enough to code in, for a slightly more advanced implementation, a dummy player, called 'HELD' or something similar, with a coloured name, could be used to hold the slot, to make it even more obvious that the slot is held for a player.
[rev 2] Add auto suppression text filters. Ie when the filter conditions are satisfied, the text is suppressed (does not get seen by anyone other than person typing it). I'm sure there's many that people can think of, but for absolute certainty in my mind... Any sentence containing: 'gg' at any point before end of game, 'finish' at any point. 'don't def/stop def' at any point, 'balance' at any point in a game with -so. Obviously case insenitive, bad grammar assumed, multiple permutations of the text .etc; just giving examples.
[rev 2] Add logging of !swap use in lobby, make intentional stacking a bannable offence.
[rev 2] Add personal mute options, ie !pmute [playername], mutes that player for you personally, does not echo the message, nobody will know you typed it. No vote, obviously. Also a !mutescourge !mutesent and !muteall available to all players not requiring vote and not echoing.
[rev 3] Suppress !sd messages, ie when someone types !sd [whatever], nobody else sees it.
[rev 3] Once the game is full (all slots occupied/closed) for 6 seconds, a full listing of players in order by slot and their abbreviated stats is echo'ed out for all to see. Should make it easy to identify stacks or just poorly balanced games. It would make sence to tack this at the beginning of the game log along with the other info (swap log etc) stated above as well.
[rev 4] if !shuffleplayers is used, disallow it to be used again until there has been significant disruption in the slots, ie 2-3 swaps/player leavings/joinings.
[rev 5] If a player 'loses connection' for any reason within one minute of dying, the host can ban. The host is obviously held responsible and banned if there's insufficient reason to believe the player plugged.
Some Reasoning:
Now, to explain some of my reasoning;
The removal of !ping and !from, is simply because these are completely useless commands. The bot auto pings, auto checks connection stability, the bot is better at this than any player will ever be, the average player has absolutely no concept of what a ping is or it's correlation with connection stability, if any. Also, where a player is from has as much correlation with their game performance as their colour of skin, it's an absurd discrimination that should not be made available.
The removal and automation of !banlast/!ban is fairly self explanatory, it's pretty silly that it's not allready automated.
The removal of !synclimit, !setlatency if for basically the same reason as removal of !ping, the people using these commands have no idea what they're actually doing, and they're used in completely unnecessary and damaging ways, !synclimit is really only ever used to !drop people, and it's effect on the player who is lagging means that now their hero can be killed while they lag, where without intervention they'd be safe. !setlatency is either never used or used only to show how 'pro' the host is by spamming commands available, I'm not sure if the bot auto corrects latency issues, but regardless, this is not something that should be controlled by a player, ever.
The !votemutes and !voteunmutes all deal with the current issue of the host having the only control over this very important function. If a person on your team is being a flaming jackass, and you're not on the host's team, you often will not be able to get him muted. This results in a signifigant negative impact on enjoyment of the game. Poor morale is responsible for 70-90% of fail in my experience, losers who are crying in the team about the team are responsible for most of this.
The removal of !muteall is fairly straightforward, communication between the teams and players on the teams is an important feature, to have it taken away without requiring a reason is absurd. If it's something everyone wants, then sure, you can vote for it with !votemuteall. Keep in mind many players are disconnected from bnet shortly after the game starts, most people don't know about the !private commands, meaning they have no known way to communicate with the host to indicate there's any problem if !muteall is used (something they never consented to).
The reasoning behind the votekick change is pretty much explained in the change notes. This of course doesn't prevent abuse, just reduces the accountability for it to one person, the host. The host would have to at least know about the playdota.eu channel, which already makes them a more aware player than most of the people who play on the bot, so they'd probably be more wary about getting banned for abuse as well. This combined with the notification of penalty for abuse of the system I believe would have a significant effect on reducing the current level of abuse of this command, which is more or less restricted only to !ragekick. This is a command that should be used incredibly rarely, only to boot players that are in clear violation of the rules and wanting to ruin the game.
The backdoor rule I just think is needed for proper sporstmanship. Almost every player understands the backdoor rule and why it's in, though they may not be able to explain it. I mean alot of people know that there's no backdoor rule on playdota, and we very rarely see it, that should say something. Most players will honor the backdoor rule without ever knowing about it or being told about it, they will however blatantly backdoor when they fear that they are going to lose, or when they're short on time. This is absolute bullshit in my opinion, which is why I advocate the change. I do not want to win due to backdoor. Ever. It's garbage.
[rev 2] Fairly self explanatory, should stop some of the abuse from bad hosts who don't know how to use !hold. This of course wont stop the people who don't even bother to use !hold, but it should stop the people who do from abusing it due to lack of knowledge.
[rev 2] The auto suppression is fairly self explanatory, it's meant to stop messages that provide absolutely no benefit but have great potential to piss off or demoralize players, thereby ruining a game. As I've said before, demoralization is responsible for 90+% of fail in dota that I've seen. Whining in text for contributes alot to this.
[rev 2] The swap logging and stack ban changes are very straightforward, they are meant to help stop or greatly reduce stacking. Ideally the swap logging can be present at the start of the chat log that's posted after a match. With a simple record of who was swapped with who to what slots, ignoring players who were not present for game start, and a listing of the slots with what players are in them at game start.
[rev 2] The personal mute options I had thought of many times before, but it's one of those things that's so obvious you forget about, so it missed the first posting. Very simple straightforward option, I would use it heavily, and I know many others would if they knew about it. Even with all the other votemute functions in place, this can be a faster and more elegant solution to your flaming/whining jackass problems.
[rev 3] Another painfully obvious thing, alot of people whine about !sd 'spam' now, simple solution is to suppress it, since all text handling is mediated by the bot.
[rev 3] I've made a suggestion like this before, and the reply I got was that it would cause flood, I asked what they meant and they did not reply, any form of flooding can be overcome with proper coding. I know that this type of function is possible as I've seen similar implementations on other bots, and there's no technical limitation that I am aware of.
[rev 4]This is something I just ran into today, a host repeatedly !sp'd - I'm not sure if he intentionally !sp'd until all the players on sent were good except the player in slot 1, but that's definately how it worked out. There's no reason to shuffle more than once when all the players are the same, and the type of abuse i just described is more than possible, so makes sense to stop that, this does that.
[rev 5]Pretty self explanatory, this should cover most rageplugs. It wont cover the 'cry/i give up/no chance plugs', but it should take some heat off the ban admins and help reduce the overall number of rageplugs.
[rev 6]Put the power to mute asshats where it belongs, in the hands of every player. If you dont want to hear someone, for any reason, you should be able to mute them. You also shouldn't have to deal with people muting other players to you without your consent. This solves all those problems and more. Zero chance of mute abuse, full responsibility on each player who uses it.
So yeah, I'll probably add more when I remember, but those are most of the main ones I think. Mabye you'll find some of them of interest.
Edit: added some formatting... might make it easier to read, who knows.
Edit: added a revision number to the title.
[rev 2] Edit: added revision notes for the added stuff.
[rev 3] I should also mention again, I am quite a capable codemonkey, I am certain I can code any of these suggestions I have mentioned, and would gladly do so if asked.
My suggestions so far deal with either optional commands that many will find useful - or that are too controversial to be made default - and general changes that would have little to no notable negative impact to the competitive player while providing large potential bonuses to all players.
... but that's not because that's just what I want... I just think that kind of stuff is needed. What I'd actually like to see done, what I'd do if I controlled the bots, is much more dramatic, and figured I'd get it off my chest, because it bugs the shit out of me almost every game.
The Changes:
First, remove !ping and !from completely.
Remove !banlast and !ban, auto ban all volountary leavers, except those who are leaving under reasons justified in the rules.
Remove !synclimit, !setlatency, add a 20 second delay after connection window pops up until host can use !drop.
In the same way, have a !votemute and !voteteammute that work in the same way as above, but with muting. Also add a signifigant ban for teams of friends muting the odd man out, or just anyone muting without due cause, and broadcast this when !voteteammute is used.
Remove !muteall, or modify it so that it actually does mute ALL, and make it enterable only within the first 3 min or so. Add an equivalent vote function called !votemuteall which would be the same as the old !muteall, but requiring 60-80% vote.
[rev 6]With personal muting (see below) in place, there's really no need for the host or anyone to have muting power. Remove all mute commands other than the personal muting.
Votekick's abuse potential is always a problem as long as there is a vote, given the nature of the average dota player. To reduce this signifigantly, have only the host/owner able to call !votekick, paired with a signifigant ban for votekick abuse, and a message broadcasting this much to the players whenever a !votekick is called, with information on how to reach the forum.
Change the current scoring algorithm to remove the w/l ratio entirely, then apply the w/l ratio to adjust the score: 50% w/l no change, >50% w/l = reduction in score proportional to amount, <50% w/l increase in score proportional to amount. This is only a temporary change until a real scoring system is in place. This heavily normalize the scores and significantly reduce the score inflation caused by stackers. Obviously the goal of this is to reduce stacking, resulting in a higher amount of actual balanced good games.
Change the backdoor rule from 'there is not backdoor rule' to 'clear and plain backdoor rule' - there must be a uninterrupted line of creeps leading to the building, and creeps at the building, to attack it. An alternative would be to allow the host to declare and enforce the backdoor rule with cooperation from ban forum admins.
To deal with stacking in the shortterm, add !votescramble, requiring 50% votes to pass. While the vote is in progress, the game cannot be started. Think of it as waiting for spoofcheck but more like a stackcheck. The votescramble will not change the position of the player in slot 1/0 (blue). If the vote passes, another vote may not be made until the host uses !swap or another slot manipulation tool. Not perfect, just a damn good option.
[rev 2] Allow !hold to only be used if there is a slot open or closed (and not being held for someone), if there isnt one, display message saying to close a slot. When !hold is used, it will automatically close a slot. If the slot is opened, it will auto-re-close, displaying a message saying 'slot x currently held for player [playername]', after 5 seconds if the slot's attempted to be opened again the slot will open and the player will no longer be on !hold, and a message displaying this will be displayed. !unhold [playername] would also be an added command, who's use should be obvious. The above is easy enough to code in, for a slightly more advanced implementation, a dummy player, called 'HELD' or something similar, with a coloured name, could be used to hold the slot, to make it even more obvious that the slot is held for a player.
[rev 2] Add auto suppression text filters. Ie when the filter conditions are satisfied, the text is suppressed (does not get seen by anyone other than person typing it). I'm sure there's many that people can think of, but for absolute certainty in my mind... Any sentence containing: 'gg' at any point before end of game, 'finish' at any point. 'don't def/stop def' at any point, 'balance' at any point in a game with -so. Obviously case insenitive, bad grammar assumed, multiple permutations of the text .etc; just giving examples.
[rev 2] Add logging of !swap use in lobby, make intentional stacking a bannable offence.
[rev 2] Add personal mute options, ie !pmute [playername], mutes that player for you personally, does not echo the message, nobody will know you typed it. No vote, obviously. Also a !mutescourge !mutesent and !muteall available to all players not requiring vote and not echoing.
[rev 3] Suppress !sd messages, ie when someone types !sd [whatever], nobody else sees it.
[rev 3] Once the game is full (all slots occupied/closed) for 6 seconds, a full listing of players in order by slot and their abbreviated stats is echo'ed out for all to see. Should make it easy to identify stacks or just poorly balanced games. It would make sence to tack this at the beginning of the game log along with the other info (swap log etc) stated above as well.
[rev 4] if !shuffleplayers is used, disallow it to be used again until there has been significant disruption in the slots, ie 2-3 swaps/player leavings/joinings.
[rev 5] If a player 'loses connection' for any reason within one minute of dying, the host can ban. The host is obviously held responsible and banned if there's insufficient reason to believe the player plugged.
Some Reasoning:
Now, to explain some of my reasoning;
The removal of !ping and !from, is simply because these are completely useless commands. The bot auto pings, auto checks connection stability, the bot is better at this than any player will ever be, the average player has absolutely no concept of what a ping is or it's correlation with connection stability, if any. Also, where a player is from has as much correlation with their game performance as their colour of skin, it's an absurd discrimination that should not be made available.
The removal and automation of !banlast/!ban is fairly self explanatory, it's pretty silly that it's not allready automated.
The removal of !synclimit, !setlatency if for basically the same reason as removal of !ping, the people using these commands have no idea what they're actually doing, and they're used in completely unnecessary and damaging ways, !synclimit is really only ever used to !drop people, and it's effect on the player who is lagging means that now their hero can be killed while they lag, where without intervention they'd be safe. !setlatency is either never used or used only to show how 'pro' the host is by spamming commands available, I'm not sure if the bot auto corrects latency issues, but regardless, this is not something that should be controlled by a player, ever.
The !votemutes and !voteunmutes all deal with the current issue of the host having the only control over this very important function. If a person on your team is being a flaming jackass, and you're not on the host's team, you often will not be able to get him muted. This results in a signifigant negative impact on enjoyment of the game. Poor morale is responsible for 70-90% of fail in my experience, losers who are crying in the team about the team are responsible for most of this.
The removal of !muteall is fairly straightforward, communication between the teams and players on the teams is an important feature, to have it taken away without requiring a reason is absurd. If it's something everyone wants, then sure, you can vote for it with !votemuteall. Keep in mind many players are disconnected from bnet shortly after the game starts, most people don't know about the !private commands, meaning they have no known way to communicate with the host to indicate there's any problem if !muteall is used (something they never consented to).
The reasoning behind the votekick change is pretty much explained in the change notes. This of course doesn't prevent abuse, just reduces the accountability for it to one person, the host. The host would have to at least know about the playdota.eu channel, which already makes them a more aware player than most of the people who play on the bot, so they'd probably be more wary about getting banned for abuse as well. This combined with the notification of penalty for abuse of the system I believe would have a significant effect on reducing the current level of abuse of this command, which is more or less restricted only to !ragekick. This is a command that should be used incredibly rarely, only to boot players that are in clear violation of the rules and wanting to ruin the game.
The backdoor rule I just think is needed for proper sporstmanship. Almost every player understands the backdoor rule and why it's in, though they may not be able to explain it. I mean alot of people know that there's no backdoor rule on playdota, and we very rarely see it, that should say something. Most players will honor the backdoor rule without ever knowing about it or being told about it, they will however blatantly backdoor when they fear that they are going to lose, or when they're short on time. This is absolute bullshit in my opinion, which is why I advocate the change. I do not want to win due to backdoor. Ever. It's garbage.
[rev 2] Fairly self explanatory, should stop some of the abuse from bad hosts who don't know how to use !hold. This of course wont stop the people who don't even bother to use !hold, but it should stop the people who do from abusing it due to lack of knowledge.
[rev 2] The auto suppression is fairly self explanatory, it's meant to stop messages that provide absolutely no benefit but have great potential to piss off or demoralize players, thereby ruining a game. As I've said before, demoralization is responsible for 90+% of fail in dota that I've seen. Whining in text for contributes alot to this.
[rev 2] The swap logging and stack ban changes are very straightforward, they are meant to help stop or greatly reduce stacking. Ideally the swap logging can be present at the start of the chat log that's posted after a match. With a simple record of who was swapped with who to what slots, ignoring players who were not present for game start, and a listing of the slots with what players are in them at game start.
[rev 2] The personal mute options I had thought of many times before, but it's one of those things that's so obvious you forget about, so it missed the first posting. Very simple straightforward option, I would use it heavily, and I know many others would if they knew about it. Even with all the other votemute functions in place, this can be a faster and more elegant solution to your flaming/whining jackass problems.
[rev 3] Another painfully obvious thing, alot of people whine about !sd 'spam' now, simple solution is to suppress it, since all text handling is mediated by the bot.
[rev 3] I've made a suggestion like this before, and the reply I got was that it would cause flood, I asked what they meant and they did not reply, any form of flooding can be overcome with proper coding. I know that this type of function is possible as I've seen similar implementations on other bots, and there's no technical limitation that I am aware of.
[rev 4]This is something I just ran into today, a host repeatedly !sp'd - I'm not sure if he intentionally !sp'd until all the players on sent were good except the player in slot 1, but that's definately how it worked out. There's no reason to shuffle more than once when all the players are the same, and the type of abuse i just described is more than possible, so makes sense to stop that, this does that.
[rev 5]Pretty self explanatory, this should cover most rageplugs. It wont cover the 'cry/i give up/no chance plugs', but it should take some heat off the ban admins and help reduce the overall number of rageplugs.
[rev 6]Put the power to mute asshats where it belongs, in the hands of every player. If you dont want to hear someone, for any reason, you should be able to mute them. You also shouldn't have to deal with people muting other players to you without your consent. This solves all those problems and more. Zero chance of mute abuse, full responsibility on each player who uses it.
So yeah, I'll probably add more when I remember, but those are most of the main ones I think. Mabye you'll find some of them of interest.
Edit: added some formatting... might make it easier to read, who knows.
Edit: added a revision number to the title.
[rev 2] Edit: added revision notes for the added stuff.
[rev 3] I should also mention again, I am quite a capable codemonkey, I am certain I can code any of these suggestions I have mentioned, and would gladly do so if asked.
Maps
Streams