Azerothcore-wotlk: Internal Unit Heartbeat Timer

Created on 23 Mar 2019  路  13Comments  路  Source: azerothcore/azerothcore-wotlk

SMALL DESCRIPTION:

This issue is about the discussion of a potential blizzlike 5 second internal unit timer based on some information provided by a user under the name of xvwyh.

https://github.com/TrinityCore/TrinityCore/pull/22380
This pull requests has some interesting information commented by xvwyh detailing information sniffed from the alpha. While alpha data shouldn't be taken as confirmed, there are a lot of evidence that point towards blizzard having a 5 second internal unit timer acting as a heartbeat for triggering a multitude of different processes including but not limited to eating / drinking emotes, Spline syncing and certain Aura procs.

It is probably incorrect to simply implement a timer specific for eating / drinking emotes such as the recently merged PR did. https://github.com/azerothcore/azerothcore-wotlk/pull/1602

I encourage everyone to discuss their opinions on the matter and potentially we can address the issue at hand.

EXPECTED BLIZZLIKE BEHAVIOUR:

The blizzlike behavior might be to have a timer running on every unit (creatures included). The timer does not appear to be synced across all units and appear to start ticking when the unit is spawned into the world.

CURRENT BEHAVIOUR:

The current behavior is to have individual timers for things such as the eating / drinking emotes, spline syncing and certain aura procs.

STEPS TO REPRODUCE THE PROBLEM:
  1. This is a discussion, nothing to reproduce right now
EXTRA NOTES:

Thank you for reading this, hopefully this can lead to an interesting discussion.

BRANCH(ES):

master

AC HASH/COMMIT:

None

OPERATING SYSTEM:

Any

MODULES:

No

OTHER CUSTOMIZATIONS:

No

Help wanted Needs feedback Suggestion

Most helpful comment

Other cons in my opinion:

  • You have to thoroughly test everything in order to prevent regression
  • You still have the risk of some unforeseen side effects

Also, the pros mentioned here are in my opinion only a "nice to have", they don't improve the user experience for the players. So you have to weigh the risk of regression and unforeseen side effects against benefits to the user experience when implementing such changes.

I think AC is quite stable now, so we should be careful here not to risk this stability.

All 13 comments

A friendly reminder to anyone reading. Your thoughts are valued :)

We could start by making a list of spells with flags mentioned in TC issue

We could start by making a list of spells with flags mentioned in TC issue

Thats a good suggestion, if someone wants to get on this feel free, I will try and get around to it when I have some free time for it.

The blizzlike behavior might be to have a timer running on every unit (creatures included). The timer does not appear to be synced across all units and appear to start ticking when the unit is spawned into the world.

where is proofs from non alpha client?

The blizzlike behavior might be to have a timer running on every unit (creatures included). The timer does not appear to be synced across all units and appear to start ticking when the unit is spawned into the world.

where is proofs from non alpha client?

Perhaps you misunderstood the post. The post implies that the data was found when looking at the alpha client, and not in a non alpha client. https://gyazo.com/e0d920aa745c5c5880f2a295c35e79ae

The screenshot shows a snippet of a statement written in the issue linked above which explains that looking at these values from the alpha client there is a natural missing event that we currently do NOT handle. This implies that there most likely is an event that we don't handle, if its this one in particular is hard to say, but given the nature of what evidence and the current implementation with the addition of how often splines sync, food emotes trigger and auras such as the headless horseman (in the issue linked above), it would be natural to question the possibility of this being real.

As GitVerge said, it would be a good idea to start collecting a list of spells with the given flag and attempt to see if any of it would make better sense given the possibility of a missing system.

I think viste asked "needs proofs from NON alpha client"

I think viste asked "needs proofs from NON alpha client"

If I had proof from the non alpha client I surely would've posted it in the issue :)

I don't think we should look away from this just because there is no proof from a non alpha client. It should be relatively "easy" to figure if a system like this could potentially be running.

I don't understand what would this bring. Can you list the pros and cons?

I don't understand what would this bring. Can you list the pros and cons?

Pros:

  • Proper handling of auras depending on PROC_FLAG_HEARTBEAT
  • Combining several individual and incorrect timers into a single timer

Cons:

  • You have to fix the ugly code that was written before it

Other cons in my opinion:

  • You have to thoroughly test everything in order to prevent regression
  • You still have the risk of some unforeseen side effects

Also, the pros mentioned here are in my opinion only a "nice to have", they don't improve the user experience for the players. So you have to weigh the risk of regression and unforeseen side effects against benefits to the user experience when implementing such changes.

I think AC is quite stable now, so we should be careful here not to risk this stability.

Other cons in my opinion:

  • You have to thoroughly test everything in order to prevent regression
  • You still have the risk of some unforeseen side effects

Also, the pros mentioned here are in my opinion only a "nice to have", they don't improve the user experience for the players. So you have to weigh the risk of regression and unforeseen side effects against benefits to the user experience when implementing such changes.

I think AC is quite stable now, so we should be careful here not to risk this stability.

You're partly wrong. The main thing to test for is the Auras using the PROC_FLAG if it does exist, the rest of the code will take 2 seconds to test, and if it really is wrong it will be obvious imediately, but this is not about the implementation details, rather the discussion if this is actually a thing.

Secondly it being a nice to have is something I don't agree on, its an entire proc flag that isn't handled as it should be.

Please keep it to suggestions or results of testing this exists.

but where is proofs, or at least list auras what using this kind of mechanic?
Now it all looks like beautiful words and nothing more.

but where is proofs, or at least list auras what using this kind of mechanic?
Now it all looks like beautiful words and nothing more.

This issue was started so that we can investigate the possibility of this being a real thing and not just an alpha thing. I understand the curiosity and disbelief, but can we keep this to tracking down if it exists, and then when we know if it does or not, decide on the implementation details.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lineagedr picture lineagedr  路  3Comments

cts17 picture cts17  路  3Comments

wetbrownsauce picture wetbrownsauce  路  3Comments

Franklampardst picture Franklampardst  路  4Comments

Maurowin picture Maurowin  路  3Comments