Friday, March 12, 2010

User Interfaces: Bending The Rules of Fair Play

Of all the possible topics about User Interfaces, the one I find the most enlightening is the one about what people consider acceptable usage, exploitation and the very gray area in-between. This is perhaps the most complicated of issues because much of it has it’s basis in personal opinion.

The Custom UI Argument
I’m a huge advocate for flexibility in a UI. I think 90% of the complaints people have about a default UI can be addressed simply by allowing people to rebind keys and move/resize UI elements. The more flexibility people have to adjust the UI in a way that is comfortable and convenient to them, the more they are going to enjoy the game experience.

That’s not open for debate and even the most rigid of game developers offers the ability to at least rebind keys.  The issue is to what degree do you allow people to edit and customize the UI.

Warcraft and Warhammer, for example, allow custom scripts or addons to be written that can radically alter the game UI. If I so chose, the API in both games is open enough for me to completely rewrite something like the Auction House. As an addon author and someone who plays an aggressive game on the Auction House, that’s something I even considered doing.

There are some real advantages to allowing your community to modify the UI. Perhaps the best argument to allow such customization is that it allows your users to address usability issues which will actually improve the game.

For example, I happen to be color blind in real life and long before Blizzard implemented UI options to address the handicap, I tried a Custom UI addon that fixed a lot of the common issues color blind people faced.

And there are countless examples of other UI improvements that were incorporated into the Warcraft UI over the years that were originally inspired by custom addons. Speaking as an addon author, I can tell you that I absolutely love the ability to simply “fix” the things I saw as a problem in the UI.

If I didn’t like something, I just changed it.

Unfair Advantage
The other school of thought is that such customization provides an unfair advantage if it’s not built into the default UI. Custom mods certainly DO provide an advantage and I don’t think many people would argue that point. A raid mod that throws up big neon signs telling you to “GET OUT OF THE FIRE!” is a pretty distinct advantage over a default UI requiring you to, well, see flames on the ground around you.

No. The argument is over whether or not it’s unfair. Addon supporters would argue that it’s not unfair because anyone can download the raid mod. Non-supporters argue that such things are unfair to those people who don’t want to research and keep an up-to-date laundry list of third party addons.

The non-supporters have a very valid point and it’s not just a matter of laziness. As a third party addon, the deployment, updating and support of that customization is left up to the individual player.

Patches break them and they often have undocumented bugs. Support, when there is any, is provided by some guy named FrostyPants when he has free time (and hopefully he didn’t quit playing the game).

In addition, it also assumes that all such addons are publically released and available to everyone. As an addon author, I can tell you that’s not true.

Take the Auction House addon I considered writing. Given my experience as a top-end trader and my knowledge as an addon author, I had some ideas for some very powerful tools that would have automated much of what I needed to do manually (even with addons like Auctioneer).

I would never have released such a thing to the public and kept it for my sole benefit. A private addon like that would most certainly be unfair.

I’m not a Lawyer, but I play one on the Internet
Anytime this discussion is brought up, players start quoting the EULA like it’s the Bible and they are the Pope. The problem with EULAs is that they are purposefully very broad in scope in order to protect the developer. It’s basically in the developers interest to write the EULA in such a way that it forbids everything NOT in the game and allow themselves the caveat to make exemptions at their discretion.

Even Blizzard, who supports third party LUA addons, takes the legal position in its EULA that nothing is allowed unless authorized:
You agree that you will not, under any circumstances:
  • B. use […] mods or any other unauthorized third-party software designed to modify the World of Warcraft experience;
  • D. use any unauthorized third-party software that intercepts, "mines", or otherwise collects information from or through the Game or the Service […]; provided, however, that Blizzard may, at its sole and absolute discretion, allow the use of certain third party user interfaces;
The default legal position is that even the most benign third party addon is not allowed unless, at Blizzard’s discretion, they decide it is allowed. But that’s only the legal position to protect them in court.

This whole “at Blizzard’s discretion” thing is the fuzzy part. Addon authors write an addon, post it to Curse or some other site, and people can download and use it. No approval required and it’s implied by Blizzard’s lack of legal action against Curse and other such sites that this is acceptable.

In other words, Blizzard doesn’t feel they need to approve each individual addon. In fact, it’s become commonly understood over the years that if it can be written using the in-game API, it’s acceptable. Even if such things automate tasks like data mining Auction prices, collecting mail items and listing things on the Auction House.

The point here is that it’s ludicrous for Armchair Lawyers to try and look at the EULA for guidance on these disputes. Because, strictly from a legal standpoint, nothing is allowed unless you can find some documentation where they have expressly allowed it. And yet, there are plenty of examples in every game of things they allow without making such rulings.

Acceptable usage or Exploit?
Obviously, anything which is allowed by the default game is an acceptable use. Unless, of course, it’s a bug exploit. In which case, it’s not.

OK. So it’s not quite that obvious, but using bug exploits is bannable, right?

Not always, sometimes the more benign bugs (like gliding downhill) never get fixed at all and become part of the game. Others, might get you a suspension and all your stuff taken away.

Things become less gray when we talk about obvious exploitation.

Figure out a way to duplicate gold? Even the most dishonest player knows that is against the rules. Likewise, hacking or altering memory values for a game are pretty blatant and obvious cheats.

It’s a bit less obvious if the memory value is merely read, not altered. For example, imagine a separate piece of software that monitors your memory for other Player Characters and plays a .wav file in Windows if a new one is loaded into memory.

Technically, you are not altering or modifying the Game or Game World. You are only intercepting data from the Game and using Windows to play the sound alert. FRAPS does the same thing to record video.

Obviously, one usage is a cheat and the other a benign use of third party software to record events. However, legally speaking, these both violate the same rules in Blizzard’s EULA.

What makes one a cheat and another acceptable? What makes a bug exploit part of the game or game breaking?

It’s our interpretation of the intent and the scope of the impact that makes a difference. An interpretation that is made fuzzy because it’s subject to personal perspective and perceptions.

The gray area in-between
I think the average user has some clue about what is blatantly wrong. It's one reason why I decided against writing that Auction House addon.

That said, I think the really muddled part of this discussion relates to automation. A bot that plays the game unattended is an obvious cheat.  It’s less clear when we talk about automating tasks.

Certain activities, like collecting all your mail or listing multiple auctions, address usability issues and automation offers a significant improvement in the user experience. Other activities, particularly those related to combat, that automate or decide in-game action are unfair and potentially abusive.

In fact, developers go to great lengths to ensure that such combat automation doesn’t exist by default in a game. Warcraft introduced a “taint” system which eliminated such automation in addons and even developed a detailed macro system as a replacement to provide a specific level of acceptable automation.

Warhammer didn’t provide any macros at all. Nor does Darkfall or EVE. It’s commonly understood that such automation is a violation of the spirit of the game and unfair to other players.

And yet, it exists out-of-game.

I’m referring specifically to hardware devices (and software) that allow you to chain (and even time) specific actions. The most notable is the G15 keyboard. A quick search on any game forum and you’ll read a dozen different Armchair Lawyer opinions about how it does or does not violate the EULA.

Blizzard apparently takes the position that using the G15 to automate is against the EULA, but doesn't ban the device – just the use of the device to chain actions. And only then, when they can detect that you are doing it. 

Of course, if you are only chaining a few things (like 1-2-3) then it’s impossible for them to detect. It’s only when you use it to attempt automation that’s identifiable by other people (like auto-fish) that such usage is going to result in a suspension or ban.

Legality vs. Enforceability
The G15 is perhaps the most high profile device. I find the hypocrisy of the wide-spread native support makes it an interesting topic, but it’s hardly the only way to perform these types of actions.

This issue is what I alluded to in Wednesday’s entry. There are GUI elements that sit on a UI Layer (Plane of Glass) and UI elements that result from Hardware Input. A developer has absolute control over what can happen on the UI Layer.

Ultimately, they have little control over Hardware Input. As an extreme example, they can’t really stop someone from placing a brick on the space bar.

Long ago, I bought a Gateway computer that came with an Anykey Keyboard which you can still find on Ebay for $30. The unique thing about this keyboard is that it allowed complete programmability (including macros) and remapping of your keys.

This was at a hardware level, so no amount of software detection could ever detect that these keys were not pressed by a human. That was in 1992.

However, even at a software level, how hardware input is received is handled by the Operating System – not the application. As such, other software can interface directly with the Hardware API to create Hardware Events without touching or directly interacting with a Game application.

In other words, there is no way for the Game to distinguish between a Hardware Event triggered by a real keystroke or another software application.

All the Game knows is that it received the Hardware Event.

Nor is using such software to create Hardware Events a violation of a EULA on it's own because it's an Operating System (rather than application) function.  The act of automation may be against the EULA, but using a separate software program to simply disable the "Windows" key or remap it to "Print Screen" is not.

Interestingly, this also sheds some light on how botting programs, like MMO Glider, worked. They can  mine data about the game world and then trigger Hardware Events based on that information.

In other words, it could read the positional data about where you and other things were located in the RAM and then push the buttons needed to make things happen based on that information. The noteworthy thing here is that this happens without the third party botting program ever interacting with the Game other than to read (not alter) memory values.

For example, to loot something, they could setup an alert that triggered when the mouse cursor (or tooltip) changed to something else. Then the hardware input moves the mouse all over the screen until the mouse cursor changes and the alert occurs. If it does, then the bot knows to send a Right-Click at that mouse position to loot.

None of this is really detectable even by Blizzard’s Warden. However, what IS detectable is the program. So it might not be able to find the behavior, but it could find the program if it knew what program it needed to find. A person who developed such a bot that was not public would be almost impossible to find.

But the truth is that you don’t even need such software to automate many actions because basic automation is available in a lot of programs that Blizzard (or anyone else) would never consider banning you for using. The G15 software is the easiest example, but there are others including AutoIT and AutoHotKey that both have legitimate non-cheating uses.

Not promoting cheats
I want to be clear that I'm not advocating that people cheat or violate the spirit of fair play.  This is really just a post about why I find this topic so intriguing.

It's complex, filled with hypocrisy, and even the most well informed players are often left in ambiguity.

The thing that really prompted me to write about it is that I was recently advised in-game (in the trade channel) to download and use the program AutoHotKey in Darkfall.  Advice that several people echoed.

Having some previous familiarity with this program, I was a bit shocked and this prompted me to search the in-game forums. I turned up two posts:
These are both recent topics and the first link has detailed instructions about setting up AutoHotKey. The second link is a several page debate about whether or not you'll get banned for using it.

Now the interesting thing is that the second link is CLOSED. The first link is still open with posts as recent as a few days ago.

Reading through the legality post, you'll find that you end up with a similar answer to Blizzard's G15 position. Using it won't get you banned. Misusing it will.

1 comment:

Solf said...

On this topic what I find fascinating is where the line is.

For example, for at least several classes in WoW combat can be summarized as what is known as 'priority system' -- you're using whatever ability is off cooldown and is 'the best bang'.

Now obviously you can achieve almost ideal result by arranging buttons properly and simply clicking 1-2-3-4-5-6-7-8 without ever having to look at the screen.

Or you can simply literally faceroll the keyboard :)

So what if you simply use G15 or whatever and bind 1-2-3-4-5-6-7-8 to Space bar? Is that cheating? Or not?

Now if you do that, you'll get a lot of 'ability not ready' spam. Which is inconvenient but doesn't really impact the gameplay.

What if you wanted to get rid of the spam? You could write a program that would monitor which ability is off-cooldown and just send that key, rather than all eight of them. Nothing changed from the gameplay point of view, but you get less spam now. Are you cheating now?

And finally -- at some point you are going to get bored from having to press spacebar every 1-1.5 seconds. You can easily write a program that will imitate spacebar being pressed every second for as long as you hold that spacebar down, so instead of pressing the spacebar like mad, you just hold it down. Are you cheating now?! You are still at the computer, you are still pressing the button(s) -- is that cheating?

My own opinion is that combat system often used in WoW and other similar games simply sucks -- there's trivial 'best way to press buttons' -- it's no wonder that people automate it as in many ways the human society evolves by automating/optimizing away mundane & boring tasks.