«Ведьмак 3» вышел. Многие уже успели затереть геймпад или клавиатуру и мышь до дыр, путешествуя в обличье Геральта из Ривии. Третья часть подарила нам открытый мир, потрясающие сюжетные квесты, улучшенную боевую систему, обворожительных напарниц…
Но игровое сообщество бурно обсуждает не это, а раздосадовавший многих «даунгрейд» (ухудшение) графики. Сравнения с Watch_Dogs напрашиваются сами собой, и в это CD Projekt RED не ткнул носом только ленивый.
Но вместо того, чтобы злорадствовать, подливая масла в огонь, давайте взглянем на это событие трезво. Попробуем проанализировать те проблемы, с которыми пришлось столкнуться создателям The Witcher 3: Wild Hunt во время работы над игрой. Трудностей на этом пути было немало, и это лишь вершина того айсберга, который скрывает пришедший некстген.
In-engine vs. in-game
«Сделано на движке» еще не значит «так же будет и в игре». С годами разница между указанными в заголовке понятиями становилась лишь отчетливее, а теперь это и вовсе совершенно разные вещи. Однако до сих пор очень многие геймеры ставят между ними знак равенства.
В современных движках есть технологии, которые вообще не предназначены для запуска на платформе конечного пользователя. Движок — это набор инструментов для изготовления игры. И естественно, среди этих инструментов есть такие, которые способны выдать сногсшибательную графику. Но никакой PC, даже ультрасовременный, не сможет потянуть это в режиме реального времени. Такие «фичи» предназначены для всевозможных пререндеров, а не для работы в «рилтайме».
На самом деле, очень многие из тех графических красот, которые мы можем сейчас наблюдать в играх, в прошлом тоже были рассчитаны строго на предпросчет, а до этого и вовсе являлись исключительно киношной прерогативой. Как вы понимаете, этим технологиям пришлось пройти чрезвычайно тернистый путь оптимизации и упрощения, чтобы наконец заработать в реальном времени.
В теории к любой современной игре можно предъявить претензию, что она, мол, могла бы выглядеть лучше, если бы ее создатели попытались втиснуть в мощности видеокарты какую-то новую технологию из кино. В теории — да. На практике — это невероятно трудоемкий процесс.
Любая современная игра — это гигантская Вавилонская башня из бесчисленного количества «фейков», оптимизаций и откровенных «хаков», которые служат одной-единственной цели: всеми правдами и неправдами хоть как-то сымитировать то, что мы видим на экранах кинотеатров. И далеко не всегда удается положить новый кирпичик на эту хрупкую конструкцию так, чтоб она не рухнула.
Ситуация усугубляется, если у вас свой движок. Ведь в этом случае вам предстоит не только грамотно задействовать колоду из технологий в игре, но и прежде всего самим создать эту «колоду». Несмотря на то что все алгоритмы уже известны, это тоже труд, притом колоссальный.
Поэтому первое же, на что стоит обращать внимание, — на что именно вы смотрите и демонстрировалось ли оно где-то вживую. Если это какой-то тизер-трейлер, в котором ни слова не говорится о том, что вам показывают кусок игры, записанный в реальном времени, то можно смело делить свои впечатления пополам. Даже если модели персонажей выглядят как игровые, даже если вы видите явно игровые тени, — если нигде не оговаривается, что показанное должно запускаться на машине игрока, то у разработчиков есть тысяча и один способ сделать картинку красивой. Но это не имеет никакого отношения к тому, как будет выглядеть сама игра. Может, так же, а может, и нет.
Верьте только тому, что показывают вживую. А трейлер — хоть со словом «геймплей», хоть без — это лишь трейлер.
Прозрачность и игры
С давних времен и по сей день игроделы воюют с одной фундаментальной проблемой: видеокарты не предназначены для отрисовки прозрачных объектов. Это особенность самой их архитектуры, и никакие некстгены это никак не исправят. За годы цифровой эволюции была придумана масса всевозможных ухищрений, чтобы обойти это ограничение. Но тем не менее при разработке до сих пор приходится всеми возможными способами избегать прозрачности. Однако есть два слабых места, где этого не спрячешь: трава и волосы.
Если эта трава визуализируется с прозрачностью, то она выглядит натурально. По краям травинок будет мягкий переход к фону. При приближении/удалении они будут плавно становиться тоньше, пока не станут еле видимыми и не сольются в общее зеленое пятно. Так же, как при настоящей фото-/видеосъемке. Казалось бы, все замечательно.
Вот только отрисовывать таким методом — весьма накладно. Как в плане производительности, так и ввиду некоторых технических проблем. Например, при рендеринге таким способом пучки травы могут рисоваться друг поверх друга в неправильном порядке. К тому же прозрачные объекты не могут корректно отбрасывать тени. И эти проблемы нельзя устранить.
Поэтому игроделы пошли на хитрость: траву отрисовывают немного другим методом. При его использовании каждый пиксель либо полностью виден, либо абсолютно прозрачен. Без градаций. Это позволяет обойти связанные с прозрачностью проблемы, вот только на границах возникают артефакты. А при приближении/отдалении такая трава «стробит». Вот видео с наглядной демонстрацией проблем обоих методов:
Как вы понимаете, с волосами все обстоит точно так же.
Обратите внимание: шерсть явно отрисована с прозрачностью, никаких жестких границ у волосков не видно. Технология HairWorks от NVIDIA во всей красе… как могли подумать некоторые. На деле же оказалось как всегда: если что-то слишком хорошо, чтобы быть правдой, скорее всего, это ложь.
Ну не бывает так. На сегодняшний день ни одна видеокарта не способна правильно отрисовать в игре такое количество прозрачных полигонов друг поверх друга. Тем более на открытой местности. Тут либо одна такая «шкурка», либо вся остальная сцена, либо достойный фреймрейт. Всему вместе — не бывать. Я очень хочу ошибаться в своих предубеждениях, но в случае конкретно с HairWorks пока что они лишь подтверждаются.
Да, если рисовать вторым способом («жесткая» прозрачность) и при этом использовать «антиалайзинг», то ситуация немного улучшится. Но не настолько. Насколько она может улучшиться, на этом же скриншоте наглядно демонстирует трава, которая выглядит хоть и достойно, но не настолько сногсшибательно. А потому совсем не удивительно, что чуть позже сама NVIDIA в промоматериалах к своей HairWorks демонстрирует уже совсем другую шерсть:
Так что, если вы надеялись на светлое будущее с HairWorks/TressFX, вынужден вас расстроить: пока что рано ждать в играх убедительных шерсти, волос, травы и всего такого прочего. А подобные скриншоты — это скорее иллюстрация того, на что примерно будет похожа игра по духу, чем демонстрация самого геймплея. Нас заманивают красивой картинкой — суровые реалии современного маркетинга. Вдохновляйтесь. Восхищайтесь. Но не обольщайтесь.
Пока что лучшие волосы, какие мне довелось видеть в реальном времени, — это те, что продемонстрированы в технодемо «Плач ведьмы» от Square Enix. Но не забывайте, что они так выглядят на четырех «титанах».
Массивный огонь и дым
Еще один кадр, который поразил сердца фанатов с первого взгляда, — это изображение полыхающей деревушки:
Давайте разберемся. Что же тут нам показывают? Невыполнимое.
Как вы могли заметить, во всех играх огонь, дым, пар и тому подобное можно визуально разбить на маленькие «сгустки», каждый из которых горит/клубится независимо от остальных. Даже в inFamous: Second Son, которая делала явный упор на эффекты, было именно так.
Почему так? А потому, что в играх все эффекты именно из таких вот «кусочков» и состоят. Большой взрыв? Куча маленьких «взрывчиков». Большое пламя? Куча отдельных его «языков». Большое облако? Куча маленьких «облачков». И ничего лучше пока что не придумали. По сути, отрисовка огня/дыма за все эти годы недалеко ушла от спрайтовых эффектов из первой Doom. Просто спрайтов в наши дни стало больше.
Эта техника порой способна создать завораживающие красоты. Но вот чего она не может совершенно точно, так это создать цельный, непрерывный эффект огромного костра. Такой эффект, который не состоит из множества клубящихся отдельно «сгустков», а являет собой нечто единое. То есть ровно то, что нам показали в первых трейлерах The Witcher 3.
На сегодняшний день самое передовое, что может предложить игровая индустрия по этому поводу, — это NVIDIA FlameWorks. Но качество симуляции, как видите, далеко от фотореализма. А требования к железу при этом далеки от нынешних реалий.
Увы, пока что по-настоящему объемные эффекты для игр недостижимы. Тот огонь, который CD Projekt RED показала в первом трейлере, мог, конечно, выглядеть так же и в финальной игре. Но только если он был целиком предпросчитан. То есть это был бы обыкновенный видеофайл, который в игре лишь «натягивается» на один полигон и просто воспроизводится. Но — сами понимаете — это смотрелось бы адекватно лишь с какого-то одного ракурса. А значит, даже если такое и было бы в финальной версии, то только в кат-сценах, где ракурс можно задать заранее. Ах да, и весила бы игра куда больше.
Деревья и растительность
Среди тех, кто зажигает факелы и точит вилы против CD Projekt RED, нашлись и те, кто разочаровался в качестве и дальности отрисовки леса. Давайте взглянем на кадр, которым нас поприветствовал третий «Ведьмак» в своей рекламной кампании:
На самом деле, почти все те красоты, что тут показаны, уже достижимы на текущем поколении консолей. Вот только так далеко отрисовать лес не смогут ни PS4, ни Xbox One, ни даже хорошие игровые PC (суперкомпьютеры за несколько тысяч долларов в расчет не берем).
Разработчики идут на хитрость и в случае с лесом активно используют технологию LOD (Level Of Detail). По мере отдаления каждое деревце постепенно заменяется на все менее и менее детализированную версию самого себя. Но это тоже можно делать небесконечно. В конце концов будет просто прозрачный полигон с картинкой дерева. То есть на определенной удаленности лес отрисовывается точно так же, как и трава. И тут мы сталкиваемся с теми же проблемами, о которых я рассказывал выше: слишком много таких «картонных деревьев» друг за другом — это тоже нагрузка, и весьма солидная. Поэтому в определенный момент единственный способ отрисовать лес хоть как-то — это «проредить» его.
И тут уже все упирается в мощности платформы. Растительность сойдет на нет чуть дальше или чуть ближе, но в любом случае до горизонта вряд ли растянется. А даже если и так, будет отчетливо видна разница между уровнями детализации.
Ладно. Хватит разбирать картинку на пиксели. Теперь и так понятно, что первые трейлеры буквально кричали о том, что показанная там графика — демонстрация не столько игрового процесса, сколько самого мира. Она должна была заворожить игрока, вызвать у него неудержимое желание погрузиться в эту вселенную. С чем, собственно, и справилась — поклонникам серии очень хотелось верить в чудо, а PR-машина активно этим пользовалась, сознательно не разубеждая их.
В принципе, на мысли о том, что виноваты обе «стороны конфликта», можно было бы и закончить. Но на самом деле есть и третья сторона — суровая действительность.
PBR и открытый мир
Насмотревшись на красоты сногсшибательной The Order: 1886, некоторые заядлые геймеры стали рассчитывать на примерно такой же уровень реалистичности во всех грядущих играх. Действительно, этот проект стал символом нового поколения и вполне убедительно дал понять, что «такое уже можно».
Но, как вы догадались, не все так просто.
The Order переливается всеми красками новой модели освещения — Physically Based Rendering, или PBR. Она, несомненно, выглядит куда более убедительно и натурально, чем «классика». Вот только у нее есть и слабые стороны, которые в этой игре всеми возможными способами обошли.
«Орден» сделан не просто в подходящих, а в идеальных условиях для PBR. Но стоит отступить от формулы викторианского шутера хоть на шаг — начинаются проблемы. Персонажи одеты не в темное? Отражаться будут ненатурально. Уровни не коридорные? Забудьте о мягком, рассеянном свете. Хотите, чтобы освещение в комнате могло измениться? Только по заранее просчитанному сценарию. И так — во всем.
Подробный разбор PBR достоин отдельной статьи, но все его минусы сводятся к одному простому выводу: новое освещение, которое игроки теперь ждут во всех играх, — это заклятый враг открытого мира. А тут уже вам решать, что важнее: чтобы игра была с открытым миром или чтобы все блестело и переливалось, как в недавнем детище Ready at Dawn.
В теории, конечно, можно извернуться и получить красивый PBR в открытом мире. Но опять же — лишь в теории. Как мы видим, у CD Projekt RED — не получилось. Хотя по первым трейлерам понятно, что девелоперы очень хотели этого добиться.
Но на подводных камнях перехода на PBR беды CD Projekt RED не закончились. Третьей части похождений Геральта «посчастливилось» еще и с датой своего рождения. Работа над ней началась на стыке игровых поколений, и это тоже наложило свой отпечаток.
Xbox One и PlayStation 4
Вы уже могли слышать о том, что некий «инсайдер» CD Projekt RED анонимно рассказал об истинных причинах «даунгрейда». Правда это или очередной продукт форумных войн — неважно. Важны те проблемы, которые там упомянуты. Самая главная — «железо», на котором работает уже наступивший некстген.
Немногие игроки понимают, насколько долог и кропотлив цикл разработки у крупной ААА-игры. Так, The Witcher 3 была начата еще до того, как стали известны окончательные спецификации нынешних консолей. А потом оба гиганта — что Microsoft, что Sony — опубликовали не совсем те мощности, которых от них ждали.
Консоли уже вышли такими, какие есть, — и с этим ничего не поделать. Но можно сейчас смириться с одной мыслью: еще год-полтора могут выходить игры, которые также были начаты до прихода некстгена. Их авторы были вынуждены буквально гадать, на каком «железе» придется работать их детищу, и оттого могли совершить несколько роковых ошибок.
Поймите меня правильно: спецификации нынешних консолей (по крайней мере одной из них) вовсе не плохие. Просто не такие, на какие рассчитывали разработчики AAA-проектов. Это как начать строить дом и уже в процессе выяснить, что кирпичей не хватает. А дальше остаются одинаково печальные варианты: либо отказаться от целого этажа, либо достроить до конца, но с тонкими стенами, либо еще что-то в том же духе. Так или иначе, получится не совсем то, чего хотелось в начале. Поэтому на ближайшее время лучше сосредоточить свое внимание на чем-то помимо графики.
После прочтения этой статьи может возникнуть впечатление, что впереди нас не ждет ничего хорошего. Но я хотел донести вовсе не эту мысль. В конце концов, если посмотреть без предубеждений и завышенных ожиданий, то «Дикая охота» — это не плохая, даже не просто хорошая, а великолепная игра. Я лишь пытался обратить ваше внимание на то, что, вообще-то, с самого анонса был повод сомневаться в ее «графонности», притом далеко не один.
Очевидно, что авторы искренне старались воплотить все эти красоты в жизнь, но у них не совсем получилось. Будем надеяться, к Cyberpunk 2077 они смогут окончательно «прокачать» свой REDengine, а то и — чем черт не шутит — со временем выпустят ультимативный патч к The Witcher 3, который утрет нос всем скептикам. Включая меня. Но даже если нет, полякам можно простить не совсем ту графику, которую мы от них ждали. Хотя бы ради всего того остального, что они нам подарили.
В будущем же нам самим лучше поумерить аппетиты насчет пришедшего поколения. Теперь, надеюсь, вы узнали несколько новых признаков, по которым можно еще на стадии трейлеров предугадать, какие проекты могут не впечатлить вас в техническом плане. А как воспользоваться этим и пользоваться ли вообще — решать уже вам.
Лучшие комментарии