Знакомство. Часть 2. Системный подход к обучению геймдеву

Первая серьезная Game-Ready модель. 3ds Max 2021, 2021 год.

С наступлением "ковидных" времен наиболее очевидным стало преимущество работы в индивидуальном формате. Слава Богу, фриланс-опыт позволил достаточно быстро начать осваивать все необходимые для разработки современной игры технологий. Одним из самых полезных ресурсов для обучения по сей день остается YouTube с бесчисленным количеством авторов "в теме". И здесь весьма важным является знание английского языка, на котором вещают и индусы, и западноевропейцы и даже американцы. Смысл в том, что передовое понимание IT невозможно без этого языка, так что он является обязательным к изучению.

Вспоминая, как в конце 1990-х надо было "доставать" программные продукты и туторы чуть ли из под полы, сегодня остается благодарить Всевышнего за развитый и дешевый интернет, а также большой выбор путей решения одной и той же задачи хоть в программировании, хоть в моделировании. Шутка ли: "движок" Unreal образца "нулевых", за который нужно было отдать несколько сот тысяч долларов, и не обладавший и сотой доли современного функционала, сейчас бесплатен и окружен "пачкой" других бесплатных программных продуктов (да-да, Блендер тоже бесплатный, за что спасибо тем же "Эпикам").

Дорожный конус. 3ds Max 2021, Substance Painter 7, 2021 год.
Дорожный конус. 3ds Max 2021, Substance Painter 7, 2021 год.

Итак, базисом обучения геймдеву послужили олдовые знания пакетов 3d-моделирования, что предопределило целевую функцию - создание трехмерной игры. А это, в свою очередь, предопределило выбор в пользу "движка" Unreal Engine 4. Вишенкой же на этом торте послужили блупринты: система нодового программирования, ибо погружаться в полноценное ООП со знаниями синтаксиса и морфологии С++ не хотелось (и не было бы времени).
И сразу купируя возможные возражения о неоптимальности разработки игры исключительно блупринтами парирую следующим образом: во-первых, после общения со спецами по движку и языку программирования пришло понимание, что для инди-проекта, в котором не будет множества хардкорных интеллектуальных систем вроде продвинутого AI, симуляции жизни и прочих прелестей ААА-проектов, вполне годная и даже более предпочтительная тема делать всё силами блупринтов; во-вторых, есть ряд проектов, уже выпущенных в "Стиме" которые вполне годно работают, не вызывая никаких отрицательных эмоций по поводу оптимизации и адекватности работы игры (из последнего примера: игра Gravulse, выпущенная нашим соотечественником).

Для создания годного контента было решено полностью освоить пайплайны разработки ассетов игры. Так, в случае наиболее важных и заметных 3d-моделей придерживаюсь комбинированного подхода: часть делается в упрощенном формате (в основном -- декорации, неигровые элементы), другая часть -- с полноценным ААА-пайплайном (концепт, сбор рефов, запекание нормалей с хайполи на лоуполи и т.п.). Это должно, с одной стороны, обеспечить хорошее качество картинки при экономии времени разработки игры в целом.

То же касается разработки звукового оформления: например, турель в игре не только имеет множество разных звуковых эффектов стрельбы, а также падения гильз, но и содержит функцию естественного распределения звука в пространстве соответствующей настройкой звукового ассета в "движке".

Турель, первый полноценный игровой ассет с готовой логикой в "движке". 3ds Max 2021, Substance Painter 7, Unreal Engine 4.27, 2022 год.
Турель, первый полноценный игровой ассет с готовой логикой в "движке". 3ds Max 2021, Substance Painter 7, Unreal Engine 4.27, 2022 год.

Системный подход в обучении геймдеву предполагает полноценное понимание всех аспектов работы любого игрового элемента. Например, в процессе создания модели "Хаммера" изначально не было представления, что из себя этот "Хаммер" должен представлять как игровая сущность. Если это декорация, то достаточно сделать модельку с PBR-материалами и экспортировать в "движок". Но если игрок им может управлять, то это уже предполагает соответствующую настройку уже на стадии 3d-моделирования, причем в зависимости от тех инструментов "движка", которыми он будет настраиваться (если это стандартный компонент транспорта, то надо его верно ориентировать по осям координат, сделать настройку колес; если это самодельный блюпринт, то стоит все движущиеся части экспортировать отдельно по частям с соблюдением пивотов).
На первый взгляд всё кажется запутанным и сложным, но при первых же опытах работы в Unreal Engine с экспортом несложных объектов (в моем случае это были бочки, дорожные пропсы), "баловством" с встроенной физикой приходит осознание, как и что должно быть в игре.

Моделирование оптимизированных игровых моделей. 3ds Max 2021, 2021 год.
Моделирование оптимизированных игровых моделей. 3ds Max 2021, 2021 год.

Помимо прочего, системный подход самой разработки предполагает постоянное соблюдение баланса, например, между очень сочной и насыщенной картинкой и достаточным количеством кадров в секунду (fps). И здесь крайне важно изучить ряд тем, которые позволяют сохраняя относительное качество кадра, повысить производительность игры многократно!

Еще до того, как узнал о возможности Unreal Engine автоматически настраивать LODы, постарался сделать это самостоятельно. Ничего сложного нет, но трудозатраты и затраты времени достаточно ощутимы. И здесь тоже большую часть можно отдать на откуп "движку", делая ручную оптимизацию только для самых важных моделей (персонаж, оружие, ключевые противники и пропсы).

Другой важной составляющей оптимизации является работа со светом и тенями. И здесь тоже можно всецело положиться на инструменты движка: крутилками/вертелками настраивая нужный вариант любого источника света.

Много памяти забирают PBR-материалы, так что стоит внимательно их использовать. Здесь на помощь приходят атласы, тримы на стадии текстурирования готовых моделей, а также создание и настройка материалов в самом "движке". Очень помогает переиспользование (реюз) готовых ассетов, но это тоже надо уметь правильно делать: одни и те же камни сразу бросаются в глаза, если они лежат одинаково недалеко друг от друга. Однако, работая с масштабированием, поворотами и комбинированием объектов, можно добиться потрясающих результатов.

Звуки и саундтреки в wav-формате вполне могут "скушать" оперативную память. Выход: переформатировать всё, что звучит в ogg-формат и стараться все обрезать на стадии монтажа. И, как в случае с ассетами, звуки тоже можно и нужно комбинировать, настраивать.

Множество материалов, в т.ч. учебного характера опубликовано в группе разработки игры ВК. Можно подписаться и следить за ходом работ, и даже ставить лайки!

77
Начать дискуссию