Где нормальная физика в играх?

Почему в последние 10 лет физика в играх скорее деградирует, а не развивается? Куда делся PhysX и Havok? Доколе всему этому быть? Если вас тоже мучают эти вопросы, то добро пожаловать под кат.

Сравнение Borderlands с PhysX и без отсылают нас к современным сравнениям с RTX
Сравнение Borderlands с PhysX и без отсылают нас к современным сравнениям с RTX

Первое, что надо понять, чтобы ответить на вопрос, куда делся PhysX и Havok, которые радовали нас крутой физикой весь конец нулевых и начало десятых годов?

PhysX был невероятно крут в первую очередь тем, что обрабатывал физику на GPU, а не на CPU. Тут ситуация точь в точь как с лучами (теми самыми). Если сейчас начать процессить физику без этих великолепных библиотек PhysX, то физон начнет жрать CPU, а не GPU. Но при этом, что занятно, новые видеокарты в связке с CPU уже довольно давно переваривают PhysX даже если у них нет ядер CUDA. При этом, мы все помним, что в консолях того времени, CPU был довольно слаб (сейчас про Cell в PS3 не говорим, он был крут по своему, но это тема отдельных больших статей). Поэтому, в сухом остатке, все расчеты сложных математических операций (с векторами и матрицами) старались делать на GPU, чтобы оставить на CPU только непереносимую логику (поведение NPC, количество объектов на сцене и прочие задачки с простой математикой сложения/вычетания, которые не имеют отношения к отрисовке). И в первую очередь, PhysX помер из-за того, что в PS3 и XBOX он банально не поддерживался (хоть там и была видяха nVidia, но не было ядер CUDA), а в следующих поколениях консолей он и тем более не начал поддерживаться, т.к. видяхи стали использоваться от AMD (как раз за счет отсутствия CUDA ядер они у AMD были дешевле, плюс они интегрировались в единый чип с CPU, чего не было у nVidia, что тоже уменьшало стоимость производства).

Итого, PhysX остался не у дел, т.к в момент выхода на консолях своего времени он не поддерживался из-за нехватки мощности, а в дальнейшем не поддерживался, т.к. у консолей сменился вендор железа. И поэтому, PhysX остался как нишевая технология для ПК-шников, использование которой не дает значимого, для финансовых показателей игроделов, прироста ценности продукта, а значит и платить за использование этой технологии в своих разработках игроделам смысла нет. Если в новых консолях не появится ядер CUDA или аналогичных и если PhysX не станет открытой технологией, то скорее всего, эта технология окончательно исчезнет в небытие. Многие и тут могут провести параллель с лучами, но это другой случай и чуть дальше расскажу почему.

Что если написать свою игру с хорошей физикой?
Что если написать свою игру с хорошей физикой?

Следующая причина, почему Игорь утонул на ПК при применении фильтра по параметру "хорошая физика", это отсутствие нормальных альтернатив PhysX.

А что же Havok, ведь даже тогда были игры с великолепным физоном и без технологий PhysX? Все так, как раз таки крупнейшей технологией, которая могла составить конкуренцию PhysX в плане качества физики в играх и распространялась как готовая библиотека, которая как раз работала на консолях, была Havok. Именно благодаря Havok, в огромном количестве игр, которые мы знаем, есть вообще хоть какая-то физика, а в некоторых она прям неплохая (SnowRunner, MudRunner, Rainbow Six и т.п.).

Но в отличии от PhysX, Havok процессит физику все еще преимущественно на CPU, от этого, его ценность тоже становится не так высока. Его удобно использовать в готовых движках (насколько знаю, он был включен внутрь Unity, хоть и остается доступен отдельно при желании), но вот многие игры, которые делались на своих движках, чтобы использовать Havok, видимо, должны продать душу Intel, которая тоже оказалась не у дел в производстве консольных чипов. Соответственно, писать свой физический движок с нуля (как и игровой движок в целом), в условиях современного производства игр, становится просто очень-очень дорого и нецелесообразно, когда есть готовые решения.

Где нормальная физика в играх?

Но вот что же предлагают готовые решения? Если говорить про Unity и Unreal, то способности к физике, на мой взгляд, у Unity лучше. Но AAA проекты не делаются на Unity, т.к. он сильно проигрывает Unreal'у по работе со светом, мешем и текстурированием. Что и раньше у Unreal'а было на высоком уровне, а с появлением новых версий движка, стало абсолютно космически круто. Однако, физика как раз остается ахилесовой пятой Unreal'а, что отлично демонстрирует демка Матрицы, где все машины это утюги времен NFS Most Wanted, а физика повреждений на уровне GTA SanAndreas (даже не дотягивая до GTA IV).

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

Те самые лучи, а вместе с ними и DLSS, которые стали рвать задницы всем причастным, это как раз та самая козырная карта, которая может развернуть дальнейший ход развития индустрии в другую сторону. Ведь те самые ядра CUDA, которые nVidia использовала для PhysX, очень хорошо подходят и для ИИ (DLSS), и для трассировки лучей, и для других математических операций, которые обычный GPU делать не может, а CPU делает медленно и плохо. А это означает уже вполне весомую прибавку к ценности продукта (в плане оптимизации), но что самое главное, RTX делает дешевле большую часть производства игры с ручной настройкой света (Dying Light 2 отличный пример, как выглядит RTX и его альтернатива с ненастроенным светом). А ИИ в целом делает дешевле производство огромного количество игрового контента. И как раз тут, AMD пока особо нечего предложить.

Как автор видит современные консоли
Как автор видит современные консоли

Так что основной вывод статьи такой - хоть консоли и AMD (отчасти вместе с ленью разработчиков и деградацией геймдизайнеров) убили физику в играх, но поддежка хорошей физики в Unreal Engine и развитие RTX + ИИ в nVidia (или аналогов у AMD), могут стать мостиком, которые вернут возможность аппаратного ускорения расчетов физики на GPU, а значит появится возможность, делать хорошую физику "дёшево". Если, конечно, к тому моменту останется хотя бы один геймдизайнер, который сможет придумать что-то сложнее механики "три-в-ряд" :)

Всем, кто дочитал до конца, посылаю RTX-лучи добра, ведь благодаря вам, мне не нужно много часов монтировать ролики или рилсы, чтобы поделиться своими мыслями и графоманией). А всех несогласных приглашаю быть проигнорированными автором в комментариях!)

55
12 комментариев