Развитие CGI — длинный путь «в никуда». Почем оптимизация для народа?

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Люблю красивые вещи. Но еще больше люблю, когда соблюден баланс между красотой и функциональностью. А если вещь красивая, но бесполезная и громоздкая? Мы живем на маленькой планете в маленьких таких прямоугольниках, где каждый сантиметр пространства важен. Будете ли вы тратить ценное пространство на красивые, но бесполезные вещи? Я бы не стал. Есть такая штука, как оптимизация личного пространства, в которой нет места для громоздких бесполезных вещей.


И с видеоиграми то же самое. Игры могут и должны выглядеть красиво. Но вся эта красота не должна идти вразрез с игровым процессом. Графика не должна быть на первом месте при разработке компьютерной игры. Игра — это не картина, не кино-блокбастер, где пользователь лишь сторонний наблюдатель. В игре главное — как игрок взаимодействует с игровым миром. А что представляет собой этот мир — набор пикселей или 8К текстуры на высокополигональных моделях — дело десятое.

Где моя оптимизация?

А вообще, давайте-ка разберемся, а точно ли у нас идет развитие графики в компьютерных играх. Может быть, нас просто водят за нос (а то и за что-то иное). Вдруг под развитием графики в видеоиграх нам подсовывают технологии, которые нам как игрокам совершенно не нужны. Я даже не побоюсь заявить, что даже разработчикам они крайне вредны. И постараюсь свое мнение аргументировать.

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

Обе детали одинаковые, но одна из них оптимизированная.

В какой детали больше полигонов? В «правой» или «левой»? И как вы это определили?

И насколько сильно детали отличаются друг от друга? А если нет разницы, то зачем платить больше? Я их собирал, но сам не вижу особой разницы. Нет, конечно, разница есть. Но она настолько незначительная, что использование детали в 1216 треугольников просто не разумно. Зачем лишний раз нагружать и без того несчастный процессор и\или видеокарту? А ведь деталь с меньшим количеством полигонов можно еще оптимизировать, скрыв невидимые для наблюдателя, а значит лишние детали.


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

А настоящие художники даже без текстурных карт способны отобразить детали на модели. Возьмем к примеру Freedom Fighters. В этой игре минимум графических эффектов. Но работа над текстурами выполнена так хорошо, что можно рассмотреть даже детали на автомате Калашникова в руках персонажей. Или обратите внимание на текстуры поверхностей в American McGee's Alice. Первая игра от продолжения отличается старой графикой, но текстурами не имеющими стыков. Но это все игры старые, от признанных и не признанных мастеров своего дела.

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

Им дали свободу, а они…

Кто-то заявит, что, дескать, предоставив новые технологии разработчикам компьютерных игр, «корпорации компьютерной красоты» развязали творцам руки. Не нужно тратить время на оптимизацию и можно быстрее и качественнее выпускать игры. Ха! То-то я смотрю, что после выхода каждой новой игры для комфортного в ней времяпрепровождения требуется огромное количество патчей. Которые, в том числе, и оптимизацию добавляют. Потому что концепция «свободы» никогда не работает. Любого творца нужно ставить в ограниченные рамки, чтобы этот творец мог выдать что-то действительно хорошее. Доказано тысячелетней историей человечества.

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

Тем более, что мы уже пришли к точке, когда все большее и большее количество полигонов и разрешение текстур будут сжирать все больше и больше системных ресурсов. При этом чисто визуально никто не увидит разницы. Для этого придется каждый объект рассматривать в виртуальную лупу. А зачем нам игра, в которой игрок только и занимается тем, что считает полигоны в жабах?

Единственная причина разгона числа полигонов — желание продавать все более и более мощные видеокарты. Которые при этом становятся настолько большими, что скоро для них придется отдельный корпус к основному системному блоку подключать с отдельным питанием. И все это ради чего? Ради трассировки лучей? А нужна ли она вообще?


Древняя игра Cold Fear. Отражения в зеркалах.
Древняя игра Crysis. Интерактивное окружение.
Древняя игра Half-Life 2. Реалистичное поведение персонажей.
Древняя игра Hydrophobia. Реалистичная физика воды.
Древняя и глючная игра Alone in the Dark. Реалистичное поведение огня.
Древняя игра The Chronicles of Riddick: Assault on Dark Athena. Ноги у персонажа. Их не видно, но они есть.

Зеркала. Да, как пример я выбрал зеркала. Реализация отражения в компьютерных играх — вещь древняя. Я точно не помню, в какой игре я первый раз увидел работающие зеркала, но отражения в Duke Nukem 3D я помню. На первом уровне было место, где игрок заходил в туалет, типа сортира, где на стене висело зеркало, в котором не только отображалось окружение и враги, но еще некоторое вооружение рикошетило. В первом Deus Ex были зеркала. В Cold Fear. Да много где. А потом пришел «next gen». И уже в Deus Ex Human Revolution в зеркалах не отображалось ничего. Что само по себе забавно, так как в самой игре был момент, когда главный герой рассматривал свое изуродованное имплантами лицо в зеркале. И нет, разбитое зеркало отражать свет продолжает.

Конечно, все эти зеркала работали через программные костыли (часто это были виртуальные комнаты отзеркаленные, в которых создавались копии объектов). По этому на очень слабых машинах в помещения с зеркалами игра теряла в FPS. Сейчас «честные» отражения так же требуют затрат от компьютерной системы. От чего ушли, к тому и пришли — и где тут прогресс?

Хватит захламлять наши игры!

Количество объектов на квадратный сантиметр виртуальной комнаты? Тут наши творцы тоже переступили грань той самой «золотой середины», когда помещение уже не пустое, но еще и не представляет из себя свалку ненужных одинаковых предметов.

Возьмем для примера тот же Deus Ex. Первая часть вышла в далеком 2000 году. И кроме пары предсказаний, дала игрокам возможность посетить локации, срисованные с настоящих. Но из-за маломощных систем локации были пустынными, все же города в киберпанковском упадке выглядят более замусоренными. Затем вышел Deus Ex HR, где уже был баланс между количеством объектов и качеством локаций. А следом вышел Deus Ex Mankin Divided, где уже был перебор с количеством предметов на локациях, и каждое помещение напоминало помойку.

Мало того, часто этот предметный хаос переходит все разумные границы. Например, в хорошей игре Terminator: Resistance игрок попадает в разрушенный ядерным огнем Лос-Анджелесс. И казалось бы, все ценное должно было либо превратится в «радиоактивный пепел», либо быть разграбленными немногочисленными выжившими. Но вот мы заходим на склад и видим кучу коробок с вещами и целый стенд с инструментами. Инструментами, Карл! И нет, отговорки «там же терминаторы шляются» не подходят. Потому что в этой же игре нам говорят, что машины на улицах появились не сразу: после бомбардировки прошлом несколько месяцев, а то и лет. А значит у людей было достаточно времени очистить от лишнего большую часть города.

И в этой же игре мы наблюдаем пример плохой «копипасты»: куча неразграбленного и не сгоревшего в ядерном пламени повторяется из района в район. В каждой мастерской, в одном и том же месте, висит целый моток изоленты. И разработчики даже не постарались это как-то поправить. Игру спасает только хороший игровой процесс. При этом есть бесездовский Terminator: Future Shock — старая игра в том же жанре и сеттинге. И несмотря на то, что игра старая с этими «тремя полигонами и текстурами без фильтров», атмосфера разрушенного ядерным взрывом города передана куда как лучше.

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

Тогда уж фильтры какие-нибудь нацепите. Хотя нет, не надо фильтров. А то знаем мы вас. Покрасите все в коричневый или неоново-радужный. Что бы глаза игрока вытекли уже через пять минут игры в это. Не надо фильтров, просто не надо. Для особо упоротых визуал-наркоманов есть различные решейды. Такие люди сами разберутся как игра должна выглядеть. А обычным игрокам дайте нормальную четкую картинку с естественными цветами.

Неравноценный обмен

Может быть новые технологии дали нам реалистичное освещение? Ага, конечно. Сравните Quake 2 и Quake 2 RTX. «Реалистичное» освещение портит всю атмосферу, которую наводили левелдизайнеры. И многие классические локации в RTX версии игры выглядят просто отвратительно. Получается, что бы сделать красиво художник должен все равно потратить свое время на планировку источников освещения. Потому что люди все равно давно уже привыкли жить при искусственном освещении. Да и вообще, лучше уж какой-нибудь сорс порт второй кваки запустить. Даром что ли над ними разработчики корпели по много лет подряд.

Quake 2 без RTX и с RTX
Автор: Сравнение кадров Источник: www.youtube.com

Может быть новые технологии принесли нам честную физику? «А? Что? Какая физика?» Новые технологии похоронили физику! Нет ее в новых играх, не работает она. В фильмах Майкла Бея больше физики, чем в современных играх. Где натуральное поведение жидкостей? Где хоть что-то напоминающее огонь? Нет их. Но при этом они были. И игры, в которых были переданы относительно честное поведение жидкостей и огня не так что бы стали популярными. Потому что в упоре на визуал авторы забыли про сюжет.

Может быть, новые технологии нам дали возможность большую свободу действий в играх? Ага, конечно. Чем больше объектов в кадре, тем сильнее «клей» который приваривает эти объекты к локации. Нарушая все законы физики и игровой логике. Ой, да что там объекты. Даже персонажи до сих пор двигаются, как беременные казаки. Хотя это то и не удивительно, глянешь под ноки протагонисту, а там «- Пейн, я не чувствую своих ног!», «- Боба, а у тебя их и нет.»

Что же нам дают новые технологии? Красивую картинку? Так она и раньше была не такой уж и отвратительной. Я же не просто так привел кучу примеров игр разных лет. Большая часть их них до сих выглядит потрясающе, хотя кому-то уже десяток стукнул, а кое-кому скоро уже двадцатка будет (слышь, Габен, третья Халфа где?).

А что мы пожертвовали ради новых технологий? Сюжет. Геймплей. Прописанных персонажей. Лор. Физику. Логику. Здравый смысл. Огромная куча важных вещей были порушены просто так. И получилось так, что ААА проекты имеют красивую упаковку, но внутри абсолютно пустые. В то время как какие-то простые пиксельные инди проекты, выглядящие как будто бы выпущенные в 1990-е, предоставляют нам то, чем раньше отличались профессиональные студии.

Получается так, что мы тратим много денег только для того, что бы запустить какой-то бездушный проект с примитивным, устаревшим еще 5 лет назад, игровым процессом. А самое обидное, что сколько бы полигонов в листочек не добавляй, а при увеличении ты все равно увидишь «лесенку», а не молекулярные связи. Если художник не поработает над текстурами, то вы всегда будете видеть швы на стыках. И никакие 12К их не устранят.

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

Выражаю благодарность за скриншоты ресурсам Riot Pixel и Old-Games. Эти сайты сэкономили мне много времени.