Знакомство. Часть 4. О том, как тестовое задание для Лесты позволило изучить движок за 3 дня и 3 ночи

Добрый день, уважаемые читатели!
В предыдущей статье (ссылка ниже) мы остановились "десерте": каким же образом выбирался движок для игрового проекта.

Итак, к 2020 году мне уже было известно, что на рынке правит бал ряд "больших" движков (Unity, Unreal Engine, CryEngine, Godot и др.) и множество "небольших", узконаправленных инструментов (вроде RenPy для визуальных новелл или RPGMaker, "заточенный" на JRPG).

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

  1. Удобство использования. Сюда включается не только понятный интерфейс движка, но и удобство пользования всеми его модулями.
  2. Бесплатность. Здесь подразумевается полная свобода от каких-либо вложений на стадии разработки, вплоть до выпуска готового проекта.
  3. Наличие достаточного количества обучающих материалов. Здесь всё просто - в открытом доступе должны быть ответы на львиную долю возникающих вопросов по использованию всех возможностей движка.

Можно было бы упомянуть и другие критерии, вроде поддержки со стороны разработчиков движка, развитости комьюнити, узнаваемости бренда, но это уже не такие важные аспекты, которые могли бы заметно повлиять на выбор.

Не растягивая каджита за хвост, укажу, что для меня оставалось лишь два варианта, лед и пламя из мира движков: Unity и Unreal.

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

И здесь необходимо сказать, что мои навыки программирования, мягко говоря, слабые. Ну, то есть "Hello World", конечно, смогу вывести, но "с нуля" и без подсказок написать сколь-нибудь серьезную, полновесную программу, пока не могу. В то же время, благодаря наличию образного мышления, понимаю, как именно работают алгоритмы выполнения тех или иных приложений (в т.ч. игровых). И настоящим подарком для меня оказалось наличие так называемого визуального программирования посредством блюпринтов (Blueprints, буквально - чертежи). Это когда на пустом поле выставляешь блоки (ноды), имеющие встроенный алгоритмический функционал и соответствующие входы-выходы для направления логики в нужное русло, и объединяемые "макаронами/проводами" связей.

Примерно так выглядит программирование в Unreal Engine посредством блюпринтов.
Примерно так выглядит программирование в Unreal Engine посредством блюпринтов.

Не отходя далеко подчеркну, что не являюсь противником прочих движков: здесь надо понимать, что это лишь инструмент для достижения целей. Тот же Unity весьма хорош в 2D-играх, обеспечивая лучшую оптимизацию (что немаловажно для мобильных платформ), а также имеет большую сплоченную аудиторию инди-разработчиков из разных стран, что предопределяет превосходство в кастомных туторах на том же YouTube.

Отдельного внимания заслуживает тот факт, что изучение функционала движка для меня оставалось самым крепким орешком. Дважды за 2021 год я пытался его одолеть и дважды это заканчивалось алгоритмом "открыть-поглазеть-закрыть". Но и это было небесполезно, ведь наш мозг обладает чудесным свойством запоминать все сопутствующие мелочи подсознательно, даже если сознание не понимает поступающих от органов чувств сигналов. Это примерно как тренируют сейчас нейросети в машинном обучении: просто "скармливают" Big Data, а нейросеть уже сама вычленяет определенные закономерности.

Так нейросеть видит обучение нашего мозга посредством компьютера
Так нейросеть видит обучение нашего мозга посредством компьютера

И вот настал февраль 2022 года, когда произошло знаменательное событие - ко мне в личку постучался представитель питерской Лесты с предложением пройти тестовое задание на позицию левел-дизайнера. Сказать, что я был удивлен - значит ничего не сказать. Естественно, сначала я проверил своего собеседника на "нефейковость" и, убедившись в этом, приступил к выполнению теста. Чтобы не дублировать информацию, просто приведу результат, записанный специально для собеседования.

Одобренное тестовое задание

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

Таким образом, третий запуск и погружение в Unreal Engine 4 был обеспечен вполне рабочим моментом, который прошел достаточно быстро и дал превосходный результат: был написан с нуля ИИ автоматической турели, сделаны 3d-модели, проджектайлы, логика лифтов, фуникулера и ключа, первичный свет и, самое главное - черновая геометрия уровня, отвечающая требованиям теста.

А дальше всё пошло по накатанной. Сначала "прокачал" тестовую турель, сделав полноценный ассет с полноценной логикой обнаружения, стрельбы, выброса гильз с реалистичными звуками.

Обновленная турель
Обновленная турель

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

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

Модульные ассеты - один из лучших способов оживить проект
Модульные ассеты - один из лучших способов оживить проект
14
34 комментария