Всем доброго времени суток. Для того,чтобы все были в курсе о чем пойдет речь далее,прошу ознакомиться с постом №114 сотрудника Близзарда:
Скрытый текст
I was wondering when this'd get brought up. I've hinted about this in the past in a couple interviews... Yes, there was a very significant underlying change here, that may have implications for theorycrafting (though minor).
I don't want to get too deep into the under-the-hood workings of WoW servers, but here's a super short version. Any action that one unit takes on another different unit used to be processed in batches every 400ms. Some very attentive people may have noticed that healing yourself would give you the health instantly (minus client/server latency), whereas healing another unit would incur a delay of between 0ms and 400ms (again, on top of client/server latency). Same with damaging, applying auras, interrupting, knocking back, etc.
That delay can feel bad just due to the somewhat laggy responsiveness feeling, but also because the state of things can change during that time. For example: Holly the Holy Priest is healing Punky the Brewmaster. Punky spikes low, and Holly hits Guardian Spirit in a panic. The server verifies that Holly is able to cast it, and that Punky is alive (great!). The cast goes off, Guardian Spirit goes on cooldown, and a request is placed for the Guardian Spirit aura (that prevents dying) to be placed on Punky. That request will be filled next time the 400ms timer loops, which happens to be 320ms from now. 250ms later, the boss lands another hit on on Punky. Punky dies. Sadface. Another 70ms goes by, and the Guardian Spirit aura request pops up, and goes "Hey guys, I'm here!... Aww... damn, I missed the party. Sadface."
We no longer batch them up like that. We just do it as fast as we can, which usually amounts to between 1ms and 10ms later. It took a considerable amount of work to get it working that way, but we're very pleased with the results so far; the game feels noticeably more responsive.
I can't guarantee that you'll never ever again run into cases where Guardian Spirit went on cooldown and the tank still died... but it'll be literally 40x rarer than before, and the whole game will feel more responsive too.
Мне не хочется сильно углубляться в пространные повествования о том, как устроены внутренности серверов WoW, но я поделюсь с вами супер-короткой версией. Любые действия, совершаемые одним объектом над другими обрабатывается в пакетах, выполняемых каждые 400мс. Некоторые очень внимательные игроки могли заметить, что их исцеления, применяемые на себя срабатывают мгновенно (с учетом задержки клиента/сервера), в то время, как исцеления других игроков происходят с задержкой от 0мс до 400мс (сверх задержки клиента/сервера). Тоже самое происходит с уроном, аурами, прерываниями и т.д.
Эта задержка плоха не только потому, что негативно влияет на ощущении отзывчивости игры, но и потому, что за это, казалось бы короткое время положение вещей может серьезно измениться.
Пример: Светик — жрец света занимается исцелением Дохляша — монаха-хмелевара. Здоровье Дохляша падает до низкого значения, и Светик в панике использует оберегающего духа. Сервер проверяет, может ли Светик его использовать и жив ли Дохляш (а он жив, и это хорошо!). Заклинание используется, оберегающий дух начинает откатываться, затем отправляется запрос на ауру оберегающего духа (она спасает от смерти), которая будет наложена на Дохляша. Запрос будет обработан только тогда, когда начнется отсчет новых 400мс, что случится через 320мс с текущего момента. Через 250мс босс успевает еще один раз ударить Дохляша, от чего бедный монах, не славившийся крепким здоровьем, умирает. Грусть. Проходят еще 70мс и появляется запрос на ауру оберегающего духа: "Превед парни, я здесь! О... кажется я опоздал на вечеринку. Тоска."
Больше мы не будем группировать события так. Мы просто будем выполнять их так быстро, как можем; обычно скорость обработки составляет от 1 до 10мс. Нам потребовалось проделать значительное количество работы, чтобы заставить все функционировать именно так, но теперь мы очень довольны результатами: игра ощущается более отзывчивой.
Я не могу гарантировать вам, что больше вы никогда не столкнетесь с подобными ситуациями, когда оберегающий дух получает кд, а танк все-равно умирает... но это будет случаться буквально в 40 раз реже, чем было раньше, да и вся игра тоже станет быстрее реагировать.
Вкратце в патче Warlords of Draenor была переработана механика. В частности, изменению подверглась система тактовой обработки. Именно с патча WoDобработка действий, совершаемых одним объектом над другими, стала происходить "в реальном времени" (не забываем про задержку до сервера). До выхода данного патчаобработка происходила пакетами с периодичностью 400 мс. Что это значит? Именно эта "задержка" позволяла,например, выполнять способности над противником одновременно двум сторонам. Например, воинам Рывок одновременно друг к другу, магам делать Превращение друга друга, разбойникам использовать Ошеломление, Ослепление, Парализующий удар. Это лишь малая часть того, какие возможности открывает реализация данной механики. Уверен, многие найдут этому применение к своим классам. Наш сервер. "Задержка" имеет значение гораздо меньшее, что является серьезным нарушением баланса (если он есть) в пвп. Вывод. Должна быть переработана механика действий, совершаемых одним объектом над другими (в т.ч. контролящих способностей, урона, исцеления, прерывания и т.д) в соответствии с офом до патча Warlords of Draenor. Мое предложение сделать эту задержку либо случайной величиной от 0 до 400 мс, либо 400 мс. P.S. Знаю, что данный репорт вызовет резонанс среди комьюнити изенгарда, и, уверен, недовольство большей его части,а также нежелание разработчика коренным образом изменять что-то. В защиту лишь могу сказать,что данный фикс еще на один шаг приблизит наш сервер к статусу «близлайк», а также улучшит положение дел в пвп на нашем сервере. P.P.S. На просторах руоффа единицы серверов, которые могут похвастаться реализацией данной механики, что, разумеется, повышает их репутацию и престиж в глазах простых игроков.
улучшит положение дел в пвп тем, что скилы не будут в упор нажиматься потому что из-за задержки пацан уже типо находится в 3х метрах от тебя? как это было при дифе в 400-500? сейчас то можно встретить такое что иногда скилы не прожимаются по противнику который стоит в упор, потому что он уже из-за задержки отошел на пол шага. хоть и не часто, но встречается
одно дело на оффе я более чем уверен оптимизация была получше, и в целом задержка была меньше чем у нас - там да, возможно имело место делать задержку и она не будет так сильно ощущаться как у нас
Почти такое же мнение выразил Зевс,когда ему рассказал тоже) Я не стремлюсь получить те самые заветные 100р.,просто стараюсь сделать наш сервер "близлайк". Согласен, подобный шаг нужно делать крайне осторожно и при необходимости иметь возможность от него отказаться.
У нас CC Delay стоит 200 ms по моему. Я не думаю, что с железом изенгарда стоит ставить выше. Не всгеда отображение игрока 100% точно отображается у других. Тем более все реализации дабл контроля у нас успешны
Сбор редких ресурсов: 10 Сфер Лояльности; (какие ресурсы редкие? узнайте сами - в игре!)
Победа в сражении на Озере Ледяных Оков: 500 Сфер Лояльности.
За каждые 100 Сфер Лояльности Вы получаете 1 бонусный рубль, который можете использовать для полной или частичной оплаты чего-нибудь нужного из магазина.
Участие в особом событии - Цареубийстве!
Кажд (для игроков Альянса) и кажд (для игроков Орды) с 16:00 до 22:00 (по московскому времени) проводится особое событие - Цареубийство!
Достаточно убить одного из предводителей противоположной фракции и получить награду: 2000 Сфер Лояльности! Следите за уведомлениями в чате...
Еженедельно можно получить 15000 Сфер Лояльности, после достижения данного значения бонусы за вышеперечисленные действия начисляться не будут.