As part of our special patch 2.2.0 event, we're reaching out to a number of the AddOn authors who have developed the AddOns we've all grown to love in World of Warcraft. Whether it's a Unit Frame, a bag mod, or a threat meter, you've probably used at least one of the AddOns these folks have developed. This particular interview is with Daviesh - developer of AtlasLoot Enhanced - one of the most popular AddOns here on Curse and in the world.
Curse: Could you tell us a little about your background in World of Warcraft and how you got into AddOn design?
I started playing WoW in the first couple of days of the live game. A few friends of mine had been in the beta, so we all sort of kicked off together. My time with Addons started when one of my guildies pointed out to me a mod called AtlasLoot that added the loot drops for Molten Core into Atlas. I liked what I saw and submitted Onyxia and Blackwing Lair data to Pernicius (the original author). Soon after that, Pernicius dropped the project and I took over and renamed it AtlasLoot Enhanced to avoid confusion.
Curse: What was the first AddOn you worked on for World of Warcraft?
AtlasLoot was the first Addon I worked on, and it still takes up a huge chunk of my free time.
Curse: How has being an AddOn author changed the way you play World of Warcraft and how you interact with fellow players?
Well, I don't get to 'play' much any more! When I log in it is usually just to test code changes. I experienced more of the Burning Crusade during the Beta than on live! As for player interaction it can be a little weird when you get a message out of the blue from a user, but that doesn't happen so much now, as I had to rename my character for a server transfer.
Curse: By the same token, has it changed your view of the work Blizzard has done with the game?
If anything, I now have more respect for the shear complexity of the game.
Curse: How badly did WoW 2.0 affect the AddOns you were working on at the time? Did it require you to re-design any of the core features?
It wasn't too bad, most of the changes were well documented and quick fixes. The whole 'taint' issue didn't effect me too much, I don't really hook any of the core interface and mine is not a mod you want to be using in combat! I did have some issues with generating chat links, due to the format changes socketed items introduced that were not all that well documented, but some forum trolling sorted that out eventually.
Curse: Were any of your AddOns "killed," so to speak, by WoW 2.0?
No, the data viewer kind of mods weren't really affected that much.
Curse: What brought about the decision to create an enhanced version of AtlasLoot?
The 'Enhanced' on the name was really just something to differentiate between my mod and Pernicius's original. The very first release was just a bugfix to deal with a conflict with ItemSync in Pernicius's mod, then I started getting data for ZG, AQ20, AQ40 etc, partially generated by what were to become my translators. I had always thought Pernicius would re-incorperate my fixes into the original mod, but he didn't have the time to maintain AtlasLoot, so I had the blessing to continue on with AtlasLoot. Within a month or so, we had pretty much all the instances at the time in there, support for EquipCompare, Dressing Room, 5 languages and it all took off.
Curse: While AtlasLoot Enhanced is an incredibly popular AddOn, there are no doubt folks unfamiliar with what it does. Could you explain its functionality to them?
At its core, AtlasLoot is a loot browser. If you are coming up to a boss in an instance and want to know what the loot drops could be and drop rates, etc, instead of alt-tabbing to wowhead or similar, you can look it up in AtlasLoot, either using the AtlasLoot Loot Browser or by clicking the name of the boss of interest in Atlas. There are lots of other little features too, covering things like PvP, Rep Factions and World Events.
Curse: Are there any new features in the works for AtlasLoot Enhanced?
The World Events section we added recently is continuing to be expanded, with the Skettis, Ethereum Prison, etc to appear in the next release. Pre-60 Battleground items have also been recently added to the work-in-progress version, so expect to see those soon. In the long term, there are lots of things that are continually requested that I would like to do, but the original database structure never had that in mind, so a lot of work is needed. Something like a wishlist to view items you want to get is something I have wanted to do for a long time, but there is a lot of infrastructure that needs to go in place first.
Curse: AtlasLoot Enhanced uses the Ace framework; looking back on the development of the AddOn, would you say it was a good decision to use Ace?
Ace is a great tool, it's just a little sad how much politics and the like surrounds its use. I didn't really gain much performance-wise from the switch, because the mod would need to be TOTALLY re-written to take advantage of everything the framework has to offer and the mod has really become much too big for that now. The use of AceDB and AceLocale allowed me to clean up my handling of saved variables and translations respectively, as I was never really happy with my cobbled together system. AceLocale in particular has allowed for some more stability in the mod. The main reason for the switch though was to take advantage of a lot of the other Ace framework helper libraries that have saved me a LOT of time.
Curse: What other libraries does AtlasLoot Enhanced use, and what is their role in the AddOn's functionality?
At the moment I use a number of the Babble libraries as it allows me to have a lot of my commonly used words and phrases continually updated by a large pool of people. In the interests of fairness, I try and contribute to that effort where I can. I also use FuBar-Plugin, so that I don't have to have my own cobbled together minimap-button code as well as DewDrop and Tablet that help out the FuBar support as well as the menus in the AtlasLoot Loot Browser.
All of those libraries work within the Ace framework.
Curse: With all the experience you've gained through maintaining your AddOns, if you could give a novice author advice on developing an AddOn, what would that be?
Start with small mods and build functionality on from there so that you are not swamped with having to learn the whole API all at once. A lot of little features in AtlasLoot started life as just a little bit of proof-of-concept code with just enough functionality for basic testing, you can learn a lot from little test mods like that. I also highly recommend the book 'Hacking World of Warcraft' by Dan Gilbert (the author of Atlas) and James Whitehead II (the author of Clique) for someone just starting out using or creating mods, it has a lot of good advice and step-by-step guides.
Curse: If you could change one thing about the World of Warcraft API, and how it limits certain AddOn functionality, what would that be?
In Patch 1.10 Blizzard made a change where 'spoofing' item links would disconnect you from the server. The motivation at the time was people using mods to spam chat channels with links to items where the text of the item did not match the item ID, you you could be fooled into thinking it was a cool new item when in actual fact it was someone 'faking' a link. The change was effective in stopping this overnight.
The problem is that now, if an item is not available on the server-side cache, you get disconnected if you try to link it in chat or get the tooltip. In my mod, this is a serious problem. People who have been playing the game for a long time understand the issue, but new players using the mod for the first time don't know why they are being disconnected and I find myself continually explaining things over and over. Before cross-server battlegrounds were introduced, my method of guessing if an item was 'safe' or not by checking the players local cache was reasonably good, but now with cross-server battlegrounds it is really hard to know if an item is or isn't safe.
What I would really like to see is instead of people being disconnected for querying an item that is not in their server cache is to have a message appear along the lines of 'invalid item' or 'item unavailable', so that people KNOW why they cannot view an item. A newer player does not associate a disconnect with an invalid item.
In a perfect world, you would be able to query any item, but unfortunately, that is open to too much datamining, something Blizzard wants to avoid.
Curse: Is there anything you'd like to say to your AddOn fans, or to Blizzard?
To Blizzard, in particular Slouken, thanks so much for supporting something that is officially not supported.
To Pernicius and all past contributors of ideas and data, thanks for your input, the addon would not be as it is now without you.
To the current team, especially Hegarol and Celellach who have gone above and beyond the call of duty, what are you reading this for? Get back to work!
More seriously, the current team in a lot of ways keeps the ball rolling. When I get bogged down with real-life work and things start to stagnate, these guys keep fixes and changes coming and flag bits and pieces I need to look into when I have the chance. Thanks guys!