Wednesday, June 24, 2009


I came across Keven Kelly's Triumph of the Default today. Which made me think about the state of defaults in WoW addons. The situation is really all over the place. Some addons come in a very usable state while others come needing extensive configuration to really be useful.

I work on PitBull and TBag. Which are on pretty opposite ends of the spectrum. TBag has a pretty complete default setup. So much so that I think hardly anyone really bothers to alter the actual sorting much. They may move around the bars in which things go but generally nobody touches the actual sorting rules. Some of this is a result of the fairly difficult configuration for the sorting rules. Something I really would like to redo if I ever find the time to do it.

PitBull on the other hand when you first load it up all the frames are stacked up on top of each other. They're all configured the same. It's been a pretty constant complaint about PitBull that it takes too long to setup. Yet despite this it is still a very popular addon.

I really need to find the time to sit down and work on better defaults for PitBull4. We can certainly have the frames positioned in reasonable places. There's been a lot of confusion for users coming from PitBull3 and thinking they get one set of configuration for all the frames. A good set of defaults could help communicate the design of the configuration better. As Kevin Kelly put it "Defaults are a tool that tame expanding choice." We can help users moving to PitBull from PitBull3, another unit frame or even just the stock Blizzard frames by providing them a default configuration that they can then immediately use and make choices about how it works over time. Our current defaults aren't doing this and need to be improved.

A good example of a bad default is the use of the Health - Smart tag. It will only show something on the health bar for a player if they're missing health, while showing the standard current / maximum display that users are used to for NPCs. But this is throwing a lot of users off. Because typically the only health bar they see while configuring it is their own. So we end up with a lot of questions about "Why don't my health bars show how much health I have."

Changing long standing defaults is not without risks though, even if the default was bad. Recently we changed the default text provider in PitBull4 to LuaTexts. LuaTexts provides much better performance while keeping the same set of pre-written texts for users. However, it does so at the cost of ease of customization. Due to the way Defaults in AceConfig work changing this default changed all the existing users over to LuaTexts just by upgrading. This caused a lot of confused users wonder where their customized texts went.

But the experience with changing to LuaTexts reinforces how much the defaults drive people. LuaText adoption really picked up when we changed that default. Of course it made it more visible. As all the users had to either configure it or switching back to DogTagTexts. They ended up on forums wondering about it where they learned of the advantages and some of them decided to make the switch.

Defaults may not be the most exciting thing to work on. But the difference between a quality set of defaults and a largely unconfigured addon can be worlds apart. PitBull needs to work on this.

Sunday, June 14, 2009


Welcome to my blog about World of Warcraft. I decided to create this blog to be able to share with you my readers thoughts about the World of Warcraft UI and particularly the creation of Addons. There won't be a whole lot of discussion of class, boss, or pvp mechanics. Though I'm sure I'll probably mention some of these things. Rather, I'm going to focus on thoughts and issues I've found while working on addons.

I've been playing World of Warcraft since just before The Burning Cursade expansion came out and over time and gotten more and more involved in working on addons. I started by fixing bugs and things that annoyed me in some of the addons that other people wrote. Eventually I ended up picking up TBag and maintaining it. Since then I've written a few smallish addons from scratch and have been a major contributor to PitBull. I've done a significant amount of the work that's gone into PitBull4, in particular I wrote the Aura module and LuaTexts (a replacement for DogTagTexts, that is now the default text provider).

In particular as I've worked on PitBull4 I've come across things about WoW that are either downright irritating, frustrating or that I wished were a little different. I've discovered techniques that help save CPU time or work around bugs in the game. I wanted a place I could share these with people, provide updates on what I'm working on and just in general have a way to publish interesting tidbits.

So here we are. Shefki's WoW Blog.