30 июня 2007
Обновлено 17.05.2023

Пехота — царица полей. Создание умных юнитов на примере Warfare

Пехота — царица полей. Создание умных юнитов на примере Warfare - изображение обложка

Юниты — основа любой RTS. Можно иметь сколь угодно совершенный движок, проработать до мелочей сюжетную линию, сделать гениальные уровни… и все равно сесть в лужу. Игроки любят не пафосные слова и не число полигонов в моделях, а чтобы удобно, понятно, играбельно. Далеко не все разработчики понимают, что оригинальность юнитов, скажем так, приятность управлять ими — это куда важнее ярких спецэффектов и умного AI.

Потому что если без эффектов и шикарного AI еще как-то можно прожить, то без качественных юнитов и модели их поведения — уже никак. Никто просто не станет играть в такое. Именно поэтому наш сегодняшний разговор будет посвящен… пехоте. Да-да, той самой царице полей, без которой немыслима любая стратегия. И неважно, как выглядит пехотинец: закован он в средневековую кольчугу, щеголяет ли современным камуфляжем или вовсе заточен в энергетические латы далекого будущего. Именно пехота — неотъемлемая часть любой стратегии. Другие классы юнитов могут различаться в зависимости от игры, от временной эпохи, обыгранной в геймплее, — да много еще от чего. А вот пехота есть всегда.

Об особенностях создания пехотинцев нам рассказал Виталий Шутов , руководитель компании GFI Russia , которая сейчас вовсю работает над созданием стратегии Warfare , релиз которой намечен на осень этого года.

Вид из окопа

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

У нас, в Warfare, моделируются современные боевые действия, а в современном мире в большинстве случаев они происходят в населенных пунктах, городах или в труднопроходимой местности — например, в горах или в лесу. Именно там вольготней всего себя чувствует пехота. Ведь при столкновении с современной техникой в чистом поле шансы на выживание любого пехотинца равны нулю. Ну а раз так, значит, на пехоте можно и нужно акцентировать внимание.

Мы постарались сделать действия пехоты максимально реалистичными: бойцы перемещаются не поодиночке, а в отрядах. При этом примерно количество членов сквада и вооружение соответствует тому, что применяется в боевых отделениях взводов армии США и арабов.

Но мало просто бегать по улицам. Основная сила пехоты в городе — в засадах, которые удобнее всего устраивать в зданиях. Так в Warfare появился первый особенный элемент геймплея. Как обычно поступают девелоперы, если нужно разместить бойцов в здании? Делается, условно говоря, две модельки: пустое здание и здание, в которое зашли бойцы. Когда юнитам дается команда занять дом, модельки подменяются — и вуаля. Игроки могут даже не догадаться, что их вот так нагло обманули. Хотя во многих играх бывает заметно, что разработчики поступают вот так вот нечестно. Ведь если заменяется модель, то расчет повреждений ведется усредненно, а не для каждого отдельно взятого юнита. Это, конечно, экономит мощности компьютера, но вот с реалистичностью сразу возникают проблемы.

Мы решили сделать все достоверно. Занимая позицию в здании, отделение распределяется по огневым точкам в зависимости от специализации. Для тех же гранатометчиков вести огонь с крыши по решеткам моторного отделения тяжело бронированных танков куда удобней.

Поэтому у нас пехота не просто исчезает рядом со зданием, изменяя его модель, а вбегает в дверку, послушно разбегается по позициям внутри (при этом опять-таки можно задать направление, которое надо прикрывать в первую очередь). Но в процессе работы мы сообразили, что чего-то все же не хватает. И довольно быстро поняли, чего именно — естественности.

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

Под прицелом

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

Мы сделали в Warfare систему «живой» анимации из « АЛЬФА: антитеррорМужская работа ». Работает она по следующему принципу. Тело пехотинца делится на несколько частей, которые работают независимо друг от друга, но связаны определенной логикой. Например, стреляя вверх, пехотинец поднимает винтовку вверх. Если ему мешает стена, то он либо немного отбежит, либо высунется из-за угла, чтобы можно было стрелять и при этом оставаться максимально закрытым от огня противника.

Как только мы ввели эту возможность в игру, сразу начали накатывать новые идеи. Да вы и сами можете догадаться — логика-то довольно простая. Если пехотинцы могут поворачивать корпус, то почему бы не сделать возможность стрелять на ходу в разные стороны. Ведь когда система независимой работы частей тела уже добавлена в движок, это сделать очень просто. А еще можно организовать жестовые команды, красивые анимации гибели…

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

Кстати, нежданно-негаданно для себя мы частично повторили систему поведения пехоты в Company of Heroes. Солдаты на ходу поворачивают голову в сторону опасности, открывают огонь, не прекращая движения, жестикулируют.

Еще больше войны

Дальнейшее развитие пехоты в игре шло уже по пути наращивания возможностей. Если уж у нас американская армия — одна из основных действующих сил в игре, а американцы очень любят высаживаться с вертолетов на тросах, то грех было не реализовать такой аттракцион. В Warfare можно выкинуть десант практически на любую крышу: указал здание — «вертушка» подошла, открыла люк, выкинула трос, и посыпались по нему один за другим наши бравые вояки. А начиналось все с одной маленькой проблемки, когда пехота не могла стрелять по окнам!

Любой город в RTS полон препятствий. Если построить систему вэйпойнтов так, чтобы пехотинцы каждую преграду на пути оббегали, вояки будут сновать по городу, словно муравьи. Их даже в отряде будет сложно удержать. Тут же возникает проблема: надо научить бойцов перелезать через небольшие препятствия. Мы оперативно сделали такую возможность.

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

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

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

Хитрости начались сразу, как только мы добавили пехоте возможность забегать в здание, занятое противником. Ну вбежали они, хорошо, а что дальше? Опять перестреливаться? А если в доме узкие коридоры и два пехотинца из разных армий столкнулись нос к носу? Стоять в метре друг от друга и садить из автоматов? Это же несерьезно, да и выглядит смешно. Мы понимаем, что в некоторых играх так оно и сделано, но геймеры же все это замечают и формируют мнение об игре. Нам стало понятно, что надо делать рукопашную.

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

Правила создания умной пехоты

  • Глобальный искусственный интеллект в рамках RTS — не более чем красивый термин. Способность солдат оценивать тактическую обстановку, как правило, не приносит игроку никакой пользы. Судите сами: если отряд пехоты в северо-восточном углу карты получит сигнал бедствия от тяжелого танка, подбитого на юго-западе, и ринется спасать боевую машину через всю локацию, скорее всего, бойцы бездарно погибнут, а главком, сидящий по ту сторону монитора, этого и не заметит. В то же время, если пехотинцы, увидев врага, начнут маневрировать, группироваться и сами займут стратегически выгодное укрытие, это не только произведет впечатление, но и прибавит динамики игре. Уделив должное внимание локальному AI и обучив юниты самостоятельно принимать верные решения, разработчик добьется максимально глубокого погружения в игровой процесс.
  • Представить себе пехотинца, расслабленно покуривающего под артиллерийским обстрелом, способно лишь самое смелое воображение. Болванчики, не реагирующие на взрывы, несмотря на тающий с каждой секундой лайфбар, приводят игрока в бешенство. Это относится не только к своим, но и к вражеским юнитам.
  • «Больше естественности!» — вот главный девиз при создании модели поведения солдата. В реальном мире у людей есть устоявшиеся реакции на определенные события. Структурируйте поведенческую модель по тому же принципу — каждое явление в их жизни должно вызывать адекватный ответ с их стороны. Следуя этому принципу, вы сможете создать воинов, которые лишь незначительно отличаются от живых людей.
  • Внимательность к мелочам — залог успеха. Не надо думать, что если игрок смотрит на солдат с высоты птичьего полета, то не обращает внимания на нюансы. Воины, пробегающие сквозь забор, вместо того, чтобы эффектно его перепрыгнуть, вызывают как минимум недоумение. Кроме того, подобные ляпы начисто губят атмосферу игры.
  • Реалистичность — важнейший ингредиент вкусного блюда под названием «Качественная стратегия», но без зрелищности оно так и останется пресным. Кино и поп-корн сделали свое злое дело — человеческий мозг воспринимает беззвучно умирающего бойца как дешевый суррогат и возмущенно требует грохота взрывов, воплей раненых и ярких языков пламени. Проработанная анимация трагических моментов скоропостижной кончины участников боевых действий — одна из вещей, которая заставляет открывать рот сидящего перед монитором.
  • Эпоха немого кино канула в Лету больше чем полвека назад. Не стоит забывать об этом, работая над юнитами. Молчаливый солдат хорош в разведке, но хмурый чурбан, никак не комментирующий происходящее вокруг, не вызовет у игрока ни сострадания, ни желания участвовать в его судьбе. Цель любой стратегии — создать у игрока полноценную иллюзию управления армией. Армией, которая состоит из людей, а не безликих и бездушных исполнителей. Чем больше событий, на которые ваши солдаты выражают свою реакцию вслух (нужно помнить, что на каждый случай должно быть заготовлено минимум штук пять разных реплик), тем лучше. Радиоэфир, заполненный переговорами, криками, помехами и грохотом взрывов, в нелегком деле воссоздания атмосферы поля боя играет ту же роль, что и визуальные эффекты.
  • Нет ничего нелепей, чем солдаты, получившие команду на движение и побежавшие «в ногу». Сделайте разброс на начало движения до секунды, бегущие вразнобой солдатики выглядят намного живей, чем группа «синхронного плавания».
  • Злоупотребление анимацией юнитов приводит к тому, что вместо дисциплинированных бойцов по монитору разгуливает группа пациентов психдиспансера, страдающих двигательным возбуждением. Бесконечные оглядывания и театральное вскидывание автомата создают ощущение, что вы командуете параноиком, а не солдатом, которому положено дышать и покачиваться из стороны в сторону. Если расстройством двигательной функции начинает страдать целая группа бойцов, ощущение комичности происходящего усиливается. Разнообразная анимация хороша, но в меру!

Сумма частного

Суммируя все вышесказанное, хочу обратить внимание вот на что. При создании RTS всегда будьте готовы к тому, что, добавив в игру всего одну новую фишку (в нашем случае это было разделение тела пехотинцев на составные части), вы получите целый ворох дополнительных возможностей. Отказаться от них очень сложно, все хочется сделать и внедрить в геймплей. Но этим можно заниматься до бесконечности.

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

Мы, как нам кажется, сумели удержаться на грани баланса. То есть не зарывались и сделали ровно столько, сколько нужно не для максимальной, а для оптимальной реалистичности. Хотя удержаться было сложно. Релиз Warfare уже не за горами, но мы все еще продолжаем развивать пехоту. Добавляем динамическое нахождение укрытий, возможность замаскироваться в зарослях травы. Конкретно сейчас работаем над специальными командами для штурмовых отрядов. Например, они смогут передвигаться по улице под прикрытием брони танка или БМП. Указав танк, за которым пехотинцам нужно следовать, и заранее определив сектор, из которого исходит опасность, можно, прикрываясь броней, подходить вплотную к зданиям, где засел противник. Или пересекать улицы, простреливаемые вражескими снайперами и пулеметчиками.

О таких элементах, как система опыта отряда, специальные навыки, перки и дополнительное вооружение, мы специально умолчали. Это уже почти RPG-элементы и тема совсем для другого разговора.

* * *

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

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

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь