EU: Подробности об оптимизации PlanetSide 2

Автор: ssun. Дата: . Рубрика Блог разработчика, Разработка

http://ps2-ru.com/wp-content/uploads/2012/03/ps2-ru_news.png

Разработчики, в лице ведущего программиста SOE, CodeForge опубликовали, обещанные на прошлой недели Президентов SOE — John Smedley подробности по оптимизации PlanetSide 2. В письме девелоперов конкретизируются моменты, которые, по мнению SOE, позволят существенно поднять производительность в игре, в особенности для систем, основанных на многоядерных процессорах.

Благодарим за перевод:  Domyam

Операция: Сделаем Игру Производительнее (ОСИП)

(Operation: Make Faster Game — OMFG)

http://ps2-ru.com/wp-content/uploads/2013/09/Ryan-Elam.jpg

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

ПОЧЕМУ ВЫ ВСЁ ЕЩЁ НЕ СДЕЛАЛИ ЭТО ?

Мы отдали лучшую часть этих двух лет Planetside 2, измеряя и рассматривая медленные элементы игры. Когда мы находили вещи, которые мы могли исправить быстро, мы делали это. Когда мы находили вещи, относящиеся к общей оптимизации, правка которых не подвергала риску всё — мы правили их.
 
Но, по большей части, учитывая, что мы оперировали на живой игре с момента открытия технического теста PlanetSide 2, мы держали оптимизацию в наиболее возможном безопасном ключе. Оптимизация включает в себя чаще всего реорганизацию программного кода, который уже прошел придирчивое и многостороннее тестирование, и это значит, что если мы что-то покрутим в ту или иную сторону…мы можем…что-то сломать…не важно, как бы сильно мы не старались не делать этого. Многие вопросы оптимизации требовали слишком много времени на «обезьянью работу» чтобы быть эффективными на этой стадии проекта.

ПОЧЕМУ ВЫ ДЕЛАЕТЕ ЭТО СЕЙЧАС ?

Planetside 2 достиг той стадии разработки, когда мы считаем, что ядро и основные составляющие игры уже сформировались. У разработчиков есть широкий набор возможностей для создания контента, у дизайнеров есть необходимый инструментарий для создания творений, интерфейс работает хорошо и понятен, у нас есть настоящее обучение (больше никакого «Добро пожаловать в игру» *БАБАХ*!), и игроки по всему миру способны найти Planetside 2 и играть в него на своем родном языке.
 
Мы сейчас стоим на перепутье и, осознавая это, Смедли вышел и сказал «Исправьте это, немедленно.» Мы все хотели получить необходимое время на введение больших изменений и сделать их правильно. Смедли также полностью осознает, что как бы отдел разработки и отдел дизайна не старались полировать игру до блеска, игра не будет хорошей FPS с маленькой частотой кадров в секунду.С этим напутствием, всем нашим командам была дана свобода править вещи, на которые требуется приличное время.
 
Что вы получите в конце — это серьёзное и заметное увеличение производительности, плюс к этому другие приятные бонусы, вытекающие из этих коренных шагов вперед. Без шуток, каждый член команды, активно смотрит и внедряет вещи, позволяющие сделать игру быстрее, чтобы игра вам приносила удовольствие.

ХВАТИТ ЗАКУСОК, ПОДАВАЙТЕ ГОРЯЧЕЕ !

http://www.gaminglives.com/wp-content/uploads/planetside2rev7.jpg

Сейчас я буду вводить в вас в курс дела, объясняя некоторые технические термины. Если вы — Вану, вы можете это пропустить, вы уже и так всё знаете. ТР, если вы что-то не поняли — спросите у командира. Если вы и после этого не поняли — вы Тяжёлый Штурмовик…не беспокойтесь об этом… Если вы НК — всё это лишь часть карточного домика, строящегося человеком, дабы держать вас в узде. В любом случае, почитайте.
 
Физика
———
Используемые в игре сцены обработки физики являются непревзойденными по сложности. В любой другой игре могут быть сотни разных фигур, перемещающихся по экрану и для которых требуется рассчитать столкновения, а у нас бывают ситуации с тысячами фигур или более ! Эти огромные танковые баталии заставляют расчётный аппарат игровой физики попотеть.
 
Итак, в рамках ОСИП (OMFG) мы провели достаточно времени, реструктуризируя всю комплексность физических расчётов в виде «Уровня Адаптивной Детализации». Это означает, что мы понижаем число расчётных операций для симулятора, в зависимости от частоты кадров и расстояния до объекта.
 
Говоря проще, мы нагружаем симулятор меньше, меньше уделяя внимание обработке вещей и событий, находящихся на определенном расстоянии от вас. «Погоди, Райан!», вы говорите себе, как бы забавно это не звучало, «А разве понижение качества симуляции не выльется в хреновую симуляцию в общем? Я люблю физику в Planetside 2 и никогда бы не хотел, чтобы ей нанесли хоть какой-то вред! Физика в Planetside 2 выше всяких похвал!» Эммм…вот здесь вы перегибаете палку…Хорошо, я приму этот комплимент. А что до ответа на ваш вопрос, на самом деле, мы и сами не знаем. Многие вещи, которые мы делаем — экспериментальные.
 
У нас есть хорошие идеи от лучших в своем деле на тему улучшения производительности, как бы то ни было, кодинг — это на 60% наука, а на 60 % искусство.
Некоторые задачи, о которых я рассказываю вам, находятся еще на ранних стадиях и могут либо не попасть в игру в принципе, либо попасть с изменениями. С Адаптивным Уровнем Детализации, мы надеемся эмулировать кадры, не попавшие в симуляцию, выравнивая симуляционные ошибки, которые могут произойти, но это потребует много работы и чашек кофе, или еще больше, если мы посчитаем, что результат недостаточно хорош.
 
Как и с частотой кадров, это не будет иметь эффекта на тех, у кого слишком слабый процессор, но вы получите значительный прирост в физике и все, обладающие, 2-мя или 4-мя ядрами заметят огромный скачок в частоте кадров в большой битве.
 
Управление индикаторами игроков
————————————
Сейчас, если вы находитесь в крупной баталии, мы тратим много времени на прорисовку этих маленьких треугольников (Мы зовем их Doritos (прим. переводчика: маленькие мексиканские чипсы), но мы не получаем никакой спонсорской помощи…Вы в это верите?) над головами игроков.
 
Они не выглядят особо стильно, но под ними скрывается сложная система, чтобы удостовериться, что мы вам показываем, даже если вы не видите игрока и не показываем, когда мы не должны и еще куча других правил до чертиков. Мы увидели реальные улучшения от рефакторинга всей системы для большей эффективности и менять только то, что нужно и когда нужно. Мы также произвели рефакторинг кода для общего ускорения.
 
Обновление игроков
———————
Чем больше игроков вокруг вас, тем больше времени игровой клиент обновляет информацию об этих игроках. Будь то издаваемые ими звуки, выпускаемые ими пули, меняющаяся статистика и т.д. Ваш клиент тратит некоторое время на каждую динамическую запись, чтобы убедиться, что динамические вещи стали динамическими. В попытках сделать систему лучше, мы собираемся обновлять только определенное количество игроков за кадр и мы будем умнее в вопросах, нуждаются ли они в полном обновлении. В раннем тестировании, это вылилось в то, что всего 10 % динамических записей ДЕЙСТВИТЕЛЬНО требуют обновления, сейчас 100 % из них получают это обновление. Скажем не таясь, в больших баталиях, это будет несомненным плюсом.
 
Обновление анимации
———————
В Planetside 2 присутствует очень классная система анимации с использование каждой технической новинки, которую вы только представляли (кроме рэгдолла..Ага…Почему рэгдолл еще не реализован? Серьезно?!) Мы анимируем намного больше, чем большинство других игр, и некоторые из анимаций обрабатываются высокоуровневыми сетевыми обработчиками. Для оптимизации анимации, мы хотим обрабатывать меньше анимации на кадр и, пока они обрабатываются, получать упрощение процесса итерации, выдавая результат такого же качества. Это трудная работа, требующая кооперации команды дизайнеров и разработчиков, но мы уверены в хорошем результате.
 
Пользовательский интерфейс
—————————
Наш пользовательский интерфейс невероятно сложен. Он может выглядеть просто (на самом деле…требуется до черта работы проделать, чтобы что-то хотя бы выглядело просто) но информация обновляется при обработке десятков тысяч строк кода, про гоняющихся всё время. Как бы то ни было, у нас был год на то, чтобы разобраться с функциональностью, мы видим области, в которых мы можем снизить обработку на кадр и дать вам ту же информацию с меньшими затратами.
 
Мы активно оптимизируем миникарту и HUD для уменьшения времени обработки на кадр как минимум на 10 % по сравнению с текущим.Скажу больше, мы обновляем код UI до последней версии, что включает в себя решения, еще больше снижающие время на прорисовку интерфейса.Также, мы разделили часть интерфейса, ответственную за обработку информации, справились с экранным видео, разделили его на три части — каждая из которых может выполняться в отдельном потоке. Разбиение также позволило нам выполнять каждую часть с отдельной скоростью так, что они не будут обновляться каждый кадр.
 
Ограждения (Occlusion)\Видимость
—————————-
Мир Planetside 2 огромен. 64 кв. км. полных сотней тысяч объектов и тысячами игроков на каждом континенте! Каждая комбинация сеток (полигонов, описывающих обьект) и текстур (тем, чем мы красим сетку) должна быть детально описана вашей видеокарте и обработана. А как мы обрабатываем сотни тысяч вещей в кадре? Просто НЕ ДЕЛАЯ этого! Просто, ага? Вместо этого, мы разбиваем континент разными путями и используем наработки в коде ценой в 10 человеко-лет для определения какую подгруппу вещей вы увидите. Это — Видимость.
 
Мы также хотим избежать обработки чего-либо, что находится за чем-то, будь это «динамический обьект» (человек, пуля или любое другое, что меняется) или статический обьект (нечто постоянное, как например здание, или мнение Хигби). Это — Ограждение.Мы используем сторонние исходники, называемые Umbra, для обработки Ограждений\Видимости. Как часть ОСИП (OMFG), мы обновляем эти исходники до последних версий, что требует рефакторинга путей обработки зон видимости, меняя некоторые факторы в ядре клиента и инструментах. Это также уменьшит время, затрачиваемое на обработку видимости на кадр на приличную величину, что значит, что чем сложнее сцена (к примеру база с тысячами объектов) — тем больше прироста для вас. Мы также перенесли обработку видимости в отдельный поток, так что те из вас, у кого многоядерные процессоры, заметят дополнительный прирост, а обладатели процессоров AMD заметят существенные улучшения от параллелизации операций обработки видимости.

Многоядерный обработчик
—————————-
Много элементов в Planetside 2 уже разнесены на отдельные потоки, но каждый из этих потоков чаще всего должен быть связан с главным потоком и обработчиком. И, мы взяли часть обработчика, которая общается с DirectX и выделили ей отдельный поток как, например, для обработки интерфейса. Это даст главному потоку обрабатывать меньше на каждый кадр, еще больше увеличивая частоту кадров для тех, у кого 4 ядра или больше.
http://images1.wikia.nocookie.net/__cb20130709032228/planetside2/images/9/96/PS2_WorldMap_Terminals.pngБольше инструментов
———————————-
Мы постоянно работаем и добавляем больше настроек и ручек для себя, давая нам ещё больше власти над тем, что происходит в больших битвах и где мы еще должны поработать.

Я также взволнован о наших планах создать утилиту для проведения тестирования (Benchmark). Это классика «прогони компьютер через тесты и посчитай свой fps» для этой игры. SOE верит в выдачу полномочий игрокам как никто другой, и это еще один пример этому. Мы будем давать вам способность измерять вашу частоту кадров в статическом окружении так что вы сможете, с каждым патчем, нажимать на кнопку «Как у меня там дела?». Вы будете пролетать над сценой, где мы будем измерять скорости заполнения, время обновления объектов, время просчёта интерфейса и сотни всего другого.

И, в конце, вы увидите счёт, сможете его обсудить, и мы получим этот результат, вместе с вашей конфигурацией. Иметь возможность обсчитывать и выявлять проблемы в совершенно отдельной статической сцене — это ОГРОМНЫЙ прорыв. И больше нет такого «Ну, у меня было X кадров в секунду в баре на Индаре во вторник, когда шел дождик». А теперь вы сможете сказать «На прошлой неделе мой результат — 8300 очков, но на этой — OVER9000!!!!!»

НА ДЕСЕРТ

Мы и дальше будем рассказывать о том, что мы делаем и почему мы это делаем. Эти оптимизации действительно улучшат жизнь каждого, а не только обладателей бюджетных ПК. Они серьезно улучшат производительность и изменят геймплей к лучшему. Вы — часть этого. Вопросы приветствуются.
 
Райан Элам — Технический директор PlanetSide 2
 
Обсудить на форуме: http://ps2-ru.com/forums/threads/2615/
Оригинал: https://forums.station.sony.com/ps2/index.php?threads/operation-make-faster-game.150281/

Теги:, ,