Реклама | Adv
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
Сообщения форума
Реклама | Adv

Проблема с "тиками" на сервере

Дата: 11.02.2022 13:04:47
Rushcore: Командиры, Спешим поделиться важной информацией о баге, который в последнее время обсуждали в сообществе. Проблема наблюдается у орудий с высокой скоростью перезарядки: при использовании каскадного режима стрельбы или просто при постоянной стрельбе скорострельность таких орудий снижается. Чем выше скорость перезарядки, тем заметнее проявляется баг. При перерывах в стрельбе или в случае долгой перезарядки он не заметен. Иными словами, если играть на кораблях со скорострельной артиллерией и вести непрерывный огонь (зажав левую кнопку мыши или постоянно нажимая ее), темп стрельбы начнет "проседать". Проблема возникает в силу неучтенных, к сожалению, особенностей обмена данными между компьютерами игроков и сервером. Она никак не связана с навыками командиров, модернизациями и другими модификаторами — это часть базовой механики стрельбы, и она работает для всех одинаково. Работы по исправлению уже ведутся: Проблему каскадной стрельбы мы планируем исправить в версии 0.11.2 - решение уже есть, но его нужно протестировать и убедиться, что оно не вредит производительности. Проблему с постоянной стрельбой можно решить только переработав существенную часть основного кода игры; мы немедленно приступаем к этой задаче, но пока что не можем сказать сколько именно времени потребуется. Обязательно будем держать вас в курсе и рассказывать о прогрессе. Несмотря на то, что эта проблема существовала как часть основной механики игры с момента выпуска и напрямую не влияла на такие аспекты, как навыки командира, мы все же признаем влияние, которое она могла оказать на опыт некоторых игроков. Таким образом, игроки, которые войдут в игру до конца февраля (00:00 UTC, 1 марта), получат 5 дней премиум-аккаунта WoWS. Мы благодарим вас за внимание к игре. Если вам интересны технические подробности, пожалуйста, ознакомьтесь с информацией ниже.   Когда возникла проблема? Она существовала в игре с самого начала. Видимо, в силу своей неочевидности и того, что в первые годы в игре не было столько скорострельных кораблей, она долгое время оставалась незамеченной. Как она связана с обменом данными между клиентом и сервером? В бою одновременно происходят сотни событий, из которых складывается цельная картина. Летят снаряды, идут торпеды, маневрируют корабли и самолеты, все это взаимодействует друг с другом, при этом каждый момент боя должен быть "рассчитан" на сервере и синхронно передан всем игрокам, а от игроков в свою очередь постоянно поступает новая информация. Для оптимизации производительности частота вычислений на сервере регулируется разработчиками. Ее можно измерить так называемыми "тиками", каждый тик — это промежуток между двумя вычислениями состояния боя. Для относительно размеренного темпа World of Warships установлена частота 7 тиков в секунду. И этого достаточно для правильной работы подавляющего большинства механик игры, однако, как выяснилось, непрерывная стрельба в высоком темпе может давать сбои. Во-первых, когда орудие перезарядилось, выстрелить оно может только в ближайший тик сервера. Если перезарядка закончилась между тиками, то возникает задержка пока сервер "ждет" следующего тика. 1/7 секунды — это очень мало, но при постоянной стрельбе нескольких орудий с быстрой перезарядкой через какое-то время "потерянное" время можно прочувствовать. Во-вторых, при каскадной стрельбе (непрерывное удержание левой кнопки мыши) проверка на возможность стрельбы происходит раз в два тика, что, опять же вызывает дополнительную задержку. Как будет решаться проблема? Для каскадной стрельбы у нас есть потенциальная возможность решить проблему путем настройки параметров. Мы увеличим частоту проверки до одного раза в тик, проверим как скажется на производительности игры. Если тестирование пройдет успешно, мы как можно скорее (надеемся, уже в версии 0.11.2) внесем изменение в игру.  Что касается непрерывной стрельбы, тут нужно "научить" игру, ее серверную часть, учитывать остаток перезарядки и окончание перезарядки орудия между тиками. Задача существенно сложнее, так как нужно будет переписать часть основного кода игры. Мы уже приступили к работе, но пока еще сложно сказать сколько потребуется времени. Мы постараемся доставить это изменение в надлежащем качестве и как можно быстрее. Почему нельзя просто повысить частоту тиков? Подавляющее большинство игровых механик отлично работает с текущей частотой, и серверная часть игры под нее оптимизирована. В World of Warships одновременно происходят самые разные события, игра очень сложная и насыщенная в плане информации, которую нужно обработать серверу. Однако, поскольку темп игры относительно невысокий, вычисления 7 раз в секунду позволяют поддерживать высокий уровень качества и отзывчивости. Проблема со скорострельными орудиями - единственный прецедент, о котором нам известно, связанный с частотой вычислений. И в данном случае разумнее решить эту проблему локально, а не вносить глобальные изменения во взаимодействие клиента и сервера. А что с балансом кораблей? Нужны ли какие-то изменения? Проблема, как выяснилось, в игре с самого начала, поэтому все расчеты по балансу и боевой эффективности проводились в одинаковых, равных условиях. Поэтому в данный момент изменения не требуются. Однако, мы будем внимательно следить за статистикой и внесем корректировки если потребуется. Надеемся, эта информация помогла вам лучше понять, что это за баг и как он влияет на игру. Мы приложим все усилия, чтобы как можно скорее устранить его. Спасибо за ваше понимание.

Реклама | Adv