Remove Advertisements

Hermes: The great messenger of your raid's cooldowns!

All things /script related

Moderators: Fridmarr, Worldie, Aergis, _Chloe

Re: Hermes: The great messenger of your raid's cooldowns!

Postby Vrimmel » Mon Nov 29, 2010 4:01 pm

How much traffic comes with this addon?
Vrimmel
 
Posts: 363
Joined: Sun Apr 13, 2008 5:40 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Mon Nov 29, 2010 5:14 pm

Vrimmel wrote:How much traffic comes with this addon?


This is a very valid concern and I'm happy that you asked it...

It's hard to say really. Mostly because I've never seen it in a raid environment with everyone running it. One thing I know for sure is that with 5 people is very small. I am not completely sure how it'll scale to 25, or 40. It's mostly due to the initial handshaking that's done. After that initial handshaking, I'm confident about its efficiency.

For example, some precautions I've taken include:

1. I utilize Ace3's AceComm-3.0 library for communication. It in turn uses ChatThrottleLib to avoid being disconnected by the server.

2. The Receivers and Senders keep track of who they know about (in memory) and avoid sending messages to people they know won't have anything useful. For example, when Senders first join a raid group, they send a INITIALIZE_SENDER message which all Receivers will get. The only data in the message is a single number, which ultimately represents the class of the sender. Just by sending a number instead of a string I'm saving on bandwidth.

3. When Receivers get the INITIALIZE_SENDER message, they check to see if they want to track any spells for that class, compile a list of those spells, and if it has any then it sends them in one bulk message to the sender. This message is called REQUEST_SPELLS and it contains an indexed table (not a hash table, so it's less memory). And as you might guess, it's a table of spell or item id's. Nothing but numbers again. Just the cost of the table which cannot be avoided.

4. In item 3 above, I don't need to send a "type" value (is it a spell or an item id?) because I encode the numbers. Positive numbers are spellid's and negative numbers are itemid's. So I save more bandwidth there, and reduce the number of messages by sending spell and item requests in one shot. And btw, quite a few spellids can fit in one message without requiring AceComm to split it up.

5. There is another handshaking message called INITIALIZE_RECEIVER which as you might guess is sent by the receiver when it joins a raid group. The message has no content, no value is actually sent. It's simply sent so that Senders can respond with an INITIALIZE_SENDER message. This is the handshaking I was talking about. Note that in this case, INITIALIZE_SENDER is whispered to the receiver instead of being broadcast to the raid channel. Further cutting down on chatter.

6. Finally, the way Senders decide when to send cooldown updates to Receivers is quite efficient. And the messages are also sent in batches similar to the REQUEST_SPELLS message. In other words, if there are 5 cooldowns updates to be communicated, the Sender doesn't send 5 separate messages. It sends one message with all 5 updates packed into it.

7. The last thing, no one has ever really asked why I use a Class value when adding spells or items. But the sole purpose has more to do with reducing chatter and message bandwidth than for any functional reason.

8. Even the simple fact that I allow you to choose whether you want to act as a Sender, a Receiver, or both is something that can cut down on traffic. If you have nothing useful to send to anyone, disable sending.

I've put a lot of thought into the protocol I use and I have a fair amount of confidence. I just wish I could say that someone has used it in heavy load. But I cannot.

More than you wanted to know? :)

Oh, I almost forgot, even the messages are sent as a number instead of a string:

Code: Select all
local MESSAGE_ENUM = {
   [1]      = "INITIALIZE_SENDER",
   [2]      = "INITIALIZE_RECEIVER",
   [3]      = "REQUEST_SPELLS",
   [4]      = "UPDATE_SPELLS",
}
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Tue Nov 30, 2010 9:47 pm

I have some real data to share to help answer the "how much traffic" question better.

Note that I discovered two bugs during this test:
1. Spells that receivers didn't have checked were still being requested of senders. This will have resulted in extra messages but I couldn't say how many. I'm guessing 4 to 5 per player in this time span.
2. Big bug with DK's and Army of the Dead (and possibly other DK spells tied to Rune Cooldowns). I subtracted out the DK values from the reults (I treated the DK like the lowest message count player instead)

Disclaimer: The results make Hermes look pretty good to me but there are some missing variables which I know will have an impact. Hermes does handshaking and the others don't. This adds overhead. The more users, the more handshaking is needed. This handhaking only occurs when players join a raid, reloadui their UI, or stop/start Hermes. But it does exist.

Here are the results:

Image
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Sun Dec 05, 2010 9:15 pm

Updated first post with changes.
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Mon Jan 10, 2011 12:55 pm

Just felt like bumping this thread. My guild has been successfully using Hermes through Cataclysm and it's very stable. It's true that we had to ask a few people to install it who wouldn't care otherwise, but they appreciated the fact that they could set it up so that it was invisible to them that it was even running. Out of sight, out of mind.

Raid leaders mostly use it for Druid Rebirths but the healers like it for a few abilities such as Mana Tide Totem. I personally use it for Lay on Hands, Hand of Sacrifice, Pain Suppression, and Guardian Spirit. Our damn priests change spec so much I wouldn't know who has what without it :)

Hermes hasn't required any updates since December.
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby sculder » Mon Jan 10, 2011 1:08 pm

rebirths have become a bit of a problem since the limit to the number of combat resurrections possible... Usually some warlock stupidly soulstones himself and eats up one of our rez's, or it bugs out and doesn't give us any at all.
User avatar
sculder
 
Posts: 171
Joined: Sun Jul 25, 2010 9:34 am
Location: Massachusetts

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Mon Jan 10, 2011 4:32 pm

I do wish they'd fix that bug, it's very annoying. I read somewhere that releasing before the boss resets is what causes it. I have no idea if there's any truth to that.
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Thu May 26, 2011 8:05 am

Hey gang, I wanted to bump this thread in preparation for the next release I'll be making. Hermes has come a LONG way since first created. It's certainly a first class citizen in the category of tracking raid cooldowns.

Coming soon (in a few days), Hermes will track spell cooldowns of players NOT running Hermes. This is the primary bit of functionality that has prevented people from adopting Hermes.

Over the last few months, the UI gone over a significant overhaul. The basic "Button" style display that is the most popular remains the same:

Image

But you can also view cooldowns as traditional "Cooldown Bars" that are HIGHLY configurable. Take this screenshot for example from someone in my guild:

Image

While not immediately apparent since you're not the one who configured it, Hermes allows you to configure the look of each bar based on the state of the cooldown and player with the cooldown.

Abilities being tracked can be ordered as you see fit, bar layout can go top to bottom (like the screenshot above) or even left to right if you want them to grow that way instead (and the opposite directions too).

There's so much more I could say but don't want to type forever. I'll post another message here when I'm completed the beta version that checks tracks cooldowns for players without Hermes.

Curse Link for more information: http://wow.curseforge.com/addons/hermes/

(I don't advise downloading any alpha versions)
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby Brutalus » Fri May 27, 2011 12:46 pm

Coming soon (in a few days), Hermes will track spell cooldowns of players NOT running Hermes.


Very much looking forward to this!
Brutalus
 
Posts: 98
Joined: Sun Jun 28, 2009 3:02 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby fuzzygeek » Fri May 27, 2011 4:10 pm

Brutalus wrote:
Coming soon (in a few days), Hermes will track spell cooldowns of players NOT running Hermes.


Very much looking forward to this!


Dis
Image
User avatar
fuzzygeek
Maintankadonor
 
Posts: 5130
Joined: Wed Aug 01, 2007 1:58 pm

Re: Hermes: The great messenger of your raid's cooldowns!

Postby Nikachelle » Fri May 27, 2011 7:09 pm

Pretty much what everything else has been saying. I really look forward to this if it can provide me with everyone's CDs, without them having to install it.
User avatar
Nikachelle
Maintankadonor
 
Posts: 11001
Joined: Mon Mar 23, 2009 10:39 am
Location: Toronto, Canada

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Sat May 28, 2011 8:02 am

Beta available! This was a significant effort so the chance for bugs is high, but I'm confident enough to call it a beta.

Direct Download Link

I've updated the first post on this thread, but here's a repost of a handy feature comparison chart to wet your whistle:

Image
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby jere » Sat May 28, 2011 11:02 am

Just a thought for future updates, but any thought to add an offset option for those spells affected by glyphs that you can't account for. For example, if you know the cooldown of person A is affected by a glyph he/she has, then you could put in somewhere to do a quick

if(source == personA) then cooldown = MAX(0,exptected_cooldown-offset_personA)

Obviously not exact code (I don't know LUA at all, so just mostly psuedo), but just there for visualization.

Basically you could keep a local list of player/offset pairs that get applied (and bounded to avoid - value situations).
Image
User avatar
jere
 
Posts: 2960
Joined: Fri May 11, 2007 5:12 pm

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Sat May 28, 2011 11:08 am

jere wrote:Just a thought for future updates, but any thought to add an offset option for those spells affected by glyphs that you can't account for. For example, if you know the cooldown of person A is affected by a glyph he/she has, then you could put in somewhere to do a quick

if(source == personA) then cooldown = MAX(0,exptected_cooldown-offset_personA)

Obviously not exact code (I don't know LUA at all, so just mostly psuedo), but just there for visualization.

Basically you could keep a local list of player/offset pairs that get applied (and bounded to avoid - value situations).


Glyphs are tricky and would be TRIVIAL to support if Blizzard gave us the means to query a player for their glyphs. You can get a players talents, but not their glyphs. The only way currently, to get glyph information, is by having them run an addon that can send their glyph information to another addon. And currently, that would defeat the entire purpose of tracking cooldowns for someone not running the addon.

However, I think I have actually implemented the feature you're asking for. There is an option to make an adjustment based on a players name. If you happen to know they are using a specific glyph, you can create an adjustment by "Player Name" and use an offset appropriate for the glyph. I created this as a workaround while realizing the limitations with Blizzards current API.

I hope this helps!
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

Re: Hermes: The great messenger of your raid's cooldowns!

Postby inthedrops » Sun May 29, 2011 3:26 pm

I've fixed a few reported bugs. I'll just link the main page for convenience instead of a direct download: http://wow.curseforge.com/addons/hermes/
inthedrops
Maintankadonor
 
Posts: 1281
Joined: Mon Oct 29, 2007 9:19 am

PreviousNext

Return to Add-ons, UI, and Macros

Who is online

Users browsing this forum: No registered users and 1 guest

cron

Remove Advertisements

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest
?php } else { ?