4-5-2017

Discussion in 'Changelog' started by robregen, Apr 5, 2017.

  1. robregen

    robregen Administrator Staff Member

    Messages:
    8,386
    Code:
    Cavedude

    * /who all will now display AFK and LFG.
    * Pets will now use the same melee range as their owner.
    * Damage done to a NPC used to credit XP and the corpse upon their death is now kept in its own list, instead of using hatelist.
    * Removed the hatelist methods that previously handled this functionality. As a result, the Lua export GetHateDamageTop() has also been removed. (It was unused.)
    * Damage added to this list by all player pets will now count towards their owner to correct issues with charmed pets losing damage credit when charm fades. (NPC pets will keep track of their own damage, since they don't despawn when their owner dies.)
    * Rewrote a large portion of NPC:Death() to implement this new list, optimize the method, remove obsolete code, and correct a potential zone crash.
    * Rule AlKabor:HighLvlCorpsesAlwaysSpawn has been changed to AlKabor:LevelCorpsesAlwaysSpawn and now can be used to specify the level NPCs will always leave corpses if a player is present (defaults to 55.)
    * NPCs will no longer seek out other NPCs to attack in zones that never idle and have no players. (Boat/Quest zones.) This saves a good amount of CPU in local testing.
    * NPCs will no longer fully process death in zones that are idling (this shouldn't happen much anymore due to the above change.)
    * Created a new variable for /assist range, and set it to be slightly higher than /target range.
    * [Performance] Fixed a large overhead issue where every single NPC in a zone was checking to depop themselves as a swarm pet every 3ms regardless of being a swarm pet or not. Swarm pets now check to depop only when their timer is up (Akkadius from eqemu)
    * Converted the loginserver to use LogSys, removing the old error_log system. The categories used in this commit are Login_Server, Netcode, and Error. Set all three to general in order to get full log output.
    * The login's trace and world_trace options have been removed from the database. In order to enable those logs, set Netcode to general.
    * The packet_dump in/out options are still valid, and require Login_Server to be set to general.
    * Added DumpServerPacketToString() so that Server Packets can be dumped using LogSys instead of DumpPacket(). DumpPacketToString() already exists for Application Packets. Converted several DumpPacket() calls to use LogSys.
    * Some console color syntax may have been lost in this commit. New LogSys categories with a custom color can be added in that's an issue. By default, the colors are yellow for Login_Server/Netcode and red for Error.
    * Aggro scan timers will now be disabled in no combat zones.
    Haynar
    * Increased Rule PetCommandRange to 200. This is used for pursuit range of pets.
    * Updated some message ranges to clients.
    * Dragging your own corpse will no longer cause aggro in some Velious zones.
    * Added some optimizations in hatelist management, where distance to mob was being calculated multiple times.
    * Added a min persuit range where timers are used and mobs will continue to chase. This will help prevent runners in ring war from being kited.
    * Pets will no longer apply hate bonuses due to closer proximity. Low HPs are still appealing though.
    * Adjusted some spell casting AI values to save CPU cycles.
    * Added combined packets for OP_MobUpdate
    Robregen
    * Updated glm library to 0.9.8.4 (from 0.9.6.1) (Uleat from eqemu)
    * [Performance] Reduced CPU footprint in cases where a client is checking for aggro excessively every 750 millseconds. This has been adjusted to 2 seconds per new rule RULE_INT(Aggro, ClientAggroCheckInterval) - When zones have many players, with many NPC's, this adds up quickly (Akkadius from EQEmu)
    * [Performance] Removed a timer where clients would constantly calculate light amount on equipment every 600ms, instead clients will update light when changing equipment or entering a zone (Akkadius from EQEmu)
    * [Performance] Disabled enraged timer checks for NPC's that do not actually have enrage as a special attack (Akkadius from EQEmu)
    * [Performance] Remove unecessary log calls from EQStream hot paths (read/write) (Akkadius from EQEmu)
    * [Performance] Reworked how all log calls are made in the source (Akkadius from EQEmu)
    Speedz
    * Added settings to allow/block client types.

    Database:
    Robregen

    * Coldain Ring 10: Narandi is now flagged for giant bane.

    Script:
    Robregen

    * Coldain Ring 10: Added a missing shout from Zrelik when issue the command to call all Coldain.
    * Coldain Ring 10: Removed an odd emote made from Dobbin Crossaxe when a command is issue to call all coldain or Dobbin.
     
    Lyrina, Ravenwing, Elroz and 3 others like this.
  2. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    So much pwn. Can't wait to test these mechanics tweaks out! And lol @ the swarmpet thing. I love that King Tormax was standing around thinking,

    "Am I a swarmpet? Should I despawn?"
    "Am I a swarmpet? Should I despawn?"
    "Am I a swarmpet NOW?"
    "How about now?"
    "AM I A FUNKING SWARMPET?!"
    "WHO AM I?!"

    Talk about yer existential crises.
     
    Last edited by a moderator: Apr 5, 2017
    Elrontaur, Ravenwing and Quirk like this.
  3. cavedude

    cavedude Administrator Staff Member

    Messages:
    1,893
    The really upsetting part was every NPC on the server was going through the same thing. We got them all into group therapy, and I think we'll be okay.
     
  4. showstring

    showstring I Feel Loved

    Messages:
    3,339
    huuuuuuuuuuge patch, amazing stuff
    thank you devs
     
    Quirk likes this.
  5. showstring

    showstring I Feel Loved

    Messages:
    3,339
    You guys able to share some cpu% stats with us after you've had a chance to collected some fresh data?
    I'm assuming the cpu load improvements are at least noticeable?

    maybe an average daily cpu% load week prior to patch, and average daily cpu% load in the week following this patch? I would be quite interested to see the performance benefit of these tweaks!

    no worries if you're not willing to share this data
     
  6. Haynar

    Haynar Administrator

    Messages:
    3,637
    Its on a VM, so overall stats are relative.

    CPU used to run 28-30% most of the time. Its doing about 20-23% now.

    Data rates and packets/sec are also down about 25%. This client will only allow sending mob updates in multiples. That got figured out how to do this patch. So mob position updates can be combined. Where they were one at a time before, we are now able to combine up to 30 in a single packet.

    H
     
  7. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    Amazing thinking of alpha when we couldn't even update position fast enough to melee fleeing mobs and look at that, still making huge gains.
     
  8. Haynar

    Haynar Administrator

    Messages:
    3,637
    If u consider a single pos update. Its 19 bytes. Only 15 bytes of data. First 4 is an int32 with how many packets. UDP has an overhead of 20 bytes ish. There is another 10 bytes containing opcodes, packet flags info. So for a single pos update thats 49 bytes sent. 20 + 10 + 4 + 15.

    Say you send 20 seperate. Thats 980 bytes.

    Now the new way. Stack them in.

    20 + 10 + 4 + (15 x 20) = 334

    Just that set of updates goes from 980 bytes in 20 packets to 334 bytes, in one.

    We dont alway stack in 20. But 10-15 is very common. And going up to 30. In places with lots of movement, that is a bunch of data. And a huge savings.

    In certain areas of like overthere. I was hitting 75 pos update packets a second. That got reduced to 7 packets over that time period.

    H
     
    Last edited: Apr 6, 2017
    Elrontaur, Draeko, showstring and 3 others like this.
  9. Ravenwing

    Ravenwing I Feel Loved

    Messages:
    3,170
    Neat!

    I noticed last week that calling the dwarves in the Ring War created huge lag spikes. Is this change likely to have an impact there?
     
  10. Haynar

    Haynar Administrator

    Messages:
    3,637
    For sure. Should help a lot.
     
    Pithy and Ravenwing like this.
  11. Ravenwing

    Ravenwing I Feel Loved

    Messages:
    3,170
    Awesome. Thanks for all the hard work on this one, Haynar et all!
     
  12. Ravenwing

    Ravenwing I Feel Loved

    Messages:
    3,170
    It made a huge difference. Fantastic! Thank you.
     
  13. Pithy

    Pithy I Feel Loved

    Messages:
    2,630
    Yeah, night and day. Amazing work.
     
  14. shortok

    shortok People Like Me

    Messages:
    325
    [​IMG]

    I made a dumb bad art for your patch note.
     
    Liegezen, Ransom, junibelle and 3 others like this.