12 258 Jluca Альфа-тестер, Коллекционер, Старший альфа-тестер 8 400 публикаций 1 232 боя Жалоба #1 Опубликовано: 15 июл 2014, 14:00:00 Всем привет. Вашему вниманию статья Олега Чуры, Lead of Performance QA. "Год назад, когда я пробегал по холлу четвёртого этажа, меня поймал руководитель студии: Олег, а что у нас с производительностью? Ну-у, почти на всех компьютерах не больше 15 кадров в секунду. На тот момент предстояло проделать очень большую работу по оптимизации игры. А поплавать «с комфортом» можно было только на очень мощных машинах. Вот тогда мы всерьёз взялись за нагрузочное тестирование World of Warships. Первым делом мы задались вопросом, на каких компьютерах играют наши пользователи. Была тщательно проанализирована статистика от наших коллег (World of Tanks и World of Warplanes) и игрового сервиса Steam. Перелопатив кучу данных, мы собрали тестовый стенд с четырьмя самыми востребованными пользовательскими конфигурациями. Это сейчас у нас металлическая стойка с аккуратно расставленными компьютерами, которую можно назвать стендом. А поначалу всё выглядело примерно так: Мы постоянно меняли комплектующие, подбирая оптимальные компоненты для создания более мощных или, наоборот, слабых конфигураций. Мы учли, что многие игроки запускают «Танки» на ноутбуках абсолютно разной мощности и на компьютерах с видеокартами, встроенными в процессор. Вспомнили, что далеко не у всех одинаковые операционные системы и антивирусы, и постарались максимально разнообразить парк техники. В результате мы добавили ещё четыре стендовые конфигурации, всё подключили к двум мониторам через специальные KVM-переключатели, настроили сеть и начали тестировать. Помимо тестового стенда, активно использовались обычные рабочие компьютеры коллег и две игровые комнаты. А как тестировать? Всё то время, что ушло на постройку стенда, мы не сидели сложа руки, а думали и пробовали разные варианты тестов. Началось всё очень просто: мы сели и начали играть. Один создаёт тренировочную комнату, к нему присоединяются остальные участники боя, а дальше все просто: стреляем-убиваем и попутно записываем количество кадров в секунду. С учетом количества нововведений, которые поступали на тестирование, стали очевидны недостатки текущего подхода: Мы тратим очень много времени на ручной тест. Не имеем возможности фиксировать действия игрока. Точность такого теста очень низка за счёт разнообразия сценариев и непредсказуемости поведения игроков. Мы получаем только FPS — количество кадров в секунду — и не знаем, что происходит «внутри». Запись происходящего Для фиксации событий мы взяли проверенную фичу из World of Tanks — запись процесса боя в файл реплея. Процесс тестирования тоже поменялся. Теперь вместо целого отдела всего один человек записывал максимально насыщенный бой с ботами. После чего оставалось воспроизвести реплей на всех стендовых компьютерах и получить статистику. Такой способ идеально подошёл для сравнения двух разных компьютеров или версий игры, это точное повторение всех совершённых действий. Одной из первых задач стала проверка изменённых моделей кораблей: записали бой на главной версии игры, добавили в клиент новые модели, воспроизвели на обоих версиях — и вуаля, нужные данные! Но все же идеальных инструментов для этой задачи не существует, и как только мы захотели сравнить две версии с различающейся серверной частью, реплей просто отказался воспроизводиться и игра «упала» с фатальной ошибкой. Пришлось записывать разные реплеи для двух версий. И здесь нас ждала очередная проблема. Свои действия повторить более-менее точно человек ещё может, но непрограммируемые на тот момент боты были просто неуправляемыми. Таким образом, сравнивать между собой нужно было абсолютно разные по своему сценарию бои. Вопрос мог быть решён большим количеством реплеев. И реплеев разных. Как известно, увеличение количества измерений положительно сказывается на качестве выборки и уменьшает разброс исследуемых величин (для упрощения отбросим крайние случаи, которые этот самый разброс увеличивают). Иными словами, имея под рукой достаточное количество статистических данных, мы можем делать выводы о том, в каком состоянии находится данная версия игры, даже если данные были получены в ходе сильно различающихся по сценарию сражений. Но откуда их взять? Тратить человеко-дни команды тестирования на запись нужных сценариев? Решение было найдено! Плейтесты В студии Lesta каждый день проводится несколько больших игровых тестов. Каждый желающий может прийти и поиграть в одну из версий игры, посмотреть новые элементы геймплея и модели техники. Во время игры с каждого компьютера автоматически записывается реплей. После каждого боя хорошо тренированные миньоны отправляют эти файлы на специальный сервер команды тестирования производительности для хранения и воспроизведения при необходимости. Плейтесты позволяют протестировать стразу множество самых разных игровых ситуаций. Кроме того, что все участники предпочитают разные типы кораблей, у каждого есть свои собственные тактика и стиль игры. Причём некоторые игроки умудряются делать вещи, про которые мы периодически забываем. Например, был бой, в котором авианосец на полном ходу таранил эсминцы, пытавшиеся его атаковать. Или есть игроки, которые при каждом залпе переключают вид камеры, чтобы посмотреть, как красиво летят снаряды. После плейтеста в нашем распоряжении оказывается от 70 до 150 файлов реплеев — самые разнообразные варианты боёв. Мы сортируем их по картам и длительности, готовим конфигурационные файлы и приступаем к следующему важному шагу. Массовый тест производительности Теперь, когда у нас есть множество записей боя, мы можем провести действительно массовый тест клиента и увидеть реальную производительность игры с учётом почти всех возможных ситуаций. Система, созданная специалистами отдела тестирования нагрузки, автоматически запускает воспроизведение отобранных записей на нужных тестовых стендах. Во время долгих часов проведения теста с компьютеров собирается всевозможная статистика. Мы стараемся записывать всё, до чего можем дотянуться! В первую очередь, работает инструмент логирования производительности самой игры — профайлер. Именно этот парень помогает найти проблемы внутри игры. Вместе с ним трудятся ещё несколько инструментов, которые каждую секунду считывают состояние систем клиента и рассказывают об этом серверу. 30 кадров в секунду Стоит сказать, откуда взялись 30 кадров в секунду и почему они так важны. Со времён плёнок и бобин мало что изменилось. Двигающееся изображение создаётся так же, как и раньше: видеокарта отрисовывает кадр за кадром. И чтобы обеспечить плавность изображения, компьютеру нужно успевать обработать не меньше 30 кадров в секунду. Если их меньше, играть становится некомфортно. Это именно то, что принято называть тормозами. :) За один кадр в игре происходит множество различных операций: отрисовка воды, земли, неба, облаков, кораблей, взрывов, пожаров, трассеров, расчёт физики, получение данных от сервера, отправка данных и так далее. И все эти компоненты выполняются параллельно на процессоре и видеокарте. Мало нам того, что всё это должно работать быстро, ещё нужно настроить так, чтобы процессор не ждал, пока видеокарта пережуёт все данные или наоборот. Сегодня, в преддверии выпуска новой версии, в том же самом месте меня поймал директор студии и спросил о ситуации на проекте. В этот раз мне было что ответить. В результате работы многих отделов, огромного количества улучшений и доработок производительность на большем количестве конфигураций достигла заветной отметки. И даже на довольно слабых компьютерах и ноутбуках играть стало действительно комфортно." На этом всё. Читайте больше в нашем блоге разработчиков. 1 Рассказать о публикации Ссылка на публикацию
88 anonym_NZqHLVdciwgm Участник 306 публикаций Жалоба #2 Опубликовано: 15 июл 2014, 16:10:59 Понятно. Значит минимальные требования будут такими же, как в предыдущих играх компании. А максимальные, соответственно: чем мощнее - тем лучше. Кстати, давно мучает вопрос. Что за балда на хвосте у аватарочной лисы? Сколько не смотрю, все ни как не могу понять. Рассказать о публикации Ссылка на публикацию
1 356 [V-C-T] Jorian Старший альфа-тестер 6 837 публикаций 42 боя Жалоба #3 Опубликовано: 15 июл 2014, 16:14:35 Кстати, давно мучает вопрос. Что за балда на хвосте у аватарочной лисы? Сколько не смотрю, все ни как не могу понять. Это рак. Не пишите несколько сообщений подряд - пользуйтесь кнопкой Изменить. Рассказать о публикации Ссылка на публикацию
182 RenamedUser_20538855 Старший бета-тестер 469 публикаций 205 боёв Жалоба #4 Опубликовано: 15 июл 2014, 16:48:32 Запускайте ЗБТ, массовость конфигураций поможет реально, ботов долой. Можно сразу разрабатывать две версии клиента как в самолетах, тоже дело хорошее. Многие игроки нарошно отключают спецэффекты, ну не всем они нужны. В самолетах тоже на ЗБТ бывало до 6 - 8 ФПС, и ничего, постепенно наладилось, даже на крепости до 60. Желаем удачи в работе и Вам и тестерам Рассказать о публикации Ссылка на публикацию
0 anonym_gjk9I4jArouV Участник 25 публикаций Жалоба #5 Опубликовано: 15 июл 2014, 17:47:27 Не надо менять комп для того что бы поиграть в корабли! Рассказать о публикации Ссылка на публикацию
252 choock Альфа-тестер 2 099 публикаций Жалоба #6 Опубликовано: 15 июл 2014, 17:54:43 Конечно же это новостная тема и очень важная... Не в смысле ее ненужности(тема нормальная и важная в контексте ее актуальности)), а в смысле ее размещения в этом разделе. Если нужно пропиарить блог разработчиков и добавить ему читателей, мне кажется, что это надо делать как то иначе. Какой смысл в банальном копировании статьи из блога? А может тогда стоит выделить на форуме раздел с точной копией блога? Логично же. P.S. Я представляю, какая бы была реакция читателей форума, если б такую публикацию организовал какой то новичок на форуме. За статью спасибо... автору. Все-таки я чего то в логике разработчиков не понимаю... уж извините. Рассказать о публикации Ссылка на публикацию
0 Kolan4ikOff Бета-тестер 4 публикации 101 бой Жалоба #7 Опубликовано: 15 июл 2014, 17:59:41 Скоро, ОЧЕНЬ скоро куча металла будет не только на земле, но и на дне моря, а в рядах игроков появятся миллионы адмиралов, по крайней мере я надеюсь на это. P.S. Я любил море с детства, но до сих по страдаю морской болезнью XD. Рассказать о публикации Ссылка на публикацию
508 Mazzeltof Альфа-тестер 514 публикации 333 боя Жалоба #8 Опубликовано: 15 июл 2014, 18:12:50 Тематика хорошая статьи, это именно то, о чем я говорил в прошлом посте, - рассказать о процессе разработки, об интересных аспектах, о пробах и ошибках. Спасибо, продолжайте в том же духе. P.S не вижу зла в том, чтобы репостить сообщения из блога на форум. Рассказать о публикации Ссылка на публикацию
109 RenamedUser_2645831 Бета-тестер 122 публикации 255 боёв Жалоба #9 Опубликовано: 15 июл 2014, 18:21:45 Понятно. Значит минимальные требования будут такими же, как в предыдущих играх компании. А максимальные, соответственно: чем мощнее - тем лучше. Ну дак вг в принципе орентированы на пользователей со старыми и слабыми калькуляторами т.к их большенство Рассказать о публикации Ссылка на публикацию
42 Gotharcher Альфа-тестер 515 публикаций 405 боёв Жалоба #10 Опубликовано: 15 июл 2014, 18:35:21 P.S не вижу зла в том, чтобы репостить сообщения из блога на форум. Так может еще и комменты копипастить? А еще можно в аудио-формат, зачитывать эти статьи, "для самых маленьких". Рассказать о публикации Ссылка на публикацию
0 tesler2014 Участник 73 публикации Жалоба #11 Опубликовано: 15 июл 2014, 18:36:20 прикольно) Рассказать о публикации Ссылка на публикацию
508 Mazzeltof Альфа-тестер 514 публикации 333 боя Жалоба #12 Опубликовано: 15 июл 2014, 18:39:01 Так может еще и комменты копипастить? А еще можно в аудио-формат, зачитывать эти статьи, "для самых маленьких". А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится? Рассказать о публикации Ссылка на публикацию
42 Gotharcher Альфа-тестер 515 публикаций 405 боёв Жалоба #13 Опубликовано: 15 июл 2014, 18:42:13 А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится? Зачем целиком копировать новость из блога? Почему не сделать "какфтанках", заодно, популярность блога увеличится. Рассказать о публикации Ссылка на публикацию
599 anonym_VKw1wATjIPCI Участник 891 публикация Жалоба #14 Опубликовано: 15 июл 2014, 18:51:26 будем надеяться, что оптимизация для вас не последнее дело. Рассказать о публикации Ссылка на публикацию
3 Zombie_TV Альфа-тестер 108 публикаций Жалоба #15 Опубликовано: 15 июл 2014, 18:52:30 Крутое у вас рабочее место,мы все держим за вас кулочки,и с нетерпением ждём выхода игры ,удачи вам. Рассказать о публикации Ссылка на публикацию
182 RenamedUser_20538855 Старший бета-тестер 469 публикаций 205 боёв Жалоба #16 Опубликовано: 15 июл 2014, 19:09:25 Все-таки я чего то в логике разработчиков не понимаю... уж извините. Все очень просто - логика разработчика запраграмиравана кодами Все очень просто - логика разработчика закодирована программами Рассказать о публикации Ссылка на публикацию
252 choock Альфа-тестер 2 099 публикаций Жалоба #17 Опубликовано: 15 июл 2014, 19:27:13 А чего вы так завелись, я вижу в вашем комментарии море сарказма и желчи, а по сути, вы не аргументировали свою позицию. Что вам конкретно не нравится? Сарказм ... скорее всего. Желчи... тут уже кто что хочет увидеть. Аргументация... не плохо бы и самому придерживаться этих же советов. А... вы про дифирамбы которые от вас исходили?)) Ну так я лично за аргументы это не принимаю)) Рассказать о публикации Ссылка на публикацию
295 [LST-W] Aunt_Tom Викигвардия, Альфа-тестер, Коллекционер 2 040 публикаций 6 069 боёв Жалоба #18 Опубликовано: 15 июл 2014, 19:35:42 Большое спасибо за очень интересную статью :) Есть над чем подумать. И передайте уважаемому Олегу, что он очень интеллигентный и вежливый человек. Лично я на вопрос "...а что у нас с производительностью?" обычно отвечаю словом из четырех букв. да-да, В-Е-Ч-Н-О-С-Т-Ь :) Рассказать о публикации Ссылка на публикацию
35 Timian01 Старший альфа-тестер 289 публикаций 286 боёв Жалоба #19 Опубликовано: 15 июл 2014, 19:40:22 какая же самая слабая оказалась конфигурация которая не смогла потянуть? Рассказать о публикации Ссылка на публикацию
0 anonym_lMGLtn1cc5lw Участник 9 публикаций Жалоба #20 Опубликовано: 15 июл 2014, 19:53:12 Хммм, моё железо потянет Рассказать о публикации Ссылка на публикацию