Jump to content

SilverIce

Members
  • Posts

    68
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by SilverIce

  1. Due to recent changes (spline movement) it will take me bit longer to fulfill my side of the agreement.

    All movement logic will have to be made from scratch. The good news are that the result, as I see it, will be more centralized, clear code.

    I think now movement part of mmap code can be simplified alot or maybe removed at all

  2. Thank you for tests, Undergarun :)

    As i can see from your post, AI notifications consumes much more CPU's power(~30%) than visibility update operations (~5% only)

    PD2: After changing Visibility.AIRelocationNotifyDelay or Visibility.NotifyPeriod from lower value to higher... and tip .reload config CPU don't decrease from 100% of CPU use until next server reboot / crash.

    I will take look at it. Both branches(old_way and simplified) have this problem?

  3. Seems i have found dependence: for example feral charge parabola have constant max height distance -- 0.49

    Z max = ((Duration^2) * vertical_acceleration) / 8, Duration is movement time, in seconds

    example:

    Duration vertical_acceleration Z max

    feral charge:

    0.166 145.16 0.4999

    0.346 33.41 0.4999

    death grip:

    0.131 233.09 0.4999

    0.315 40.31 0.4999

    have fun :)

    P.S. that movement should also relocate player\\creature on server side, there shouldn't be any instant relocations like i saw in first post

    "GetMap()->CreatureRelocation((Creature*)this, x, y, z, o)"

  4. Hi,

    This patch reduces amount of visibility update and AI relocation notification operations -- in this way you will get some performance speedup.

    In original sources these functions called too frequently - this wastes power of CPUs for nothing.

    We should filter redundant visibility update operations.

    Some statistics: optimization decreases amount of visibility update operations in 8-10 times(expected decrease in CPU utilization about 15-20%).

    Currently these are two different ways of how it should be optimized.

    The first way:

    Visibility and AI notification operations processed each N milliseconds. To avoid CPU spikes these operations processed simultaneously.

    Possible problem: as a result of fixed time interval between visibility updates,

    its impossible to increase frequency of these operations for fast moving players/creatures.

    branch1: https://github.com/SilverIce/mangos/tree/visibility_optimization_old_way

    Second way:

    Can't say too much. No problems with visibility of fast moving units: frequency of visibility updates scales with unit's speed.

    branch2: https://github.com/SilverIce/mangos/tree/visibility_op2_simplified

    Note: added few new config setting to find optimal parameters, so don't forget update your config files

    Also, these config options could be reloaded during runtime: you can experiment with these options without restarting

    I think second way is more progressive, but I don't know performance difference.

    Please, test the patches, feel free to comment, report test results..

  5. If my understanding is correct this is some kind of messaging system

    Idea is good as for me.. but i think manager shouldn't be instanced (one manager per map probably?)

    few months time ago i had written this - http://github.com/SilverIce/mangos/commits/singals_code_usage

    idea is same - few objects-listeners receives messages from object-observer and handle messages in own way

    ( it could be used to inform auras about interrupt/trigger events, inform AI etc)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use