Raid/Group Mana/Endurance updates should now update real-time once again
Fixed an issue with clients looking like they are 'skipping' when they are moving in view of another client
Fixed an issue with NPC's who are ghosted in plain view of a client when they are not really there
- HP Updates now only send to others when HP percentage changes (0-100%)
- HP Updates were sending excessively even during idle zones when HP wasn't changing at all
- Attack animations now only send once per second versus up to a hundred times a second per Mob/Client
- 17,000 OP_ClientUpdate packets per second have been observed in combat scenarios, some of the major culprits have been
throttled without affecting what the client should see
- Before and After packet differences under similar load/tests (Packets per second)
- 7,000 - 8,000 OP_Animation pps After: 600-800 pps
- 13,0000 - 17,000 OP_MobHealth pps After: 1-10 pps
- 15,0000 - 20,000 OP_ClientUpdate pps After: 500-1,000 pps
- Packet reports from a 46 client test here:
https://gist.github.com/Akkadius/28b7ad2fdd82bdd15ea737c68f404346
- Servers who use Marquee HP updates will also recieve far less packet spam as they will only be sent when HP changes
Improved grounding issues with NPC's during combat
Improved scenarios where NPC's need to be dragged out of the ground - they should correct themselves far more consistently
- Scenarios where an NPC is coming up from the bottom floor, or from the top floor, they will correct much better
- A video of these tests can be found here: https://www.youtube.com/watch?v=HtC7bVNM7ZQ&feature=youtu.be
- This caused a lot of overhead in an instance where an entire zone of NPC's is pathing, triggering EVENT_WAYPOINT_ARRIVE and EVENT_WAYPOINT_DEPART when there is no global_npc.pl/lua, or all NPC's pathing don't have a quest assigned, similar behavior would occur. This goes for any other type of quests: spells, items, encounters etc.
- Before when reverse aggro checks were done (client to NPC), checks would happen every 750 millseconds where a client would
check an entire entity list with distance calcs and other checks for aggro, with many clients in a zone and many NPC's this would
add a lot of unecessary overhead. A temporary adjustment on 3/25 was made and upped the check to 6 seconds.
- Now, there is a new methodology to scanning. The client will build a cache list of NPC's within close range as defined in new rule:
RULE_INT(Range, ClientNPCScan, 300) and will also get any NPC that has an aggro range beyond that defined range to use in
the frequent checks for aggro, the result is far less overhead
- Client scanning changes when moving versus not moving, the client will scan aggro every 500 milliseconds while moving, and
3000 millseconds aggro check when not moving, with a 6000ms re-fetch for close NPC's
- A demo of these changes can be found here:
https://youtu.be/aGroiwLSTVU
been adjusted to 6 seconds per new rule RULE_INT(Aggro, ClientAggroCheckInterval)
- When zones have many players, with many NPC's, this adds up quickly
(known as eqemu_update.pl) now known as eqemu_server.pl
- eqemu_server.pl is now a general EQEmu Server management utiltiy framework that can be used
to extend to many purposes. It's main purpose is to simplify server management
- eqemu_server.pl changes:
- Menu has been completely changed, instead of a number based (enter number and hit enter)
you now type commands within the menu (Ex: 'database')
- Handles last mile installation for Windows Servers (See Github Readme)
- Handles last mile installation for Linux Servers (See Github Readme)
- Ubuntu
- Debian
- Fedora
- CentOS
- Now checks for Internet connection before performing web requests
- Database:
- Regular schema updates now happen automatically, if new binaries present updated
database schema changes, script will backup first, auto update database, and continue
world bootup
- Regular bots database schema changes now happen automatically similarily to the above
- Database checks can also be ran manually via the script menu
- CLI Arguments
- Arguments passed to eqemu_server.pl can execute the same name-based operations that
are present in the interactive menu
- Example: "perl eqemu_server.pl opcodes" will download opcodes
- Example: "perl eqemu_server.pl backup_player_tables" will backup and export player tables
- Bots
- Bots can now be automatically setup in Linux or Windows via the 'setup_bots' command
- Windows will auto download binaries and install, along with installing bots db schema
- Linxu will auto compile binaries and install, along with installings bots db schema
- Utility scripts
- Linux now has the following utility scripts for download, available via menu 'utility_scripts'
and via Linux default install:
- server_launcher.pl
- server_start_dev.sh
- server_start.sh
- server_status.sh
- server_stop.sh
- Usage analytics
- eqemu_server.pl now collects usage analytics, this is very helpful for our developers
- Example: We can see how many installs have been performed:
https://github.com/EQEmu/Server#server-installs
- This helps us see how often certain utilities are used as well
- Console Messages
- All script messages have been prefixed with a bracket action Ex: [Update] [Database] [Info]
to be more consistent with our log conventions
- 'New Server' Utility
- Running 'new_server' from the main menu or 'perl eqemu_server.pl new_server' while in
a completely new folder with just the script present, will allow a server operator
to initiate a full clean PEQ install in that folder. Pulling down all assets and
installing a PEQ database with the name the server operator gives the prompts in the
script