Thursday, March 07, 2013

Privileges, Part 2

On the previous post, Stubborn comments:

I completely agree, but since it would take an incredibly larger amount of effort on the dev's part to generate a) what should be a privilege, b) what the requirements for gaining access to the privilege are c) what should cause the privilege to be revoked, and d) actually monitor those systems, there's no way they'll actually do it. 
Throwing gigantic rules blankets over the whole population is so, so much easier.
I don't agree. Sure, having one simple rule for the entire population might be easier. But that rule doesn't stay simple for long. It gets hedged about with exceptions and special cases. And that makes the whole system more brittle and prone to unexpected error.

From a programmatic standpoint, privileges or permissions are not that hard to implement. It is simply a different way of looking at the problem.

In fact, it is a very common technique in operating systems or business software. Can you read, change or delete a file on your computer? Rather than trying to apply a single rules heuristic, it's just handled by the permissions on that file. The OS doesn't really care how you got those permissions, but only that you either have permission or you don't.

Business software and operating systems have a mental conception of users that fit into different groups, which is why privileges feel natural to them. It is only gaming software that tries to pretend that all its users are the same.

As well, permissions don't have to be calculated in real time. The game generates logs, and those logs can be parsed at a later date by bots looking for patterns. Indeed, if you come up with a new and better pattern recognition bot, you can rerun it on old records.  A simple example might be a bot that looks for people who swear in public channels. All chat logs are saved, so a bot can traverse those records at its leisure, spit out results, and those results can set chat permissions which apply in the future.

RJ comments:

But you yourself just laid out a number of what you consider the perfect cases for it being a privilege that cannot be strictly programmed in; else you get systems like we already have! 
Example: If you designed a new game that had a vote-kick system, what would your programmatic patterns of abuse be? The guy kicks a lot of people? How does the program know that it's not legit? 
Example: If a person is needing a lot on gear that's actually wearable by them and offered to him by the game, how do you know he's not just making a legitimate use of the game system?

Here's the thing. I believe that abusers of rules exhibit very different patterns of behavior than regular users. Take vote-kick for example. I almost never vote-kick anyone, and I pretty much only run LFR/LFD at this point. I just don't see that anyone can possibly justify a high vote-kick rate in dungeons. I think the problem more likely lies with the vote-kicker.

Same with Need/Greed. Alright, maybe in your first instance run, you have a higher than average amount of need rolls. But if you keep that up, that's a clear sign that you are behaving badly.

These patterns should be identifiable. Obviously, you do need some history, to let the Law of Large Numbers start to kick in.  But if you were presented with a player's history, I think it would not be hard for you to determine if a player is exploiting the rules or not.  And if you can see the pattern, then a bot can be built or trained to see the same pattern.

Take a player in a battleground. If you look at the players's history, and see one battleground with zero damage or healing, well, maybe he was defending a node which never got attacked. But you start seeing more and more of them, the odds that this player afks or is a bot increases dramatically.


  1. The problem is that WoW doesn't have rules for many things. There is no rule that forces you to be supportive to other peoples way of playing the game. If you like to fish in a BG, go for it. There's nothing in WoW that states that this is not a correct way to play the game.

    Your no damage and no healing test doesn't work. Because it's perfectly fine to not participate in the battle (from a rules point of view). WoW already has a feature that puts you afk if you don't press a key for a few minutes. If the game flags you afk you're removed from the BG and if it doesn't flag you afk your either botting or your playing the game as intended, even if it's just fishing.

    Yesterday you mentioned ganking. Ganking is within the rules of WoW and Blizzard doesn't act if you repeatedly gank a player. Why should the game remove the ganking permission from someone that plays exactly as intended on a PvP realm?

    You see the "privilege system" as a way to enforce rules that don't exist in WoW.

  2. I believe that abusers of rules exhibit very different patterns of behavior than regular users.

    Just because you believe it, it doesn't mean it's true. I'm quite positive that Blizzard does indeed perform statistics on the logs/behaviour of people and "fixes" things accordingly.

    Also, I'm not sure I understand what the advantage of your system is: an automated, bot-controlled privilege system is exactly like having rules, and it exposes itself to the same kind of manipulation/workaround. Actually, it could even be WORSE than rules, since rules are proactive, while privilege removal is necessarily reactive, i.e. it "happens too late". Banning a gold-spammer 1 week after he's been spamming is not exactly useful...

    It would also lead to enormous forum QQ / GM tickets / etc. as people find themselves with lowered privileges while they think that they "acted right".

  3. It's an interesting concept that deserves additional development. I would like to hear how you would implement least privilege. It seems like this system would require inverting it (everyone starts with maximum privilege) and that leaves me dubious.

  4. First of all, thank you for highlighting my comment! I love these kind of discussions and feel "privileged" to get to continue talking about it.

    I actually don't think we're disagreeing at all, and I think your conclusion regarding the difference between business and game software - that the design assumes users should or should not be put into different categories - is a brilliant one that deserves a more detailed follow up.

    To be fair, I know next to nothing about computer programming beyond the little text adventures I used to write in C+, so the ease with which programmers can implement systems is far outside my experience. My point of view, as always, comes from the classroom, where you can have immediate, personal ramifications for every decision that's made. There, it's much, much easier to just say a flat "no" to everything than have to potentially review each case individually and defend the decision you eventually make. Making a blanket rule there is far, far easier.

    That said, I only had one rule: don't do anything that interrupts the educational process. I did review situations on a case by case basis. That's one of the reasons I think we're in agreement; having a smart system that monitors behavior and adjusts appropriately would be so vastly superior to anything else that WoW does that it almost couldn't even be WoW anymore. WoW's all about blanket rules, even down the the fundamental gameplay.

    I also agree that as rules accumulate, they begin to become fragile and interact in ways that perhaps they shouldn't. Still, that kind of warning only works if the people you're giving it to have enough foresight to realize that the extra effort will still be less work than having to untangle everything else later. Blizzard's "foresight" record has not been particularly impressive as of late, though.

    Thanks for the in-depth response, and I hope you do more follow up on the differences between business software and game software; it may be very revealing considering how "business-like" may games expect their top-tier players to be nowadays.

  5. @stubborn: I have coded such systems; if you put in a manner to track the statistics you're using(per Rohan's example), then you can code methods and procedures to utilize said statistics.

    @Rohan: Personally, I tend to agree with RJ on this. I'm not a frequent vote kicker, but have been subject to throttles. Your statement is a prime example of confirmation bias.

    Here's the thing. I believe that abusers of rules exhibit very different patterns of behavior than regular users. Take vote-kick for example. I almost never vote-kick anyone, and I pretty much only run LFR/LFD at this point. I just don't see that anyone can possibly justify a high vote-kick rate in dungeons. I think the problem more likely lies with the vote-kicker.

    To state that you don't kick people, so the problem is the vote kicker only applies to you, because you either don't run into people you feel justified in removing from the group. Personally, as someone who runs LFR exclusively(I don't run LFD with more than 1-2 randoms any more due to vote-kick throttling) I find myself kicking, or at least wanting to remove individuals from the group all too often. Abusive individuals, individuals who ride coattails of the group by not providing DPS/Healing, or individuals gaming the loot system by using different specs from the one queued in, or individuals gaming the ilvl requirements(I have seen tanks in 450ilvl gear or lower). In each instance, the group is informed, a vote kick is requested, and in many cases, even for tanks, the vote kick passes. At this point, I have nearly 80 kills across all 5 LFR instances, and can count on one hand where I've been involved in a run where at least a few people weren't kicked for one of the above reasons, provided they didn't leave the raid on their own first. All of those are valid reasons(I don't include subpar performance of any task, so long as it's the one you signed up for valid), yet under your system I'd be throttled, since I'm the problem, not the individuals who queue as DPS yet spend the entire time in a healing spec, or some other similar situation, to say nothing of those who abuse loopholes in the way that Blizzard evaluates ilvl for LFR.

    I have similar issues with such a system for throttling need rolls; how often have you gone through an instance and seen loot drop that only one spec could use. I have, many times(seemingly more often when nobody can use the items), and would hate to be in a situation where I couldn't make a legitimate need roll for an item simply because I'd rolled need too often prior to that.

    Ultimately, the problem isn't that you can't programatically define privileges for a game like WoW. The problem, ultimately, is that there's no way to determine whether the person averaging 2 vote kicks per instance is a good actor(removing individuals for poor group play and behavior) or is a bad actor(removing individuals for not meeting their unnecessarily high standards for the content in question).

  6. I agree with JThelen, and would like to throw in my own example.

    The inherent nature of a Need/Greed/Pass system is that the game is asking players who can use that gear if they want it or not. There's multiple reasons why a player may need on any given piece of loot that is usable by them (or maybe even if it's not):

    1) It's actually something they want to use. If they are not lucky the first time, they will continue Needing on it until they get it.

    2) It's something they want to modify for a different gear set. We all know of players who have multiple versions of the same armour or weapon, gemmed or enchanted in different ways for different purposes.

    3) It's something they want for an alt or friend (generally BoE items; remember, not all Need/Greed choices are for boss loot or gear). While "Need" is meant to mean "I will be using this", I don't see why people can't also think "My friend in the raid group really needs this to improve their gear." Especially when we're talking about the BoP/BoE crafting mats.

    4) They're just a jerk.

    Given this, admittedly incomplete, list of possibilities, having only a 25% chance of someone being a griefer wouldn't instill confidence in me of some programmatic system attempting to assign or revoke my privilege.

    And again, as I mentioned, even if you did somehow design a programmatic system that was adequately accurate, everyone who notices it occurring is going to contest it with the GMs anyway, even if they are in the wrong. So you're back to it being a system of review by humans, which can only work up to a certain player-base size.

  7. I started following this blog when I had very limited time for WoW and wanted to keep up with the game via a feed reader. However, I've found your posts fill a much more important role in my life.

    I wrote a browser based MMORPG about a decade ago and recently began working on a sequel. Even now I'm still brainstorming the specifics of how certain rules and features will work; it's far more complex than many people realize. In any case, I have found so many of your posts, including this one, to be incredibly insightful and provide a fresh perspective helping me to work out approaches that I never would have considered on my own.

    I just wanted to take a moment and let you know about the positive influence your posts have even outside of the MMORPG playerbase.

    And, of course, to give a heartfelt thank you. :)

  8. " If you look at the players's history, and see one battleground with zero damage or healing, well, maybe he was defending a node which never got attacked. But you start seeing more and more of them, the odds that this player afks or is a bot increases dramatically."

    Thank you for bringing up the painful memory of people afk'ing Alterac Valley for *days* at a time. In the cave, no damage, no healing. Match after match after match after match...

  9. I've been thinking about the issues in WoW with the community and player bad behaviour. I do think Blizzard could do a hell of a lot more to promote good behaviour, rather than trying to punish or limit bad behaviour. It just seems to me that it's better to look at this from a positive standpoint.

    Playing Tera recently I've seen that a high percentage of the loading screens have positive messages on about good grouping, usually with an amusing picture and a jokey style to the text. I've no idea how effective that is but it's more engaging than the bland rules-related loading screen tips WoW has!