Ребята, которые монтируют трейлеры для игр, любят лишний раз козырнуть рассыпающимся в пыль небоскрёбом, смятым в гармошку автомобилем или стеклом, которое красиво, переливаясь на солнце, разбивается на осколки. Разрушаемость в играх, открою вам секрет, была почти всегда. Создавать её стало куда сложнее, дороже и… обязательнее? В ААA-играх с открытым миром сейчас будет дурным тоном не накидать хотя бы разбивающихся горшков или коробок, а самые дорогие современные шутеры строят целые рекламные кампании на том, как смачно в них можно крушить и ломать.
Наверное, мне стоит признаться сразу, что копать до ядра Земли и препарировать физические движки я не буду, но зато постараюсь наглядно и простыми словами объяснить, кто такая эта ваша разрушаемость со стороны игроделов, как она работает, в чём её проблема, и почему её развитие буксует уже с десяток лет.
Рассыпаться на пиксели
Итак, впервые разрушаемость в играх можно заметить в Space Invaders, выпущенной в 1978 году. Игрок должен был уничтожать монстров, а те в долгу не оставались и тоже вяло постреливали в ответ. От их атак можно было спрятаться за какими-то странными зданиями. И вот именно эти непонятные штуки потихоньку и рассыпались от выстрелов монстров — каждый снаряд удалял несколько зелёных пикселей. Понятно, что о полноценной разрушаемости говорить не приходится, физики тут никакой, технологии на уровне Paint, а отдельные пиксели от фигур могли остаться одиноко висеть посреди бескрайнего чёрного ничто. Но это уже начало.
В Battle City, вышедшей семью годами позже, дела с разрушаемостью обстояли похожим образом — когда танк попадал выстрелом в стену, то игра удаляла часть текстуры. Естественно, никаких рассчитанных с помощью физики твёрдых тел ошмётков и осколков, да и вообще без изысков.
В Rampage монстром выступал уже игрок, и главной его задачей было разносить города в щепки. Вы могли карабкаться по стенам зданий, выбивать окна и прыгать по крышам, постепенно разрушая здания. Чтобы уничтожить постройку окончательно, надо было нанести ей достаточно урона. Визуально разрушение здания не обходилось без графических костылей, но в целом выглядело уже достаточно впечатляюще. Разработчики успели накопить солидный опыт в том, чтобы исхитряться различными способами, накладывать одни текстуры поверх других и удалять куски изображений.
Первые двумерные части Worms, например, работали с этим довольно интересно. В них дизайнеры уровней раскладывали всё окружение на слои, как это делают, например, в создании макетов в фотошопе. Фон — один слой, всё разрушаемое окружение — на втором, а сами червячки и всё прочее — отдельно. При выстреле каждое оружие удаляло часть спрайта с разрушаемым окружением, как большая круглая кисть. При этом стирало оно всё, вне зависимости от материала, из которого были сделаны объекты — и деревья, и камни, и других червей уничтожить было одинаково просто.
Но это всё двумерные игры, которые не очень требовательны и прожорливы, и с которыми можно выкрутиться простым наложением текстур. Переход же геймдева в 3D требовал добавить к уже существующему арсеналу костылей ещё пару десятков новых ухищрений. Благо, поначалу коридорные игры не требовали какой-то резкой революции в этом плане: проходить уровни нужно было в соответствии с геймдизайнерским замыслом, а значит, что большей разрушаемости, чем парочка бочек, как в Doom, или JPEG-следы от пуль на текстурах, как в Duke Nukem 3D, никто и не требовал.
Настоящие проблемы начались, когда в моду начали входить открытые миры. Разрушаемость для них пришлось делать по-настоящему, а не как обычно. В итоге у разработчиков игр появилось несколько способов того, как добиться красивого и реалистичного разлетания на куски. На этих способах и остановимся.
Заскриптованная разрушаемость
Такой способ красиво раскидать вокруг предметы и куски зданий самый простой для обработки вашим компьютером. Всё уже давно подсчитано и срежиссировано на студийных тяжеловесах-видеокартах специальными программами, и вам остаётся только активировать скрипты.
Заскриптованность помогает достигнуть баланса между эстетикой и требовательностью и полностью держит процесс разрушения в руках разработчиков, позволяя избегать разнообразных багов, связанных с физикой предметов. Всё так же, как с заскриптованными кат-сценами. Какой-нибудь Blender уже сам всё посчитал, здание красиво развалилось, ничья встроенная видеокарта не улетела в космос, все счастливы.
Движок Frostbite чаще всего принято связывать именно с тем, как всё можно крушить и ломать, однако в той же Battlefield 4 разрушения были заcкриптованы. Система Levolution помогала создавать масштабные заварушки, меняющие дизайн уровней и выглядящие потрясающе. Однако это были заскриптованные сцены.
По каким-то причинам рекламные кампании сейчас обернулись тем, что заскриптованная разрушаемость — непременно плохо, и принялись хвастать, что всё в свежих играх считается в реальном времени. С этим попытался ловко извернуться Crackdown 3, разработчики которого обещали невиданную ранее степень разрушений. Чтобы не превращать компьютеры игроков в вафельницы, было обещано, что все расчёты полётов и расколов объектов будут проходить на облачной платформе Microsoft Azure. Звучит, конечно, интересно, пусть и не для игроков с низкой скоростью интернета, но всё это в итоге обернулось ничем, а разрушений в игре толком обнаружено не было. Жаль.
Сейчас заскриптованная разрушаемость никуда не делась, но если у студии есть достаточно денег, или у того, чтобы всё крушить и ломать на уровне есть какие-то более глубокие задачи, чем успокоение нервов игрока, то разработчики всё же прибегают к другому способу.
Процедурная разрушаемость
Прорывом в играх с разрушаемостью, основанной на физике, принято считать Red Faction. Игра вышла в 2001 году, а в ней уже можно было создавать тоннели и проломы в стенах. Ведущий программист полгода работал над тем, чтобы сделать вообще все предметы в игре разрушаемыми, но, как обычно бывает, в процессе возникло много проблем, и функции в конце концов урезали — не хватало ни времени, ни денег.
Для Red Faction: Guerrilla, вышедшей в 2009 году, создали вторую версию движка Geo-Mod, который позволил создавать все разрушаемые объекты из частей, на которые они и разлетались под агрессивным напором игрока. Движок просчитывал, как физика твёрдых тел распорядилась бы этими обломками, и вырисовывал им траектории полёта.
Движок научили запоминать информацию о состоянии стабильности объектов и просчитывать физику. По мере ослабления материала объект мог начать искривляться и падать. Каждый раз он проходил через анализ запаса прочности, в котором учитывались действующие на него силы, нарастающее напряжение на отдельные участки и оставшаяся прочность материала. Разработчики старались достигнуть зрелищности и переборщили, потому что для того, чтобы показывать эту самую физику, пришлось наделить героя силой, сравнимой с божественной. Не каждый может в пару ударов разнести целое здание!
Для того, чтобы добиться таких результатов, разработчики ещё на этапе построения модели создают её из множества осколков. Каждому присваивают вес, в зависимости от которого будет рассчитываться дальность красивого разлёта при включении гравитации в объекте. На картинке забор и куб выглядят цельными, однако состоят из множества отдельных кусочков.
При этом в месте потенциального попадания объект делят на большее количество частей, так он будет красивее и натуральнее разлетаться. На примере картинок, в момент скриншотов обе модели не подвержены физике, но когда в них влетит какая-нибудь ракета, гравитация включится, и вот оно, искусство взрыва.
Основанная на физике разрушаемость иногда заставляет очень интересно выкручиваться разработчиков с недостатком ресурсов. Remedy в Control процедурная разрушаемость была необходима геймплейно, однако время и деньги заставили пойти финнов на некоторые уловки.
Надо понимать, что частенько за крупными обломками, пылью, дымом и огнём от игрока прячут или подмену моделей, анимируют только большие обломки, а маленькие даже не всегда наделяют физикой. Кроме того, половину работы в зрелищности разрушений делает количество частиц. И если первое совсем не про Control, то второе — да и ещё раз да. Для создания достаточно подробной и реалистичной картинки все частицы старались показать по отдельности.
Каждому объекту задали материал, из которого он сделан. Игра знала, из чего состоит стол, и что он должен разлететься в щепки, а бетонная стена начнёт пылить и распадаться на куски.
Кстати, про них. Части в объектах тоже могут быть взаимосвязаны, и с ними можно работать по-разному. В Bad Company 2 дома состояли из 36 сегментов. При разрушении 24 из них дом мог обвалиться и похоронить под собой каких-нибудь злобных неписей. Это тоже случай, когда разрушаемость отражается на геймплее.
Деформация модели
Ещё один способ создать разрушаемость в игре — деформация модели. Она требует большую полигональность объекта, но не отличается чрезмерной детализацией. Смысл в том, что под воздействием выстрела вершины модели перемещаются внутрь в зависимости от силы воздействия. Используют этот способ не очень часто, потому что он довольно прожорлив на ресурсы компьютеров.
Как можно заметить, каждая вершина модели переместилась глубже внутрь в зависимости от силы выстрела. Технически такие подсчёты очень затратны, особенно когда параллельно компьютеру надо просчитывать сотни других операций, так что этот метод используют не так часто.
Мы уже сегодня говорили о серии Worms, но затронули только двумерные игры. Так вот, в трёхмерных частях серии Worms обратились к вокселям. Воксельные игры позволяют проще всего просчитывать разрушаемость, ведь последствия взрыва показывают так же — удалением вокселей из радиуса столкновения. Воксельные объекты также заполнены внутри, поэтому они могут физически деформироваться.
А надо ли ломать?
На самом деле, успехов на поприще разрушаемости даже сейчас, в 2021 году, не так уж много, несмотря на то, что занимаются этим в геймдеве уже довольно давно. Это можно понять, поскольку, будем честны, разрушаемость объектов редко несёт какой-то геймплейный смысл, как это сделано в Control. Такие игры — скорее исключение из правил, то есть, по большому счёту, разрушаемость — просто красивость, причём прожорливая на ресурсы, железо и графику.
Свершится ли какая-то революция в этом плане, говорить тяжело. Системные требования у игр и так растут как на дрожжах, а видеокарты нового поколения доступнее не становятся. И пусть технически создать самую красивую и подробную разрушаемость возможно, кто на это будет смотреть? Вопрос скорее философский. Остаётся только наблюдать за тем, как гиганты индустрии продолжают делать игры-блокбастеры и пытаются удерживать хоть сколько-нибудь адекватный баланс между красотой и требовательностью.
Все больше причин поиграть в Control! Я так понимаю, самый интересный пример
Каждая упомянутая игра заслуживает внимания, но Control, да, пожалуй, самая технологичная (имхо) :)
Помню как неоднократно перепроходил Red Faction: Guerrilla из-за разрушаемости, очень любил "разбирать" различные постройки своим молотом и смотреть как красиво они падают.
Нууууууу
Тут от самой игры зависит, мне кажется. Если игра не подразумевает разрушения, но в ней есть внезапная минимальная разрушаемость - это очень круто.
Но вот когда игра ориентирована на крушитьломать, а по итогу разрушаемости там процентов 20 от общего числа физ. объектов - это уже халтура
я помню пиратскую "контру" где можно было разрушать большинство обьектов, вентиляторы, ящики и т.д.
Прикольная, кстати, игрушка. Жаль, в этом сборнике ее нет: https://gabestore.ru/game/contra-anniversary-collection
В прошлом году как раз ностальгировал по "Контрам" :D
Впервые разрушаемость увидел в серии игр Red Faction. Стоило только узнать, насколько окружению плохо от твоих действий и меня уже не остановить. Разнесу всё. Здания, укрытия, блокпосты НЕВАЖНО! Главное процесс и дальнейшее разрушение конструкции.
Затем уже с друзьями поражались данной фишке. Разрушали самыми разными способами и желательно так, как не смог ли бы другие.
И каждый год огорчаемся, что нет проектов, которые поэкспериментировали с разрушаемостью.
Разрушаемость, как по мне, это палка о двух концах. Если её сделать хорошо, игра сразу заиграет (простите за тавтологию) новыми красками. Но если эта разрушаемость, как в R6S, убирается самими разработчиками из-за того, что они не могут починить хитбоксы, это грустно :(
Впервые прочитал статью на сайте, мне зашло, надо будет почитать другие как-нибудь)
Итан Непобедимый, видно, слишком любит беседку, что аж мне все коменты годичной давности задизлайкал
Только лайков у статей нет :D Но вы можете поделиться ей в соцсетях - нам будет приятно ^_^