Все отвечающие в теме и сам Preach все-таки не совсем правы.
Давайте посмотрим на описание нынешней системы от Celestalon -
https://www.noob-club.ru/index.php?topic=31447.0. Возвращаюсь к этой великой теме, потому что это наиболее понятно простому человеку, не программисту.
И здесь близов подвело то, что идеи побежали впереди паровоза. Да, менялись серваки, наращивались мощности. Но сетевой код клиента не менялся с 2003 года. Как был самописный класс NetQueue с STL-контейнерами 98 года, так он и остался. Ничего не поменялось. Да, естественно пихались костыли для поддержки новых систем, но само ядро не менялось.
Ну вот наступил WoD, в котором близы захотели реагировать на все события сразу же, без задержек. Все бы ничего, да объемы самих пакетов событий с тех пор возросли в десятки раз.
Например, возьмем пакеты комбат лога. Мало того, что теперь в комбат логи скрыто попадает начало/финиш любых кастов в радиусе видимости игрока и еще куча других событий, так еще и данные для системы ContentTuning увеличили размер среднего комбат лог пакета в 2.5 раза. Да, это та самая система что "скалирует", когда одного и того же моба моба бьют игрок условно 16 лвл и 90 лвл. Никаким скалированием конечно же там и не пахнет, клиент просто нас обманывает. Да, расчеты всего скейлинга целиком возложены на клиент, сервер присылает ему базовые цифры и ContentTuning дату, которая подсказывает, что и как нужно пересчитать.
Ауры, тут у меня даже есть примерчики. ЛК 3.3.5.12340 и актуальный БФА
335, нахождение в ЦЛК, персонаж 80 лвл
ServerToClient: SMSG_AURA_UPDATE_ALL (0x0495) Length: 282 ConnectionIndex: 0 Time: 08/08/2010 16:16:30.203 Type: Special Opcode Number: 72313
GUID: Full: 0x78000000254F0D2 Type: Player Low: 39121106 Name: xxxxxxxx
AurasCount: 24
BFA, ОЛО, персонаж 120 лвл
ServerToClient: SMSG_AURA_UPDATE (0x2C22) Length: 5520 ConnIdx: 0 Time: 06/26/2020 00:06:50.294 Number: 715
UpdateAll: True
AurasCount: 119
Ну и на сладкое, есть 2 снифа, один сниф сделан утром в стартовой локе людей толи Дракономора, толи Ясеня. Ну практически 0 народу, мобы бегают, вообщем более-менее. Второй на ОЛО, на катапульте, подальше от скопления людей. Подальше да. Меня интересовала именно катапульта, а километровый спам пакетов разгребать не хотелось. Показательно, насколько сильно выросла нагрузка на траффик из-за решения реагировать на все сразу же.
Лирическое отступление, из-за возросших объемов передачи данных, все пакеты за условный "тик" объединяются в блоки SMSG_MULTIPLE_PACKETS и дополнительно сжимаются, как раз такие типы пакетов появились в конце ЛК. Я специально выделил красным/зеленым блоки событий за 1 секунду.
Комментарии думаю излишне. Радиус рассылки кстати тоже сильно возрос с ЛК, особенно в инстах и на БГ.
Катастрофически разроссся SMSG_UPDATE_OBJECT. Из-за артефактов / азеритовой брони и трансмога потребовалось просто колоссальное количество полей для хранения всех данных.
И еще, что я хотел бы отметить. Разработчики близард крайне ленивые люди. Я говорил о том, что из классик клиента не было вырезано вообще ничего, весь функционал ЛФД, батлпетов, ачивок, артефакты, гарнизоны - все это осталось. И даже спамит при логине запросами.
Вот еще один пример - пакет, отсылающий информацию о данжах, которые можно посетить через Поиск Подземелий. Логично предположить, что для 120 лвл не надо отправлять данжи классика, они все равно не будут отображаться в клиенте. Но близы иного мнения. Они отсылают полный пакет всех данжей, а потом отсылают отдельный пакет
ServerToClient: SMSG_LFG_LIST_UPDATE_BLACKLIST (0x2A2A) Length: 956 ConnIdx: 0 Time: 06/26/2020 00:06:51.808 Number: 2027
BlacklistEntryCount: 119
В итоге клиент получает дублированную информацию и совершенно бесполезную. Я не знаю, за каким буем 120 лвл игроку информация о классик данжах (возможно для совместимости с PartySync, но тогда бы и слали ее когда включен этот режим), но она идет.
Заранее собранным группам надо посвящать отдельную статью, насколько хреново там все устроено и со стороны сервера (ну судя по обмену данных, серверного кода у меня нет), и со стороны клиента. И так уже много написал, может быть потом сподоблюсь пописать статьи о технической изнанке WoW.