Перейти к содержимому
Для публикации в этом разделе необходимо провести 50 боёв.
Jluca

Нагрузочное тестирование World of Warships. Борьба за оптимизацию

В этой теме 47 комментариев

Рекомендуемые комментарии

11 113
[WG-V] Jluca
8 166 публикаций
1 225 боёв

Всем привет.

Вашему вниманию статья Олега Чуры, Lead of Performance QA.

 

"Год назад, когда я пробегал по холлу четвёртого этажа, меня поймал руководитель студии:

  • Олег, а что у нас с производительностью?
  • Ну-у, почти на всех компьютерах не больше 15 кадров в секунду.

 

На тот момент предстояло проделать очень большую работу по оптимизации игры. А поплавать «с комфортом» можно было только на очень мощных машинах. Вот тогда мы всерьёз взялись за нагрузочное тестирование World of Warships.

 

Первым делом мы задались вопросом, на каких компьютерах играют наши пользователи.

 

Была тщательно проанализирована статистика от наших коллег (World of Tanks и World of Warplanes) и игрового сервиса Steam. Перелопатив кучу данных, мы собрали тестовый стенд с четырьмя самыми востребованными пользовательскими конфигурациями. Это сейчас у нас металлическая стойка с аккуратно расставленными компьютерами, которую можно назвать стендом. А поначалу всё выглядело примерно так:

91a13f5edfc756da1c1969b2aecc9ddd.png

Мы постоянно меняли комплектующие, подбирая оптимальные компоненты для создания более мощных или, наоборот, слабых конфигураций. Мы учли, что многие игроки запускают «Танки» на ноутбуках абсолютно разной мощности и на компьютерах с видеокартами, встроенными в процессор. Вспомнили, что далеко не у всех одинаковые операционные системы и антивирусы, и постарались максимально разнообразить парк техники.

 

В результате мы добавили ещё четыре стендовые конфигурации, всё подключили к двум мониторам через специальные KVM-переключатели, настроили сеть и начали тестировать. Помимо тестового стенда, активно использовались обычные рабочие компьютеры коллег и две игровые комнаты.

 

А как тестировать?

 

Всё то время, что ушло на постройку стенда, мы не сидели сложа руки, а думали и пробовали разные варианты тестов. Началось всё очень просто: мы сели и начали играть. Один создаёт тренировочную комнату, к нему присоединяются остальные участники боя, а дальше все просто: стреляем-убиваем и попутно записываем количество кадров в секунду.

 

79edceadd00faf486f0705fd29d37796.png

 

С учетом количества нововведений, которые поступали на тестирование, стали очевидны недостатки текущего подхода:

  • Мы тратим очень много времени на ручной тест.
  • Не имеем возможности фиксировать действия игрока.
  • Точность такого теста очень низка за счёт разнообразия сценариев и непредсказуемости поведения игроков.
  • Мы получаем только FPS — количество кадров в секунду — и не знаем, что происходит «внутри».

 

Запись происходящего

 

Для фиксации событий мы взяли проверенную фичу из World of Tanks — запись процесса боя в файл реплея. Процесс тестирования тоже поменялся. Теперь вместо целого отдела всего один человек записывал максимально насыщенный бой с ботами. После чего оставалось воспроизвести реплей на всех стендовых компьютерах и получить статистику.

 

Такой способ идеально подошёл для сравнения двух разных компьютеров или версий игры, это точное повторение всех совершённых действий. Одной из первых задач стала проверка изменённых моделей кораблей: записали бой на главной версии игры, добавили в клиент новые модели, воспроизвели на обоих версиях — и вуаля, нужные данные!

 

Но все же идеальных инструментов для этой задачи не существует, и как только мы захотели сравнить две версии с различающейся серверной частью, реплей просто отказался воспроизводиться и игра «упала» с фатальной ошибкой.

Пришлось записывать разные реплеи для двух версий. И здесь нас ждала очередная проблема. Свои действия повторить более-менее точно человек ещё может, но непрограммируемые на тот момент боты были просто неуправляемыми. Таким образом, сравнивать между собой нужно было абсолютно разные по своему сценарию бои. Вопрос мог быть решён большим количеством реплеев. И реплеев разных. Как известно, увеличение количества измерений положительно сказывается на качестве выборки и уменьшает разброс исследуемых величин (для упрощения отбросим крайние случаи, которые этот самый разброс увеличивают). Иными словами, имея под рукой достаточное количество статистических данных, мы можем делать выводы о том, в каком состоянии находится данная версия игры, даже если данные были получены в ходе сильно различающихся по сценарию сражений. Но откуда их взять? Тратить человеко-дни команды тестирования на запись нужных сценариев? Решение было найдено!

 

Плейтесты

 

В студии Lesta каждый день проводится несколько больших игровых тестов. Каждый желающий может прийти и поиграть в одну из версий игры, посмотреть новые элементы геймплея и модели техники. Во время игры с каждого компьютера автоматически записывается реплей. После каждого боя хорошо тренированные миньоны отправляют эти файлы на специальный сервер команды тестирования производительности для хранения и воспроизведения при необходимости.

 

Плейтесты позволяют протестировать стразу множество самых разных игровых ситуаций.

Кроме того, что все участники предпочитают разные типы кораблей, у каждого есть свои собственные тактика и стиль игры. Причём некоторые игроки умудряются делать вещи, про которые мы периодически забываем. Например, был бой, в котором авианосец на полном ходу таранил эсминцы, пытавшиеся его атаковать. Или есть игроки, которые при каждом залпе переключают вид камеры, чтобы посмотреть, как красиво летят снаряды.

 

После плейтеста в нашем распоряжении оказывается от 70 до 150 файлов реплеев — самые разнообразные варианты боёв. Мы сортируем их по картам и длительности, готовим конфигурационные файлы и приступаем к следующему важному шагу.

 

Массовый тест производительности

 

a21171580d6f6bb66551a600a889d8fc.png

 

Теперь, когда у нас есть множество записей боя, мы можем провести действительно массовый тест клиента и увидеть реальную производительность игры с учётом почти всех возможных ситуаций. Система, созданная специалистами отдела тестирования нагрузки, автоматически запускает воспроизведение отобранных записей на нужных тестовых стендах.

 

Во время долгих часов проведения теста с компьютеров собирается всевозможная статистика. Мы стараемся записывать всё, до чего можем дотянуться! В первую очередь, работает инструмент логирования производительности самой игры — профайлер. Именно этот парень помогает найти проблемы внутри игры. Вместе с ним трудятся ещё несколько инструментов, которые каждую секунду считывают состояние систем клиента и рассказывают об этом серверу.

 

30 кадров в секунду

 

Стоит сказать, откуда взялись 30 кадров в секунду и почему они так важны. Со времён плёнок и бобин мало что изменилось. Двигающееся изображение создаётся так же, как и раньше: видеокарта отрисовывает кадр за кадром. И чтобы обеспечить плавность изображения, компьютеру нужно успевать обработать не меньше 30 кадров в секунду. Если их меньше, играть становится некомфортно. Это именно то, что принято называть тормозами. :)

 

8e57229615d6219fae26fe8fa1b99098.png

 

За один кадр в игре происходит множество различных операций: отрисовка воды, земли, неба, облаков, кораблей, взрывов, пожаров, трассеров, расчёт физики, получение данных от сервера, отправка данных и так далее. И все эти компоненты выполняются параллельно на процессоре и видеокарте. Мало нам того, что всё это должно работать быстро, ещё нужно настроить так, чтобы процессор не ждал, пока видеокарта пережуёт все данные или наоборот.

 

Сегодня, в преддверии выпуска новой версии, в том же самом месте меня поймал директор студии и спросил о ситуации на проекте. В этот раз мне было что ответить. В результате работы многих отделов, огромного количества улучшений и доработок производительность на большем количестве конфигураций достигла заветной отметки. И даже на довольно слабых компьютерах и ноутбуках играть стало действительно комфортно."

 

d8769458700e824473fb4a253165bb15.png

 

 

На этом всё. Читайте больше в нашем блоге разработчиков.

 

  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
307 публикаций
6 боёв

Понятно. Значит минимальные требования будут такими же, как в предыдущих играх компании. А максимальные, соответственно: чем мощнее - тем лучше.

 

Кстати, давно мучает вопрос. Что за балда на хвосте у аватарочной лисы? Сколько не смотрю, все ни как не могу понять. 

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
1 315
[V-C-T] Jorian
6 876 публикаций
42 боя

Кстати, давно мучает вопрос. Что за балда на хвосте у аватарочной лисы? Сколько не смотрю, все ни как не могу понять. 

 

Это рак. Не пишите несколько сообщений подряд - пользуйтесь кнопкой Изменить. 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
508 публикаций
185 боёв

Запускайте ЗБТ, массовость конфигураций поможет реально, ботов долой.

Можно сразу разрабатывать две версии клиента как в самолетах, тоже дело хорошее.

Многие игроки нарошно отключают спецэффекты, ну не всем они нужны.

В самолетах тоже на ЗБТ бывало до 6 - 8 ФПС, и ничего, постепенно наладилось, даже на крепости до 60.

Желаем удачи в работе и Вам и тестерам

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
221
choock
2 124 публикации

Конечно же это новостная тема и очень важная...

Не в смысле ее ненужности(тема нормальная и важная в контексте ее актуальности)), а в смысле ее размещения в этом разделе.

Если нужно пропиарить блог разработчиков и добавить ему читателей, мне кажется, что это надо делать как то иначе. Какой смысл в банальном копировании статьи из блога?

А может тогда стоит выделить на форуме раздел с точной копией блога? Логично же.

 

P.S. 

Я представляю, какая бы была реакция читателей форума, если б такую публикацию организовал какой то новичок на форуме. 

За статью спасибо... автору.

Все-таки я чего то в логике разработчиков не понимаю... уж извините.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
3 публикации
94 боя

Скоро, ОЧЕНЬ скоро куча металла будет не только на земле, но и на дне моря, а в рядах игроков появятся миллионы адмиралов, по крайней мере я надеюсь на это.

P.S. Я любил море с детства, но до сих по страдаю морской болезнью XD.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
490 публикаций
111 боёв

Тематика хорошая статьи, это именно то,  о чем я говорил в прошлом посте,  - рассказать о процессе разработки, об интересных аспектах, о пробах и ошибках. Спасибо, продолжайте в том же духе.

 

P.S не вижу зла в том, чтобы репостить сообщения из блога на форум.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
124 публикации

Понятно. Значит минимальные требования будут такими же, как в предыдущих играх компании. А максимальные, соответственно: чем мощнее - тем лучше.

 

Ну дак вг в принципе орентированы на пользователей со старыми и слабыми калькуляторами т.к их большенство

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
502 публикации
405 боёв

P.S не вижу зла в том, чтобы репостить сообщения из блога на форум.

Так может еще и комменты копипастить?

А еще можно в аудио-формат, зачитывать эти статьи, "для самых маленьких".

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
490 публикаций
111 боёв

Так может еще и комменты копипастить?

А еще можно в аудио-формат, зачитывать эти статьи, "для самых маленьких".

 

А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится?

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
502 публикации
405 боёв

 

А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится?

8bf551f14032a928cac7c00dfaaea00a.png

Зачем целиком копировать новость из блога? Почему не сделать "какфтанках", заодно, популярность блога увеличится.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
225
[IJN] assakura
Коллекционер, Коллекционер-испытатель
913 публикации
9 296 боёв

будем надеяться, что оптимизация для  вас не последнее дело.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
104 публикации

Крутое у вас рабочее место:teethhappy:,мы все держим за вас кулочки,и с нетерпением ждём выхода игры ,удачи вам.

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
508 публикаций
185 боёв

 Все-таки я чего то в логике разработчиков не понимаю... уж извините.

Все очень просто - логика разработчика запраграмиравана кодами

Все очень просто - логика разработчика закодирована программами

:kamikaze:

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
221
choock
2 124 публикации

 

А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится?

Сарказм ... скорее всего.

Желчи... тут уже кто что хочет увидеть.

Аргументация... не плохо бы и самому придерживаться этих же советов. 

А... вы про дифирамбы которые от вас исходили?)) Ну так я лично за аргументы это не принимаю))

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
260
[LJ] Aunt_Tom
Альфа-тестер, Коллекционер
2 021 публикация
4 658 боёв

Большое спасибо за очень интересную статью :)

 

Есть над чем подумать. И передайте уважаемому Олегу, что он очень интеллигентный и вежливый человек. Лично я на вопрос "...а что у нас с производительностью?" обычно отвечаю словом из четырех букв.

 

да-да, В-Е-Ч-Н-О-С-Т-Ь :)

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
305 публикаций
185 боёв

какая же самая слабая оказалась конфигурация которая не смогла потянуть?

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Эту страницу никто не просматривает.

×