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 Antiarc - the developer of Omen Threat Meter - one of World of Warcraft's hottest new AddOns.
Curse: Could you tell us a little about your background in World of Warcraft and how you got into AddOn design?
Antiarc: Well, I've been playing since closed beta, and have been hooked since. I play a rogue main, am currently GM of my guild, <Southsea Buccaneers> on Cenarion Circle, and would probably consider myself to be on the more "hardcore" end of the scale.
I've been programming since I was a kid, so WoW's expandability was an obvious draw to me. I first started using Cosmos mods in beta, and it wasn't long until I started wondering what else I could do. I started looking into the source of some of the Cosmos mods, and then started working on some of my own stuff.
Curse: What was the first AddOn you worked on for World of Warcraft?
Antiarc: The first one was a silly little health frame replacement that mimicked the Legend of Zelda UI. I still have a screenshot around, in fact! http://wow.tachyonsix.com/zeldaui3.jpg
Curse: How has being an AddOn author changed the way you play World of Warcraft and how you interact with fellow players?
Antiarc: For the most part, it isn't horribly different, I think. I'm kinda my guild's designated mod guy, so if something breaks, or someone wants a mod recommendation, or someone needs a macro or whatever, I'll probably be getting a tell. :)
I do tend to see a process, or a problem, or what have you, and think "Hm, I wonder if I could write a mod to fix that?" Most of my addons are written to scratch an itch. Among others, I wrote Sanity to facilitate guild banking, Hemlock because I got really sick of calculating out the number of poison reagents to buy, and WhisperBid because handing whispered bids manually is a royal pain in the rear.
I sometimes pull aggro because I'm afk watching debug windows rather than threat meters, though.
Curse: By the same token, has it changed your view of the work Blizzard has done with the game?
Antiarc: I've pretty much always been impressed with Blizzard's job on WoW. I came to WoW from SWG, and I remember being impressed by it in beta, because things that I'd have expected to break in SWG just worked properly (or at least didn't break horribly) in WoW. My estimation really hasn't changed since. Slouken is especially good at maintaining contact with the UI community, and the constant communication and feedback does a lot for my respect for their team.
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?
Antiarc: At the time WoW 2.0 hit, my "big" addon was Sanity, an inventory management mod. I rewrote it from the ground up for a number of reasons, but I went ahead and rewrote it for 2.0 compatibility while I was at it. To that end, it didn't really affect me too much (though I had to end up using secure frames for item buttons, which was a pain).
Curse: Were any of your AddOns "killed," so to speak, by WoW 2.0?
Antiarc: A couple were, yes, but mostly just because I haven't rewritten them. They either weren't heavily used, or were more easily replaced by existing 2.0-compatible mods. The one I want to rewrite was ArmorMeter, which used static-damage abilities to calculate one-shot pinpoint accurate armor levels for targets, and then synchronize that data with the rest of the raid. It also calculated the percentage damage increase that would be granted by the use of certain abilities, such as Sunder Armor, or Faerie Fire. I found, however, that most all raid mobs have AC reduction in the 30-34% range, so there wasn't a lot of point in maintaining a running monitor of that value.
Curse: Are there any AddOns you'd like to work on in the future?
Antiarc: Well, as I mentioned above, I might be interested in rewriting ArmorMeter. I think for now, though, the vast majority of my effort will be focused on Omen and Sanity/SanityBags, as they're large projects that tend to require maintenance. If I think up any great ideas, though, I'm sure I won't be able to rest until there's something functional, though. :)
Curse: You've developed a number of Ace-based AddOns. Would you say this is the library of choice for you, as an author?
Antiarc: To be honest, I haven't used any other mod frameworks to develop WoW mods - I went straight from ground-up mod development to Ace2. However, I've been very happy with the Ace suite, and really dislike developing without it now. To that end, yes, it is my library framework of choice. I think that it is a very solid choice for addon authors due to its existing libraries (which let mod authors get into writing business logic very quickly, while bypassing all the tedious set-up) and efficiency goals.
Curse: For players not familiar with your latest AddOn - Omen - can you explain exactly what it does?
Antiarc: Omen is a threat meter. Basically, enemies in WoW decide who to attack by deciding who is the most threatening based on the abilities you use. What Omen attempts to do is provide reasonably accurate estimates of your group's relative threat level on individual enemies, so that you can see when you're in danger of pulling aggro (or, if you're next on the snack list if your tank bites it). This info is usually only critical in raids, where only tanks can survive aggro, but it's useful for any multi-player situation.
Curse: What are the major differences between Omen and KLHThreatMeter?
Antiarc: Well, Omen is obviously inspired by KTM, but I've attempted to improve on the design. The primary reason that Omen (well, its backing library, Threat-1.0) was written is because KTM brute-forces its threat estimates by polling a large number of values every so often. When we gained CPU profiling in WoW, I noticed that KTM was eating significantly more amounts of CPU time than any other of my mods, even while idle. There was a bit of a flamewar going on over this issue already, but what it basically came down to is that Kenco (KTM's author) didn't have any intent to change KTM's design to be more efficient, so I decided that I could do it better. Omen is empirically, by design, more CPU-friendly, which should improve the user's framerates, though that point is contested by Kenco. :)
Once I started development, the Wowace developers convinced me that it would be well-served to make the project a library, which could be used by any number of mods. To date, Threat is used by several mods, including Assessment, Recount, Aloft, Violation, Pitbull, and Sphere. This provides each of these mods with threat data, while the actual threat calculations (which can be computationally expensive) are only done once, and also allows any mod author wanting to incorporate threat data into their addon to do so without having to do the threat calculations themselves.
In the process, I realized that I could do multi-target threat, which eliminated the need for using a master target, and which gave useful information in multi-mob pull, like Moroes, High King Maulgar, or Kael'thas. Then, we went ahead and implemented per-boss modules. Since many bosses have special threat considerations (like threat wipes, or reductions from knockbacks, etc), we developed a general module framework that allowed each boss encounter to be handled separately, and which makes it easier for future boss encounters to be adapted to easily. This modular design tends to make it easy to develop updates for new threat mechanics as they arise.
The final difference is that Omen itself is just a display for the Threat-1.0 library. What this means is that people who don't want a display don't have to pay the CPU and memory cost of a display. They can just run the Threat-1.0 library by itself and it silently synchs your threat data with your group's without ever getting in your way.
Curse: Blizzard announced at BlizzCon that there will be a built-in ThreatMeter of sorts. During the UI panel they expanded on the comments and said it would be very simplistic. That said, is this exciting for you because of the possibility of better built-in functions that Omen can put to use?
Antiarc: This is very exciting. First of all, it's an official "acceptance" of threat meters, which is encouraging. Second, of course, it will provide an official standard against which we can benchmark new abilities, ranks, and boss abilities, which should make the process of reverse-engineering threat mechanics a lot easier. If we actually get API methods that can be integrated into Threat-1.0, all the better!
Curse: Looking forward, there's talk of 3.0 having a similar impact on AddOns as 2.0 did. Does this concern you at all and make you think twice when an idea for a cool new AddOn pops up in your head?
Antiarc: To be honest, this doesn't concern me a whole lot. Blizzard tends to have a persistent policy that mods should "inform, don't control", and most of my mods are informative or non-combat mods. They obviously encourage mods that streamline the user experience without breaking the spirit of the game, and I think that my mods do that. The only "iffy" area was Omen, which now almost has an official stamp of approval with the inclusion of a stock threat meter.
Curse: If there was one thing you would absolutely love to see implemented into the World of Warcraft API, what would that be?
Antiarc: To be honest, I'm really excited about the 2.4 combat log changes. The simplified parsing requirements and unique mob identifiers are going to let the mod community do a whole lot of things that weren't previously possible. Beyond that, I'd love a way to communicate with the outside world. I know that Blizzard isn't going to give that to us, but the ability to access remote data stores would be absolutely phenomenal. WoW-IM bridges, automatic DKP management, automatic stats recording and parsing...the list goes on.
Curse: Thanks for the interview, Antiarc! Is there anything you'd like to say to your AddOn fans, or to Blizzard?
Antiarc: Anytime! Hope it hasn't been too boring a read!
To the fans...I'm glad you enjoy using my stuff, and feel free to drop me a line anytime! Thanks for all the testing, feedback, and support you all have provided me. Omen, especially, has been far more widely-accepted (even in beta!) than I'd ever expected. Software is for its users, and is only as useful as its users find it to be, and your help and feedback is tremendously appreciated!
To Blizzard, keep up the good work. I still can't seem to pull myself away from the game, so you're doing something right. :)