Читаем Хочу в геймдев! полностью

ПАРТИКЛЫ, или система частиц, нужны, чтобы передать нечто, состоящее из множества частиц. Брызги крови или искры – классические примеры такой системы. Рисовать каждую искорку отдельно было бы неэффективно. Поэтому, если мы хотим передать искры от удара мечом по камню, нам нужно задать одну элементарную частицу (искорку), точку, где камень сталкивается с оружием, область распространения и закон эволюции. После чего определяем ряд параметров, отвечающих за поведение искр, таких как, например, направление и зона, куда клоны этой искры должны разлетаться от удара. В движках обычно есть готовые партиклы, но при нестандартном запросе их приходится разрабатывать отдельно.

Важно помнить, что создаваемые эффекты предстоит совместить со звучанием, и это не самая тривиальная задача – хотя бы потому, что звук имеет источник, громкость и другие свойства. Чаще всего студии берут звуки из готовых библиотек, где можно найти что угодно: от предсмертных криков до взрывов. Если есть необходимость, можно делать самостоятельные записи.

ОСОБЕННОСТИ РАЗРАБОТКИ МОДЕЛЕЙ ДЛЯ ИГР

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

Следующий вопрос – ФИЗИКА ВЗАИМОДЕЙСТВИЯ объектов игрового мира. Допустим, мы обозначили, что в наш вертолет нужно попасть ракетой, чтобы его сбить. Так как мы сделали качественный, фотореалистичный, многополигональный вертолет, расчет столкновения с ним ракеты будет занимать слишком много вычислительных мощностей.

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

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

У большинства может возникнуть впечатление, что коллизии – нечто, присущее в первую очередь трехмерным играм. Но все то же самое актуально и в 2D. Давайте посмотрим на примерах.

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

Когда же дело касается 2D, все в целом имеет схожую логику. Иной может быть лишь реализация. Сравнение зоны вокруг объектов в тех же платформерах может сводиться к сравнению пересечения прямоугольника с окружающей локацией. Это как зона кликабельности вокруг кнопки: мы ее не видим, но она есть. Такую зону иногда называют коллайдером. С физическими ускорителями у них общее только одно: и там, и там происходят столкновения.

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

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

Классическое дизайнерское решение: есть мускулистый воин и миниатюрная эльфийка. Очевидно, что попасть выстрелом в более крупный объект легче. В старых играх можно найти примеры, когда из-за разницы в хитбоксах имело смысл всегда играть за самого маленького персонажа. Если персонажи больше ничем не отличаются, чтобы эльфийка не имела геймплейных преимуществ, часто им делают одинаковые хитбоксы. Например, в шутере Apex Legends персонажи имеют разный размер хитбокса, поэтому те, у кого он меньше, получают повышенный урон; так компенсируется сложность попадания. Для генерации хитбоксов обычно используют готовые решения в 3D-редакторах.

Рис. 26. Визуальный пример хитбоксов

Перейти на страницу:

Все книги серии Российский компьютерный бестселлер. Геймдизайн

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных