Знакомство. Часть 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-модели, проджектайлы, логика лифтов, фуникулера и ключа, первичный свет и, самое главное - черновая геометрия уровня, отвечающая требованиям теста.

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

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

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

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

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

Как же больно с нейминга на кириллице.

5
Ответить

У гайдзинов половина комментариев в коде была на кириллице.

1
Ответить

Согласен, но должно же быть что-то прикольное))

Ответить

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

2
Ответить

Делать из кубов уже итоговый арт это ЛА, а не ЛД.
Делать ЛД на кубах, если они функционально - не просто нормально, а выгодно и нужно.

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

Не уверен я что такие ТЗ дает Леста (но фиг знает), однако есть ощущение что автор читал ТЗ наискосок

Ответить

Здесь важно не то, на каком уровне находится человек в тех или иных навыках, а то, с какой скоростью и интересом он готов их постигать. И смысл тестового задания как раз в этом: если ты ухватил самую базу, то остальное нарастится со временем. Что касается конкретно левел-дизайна, то спустя несколько месяцев глубокого изучения вопроса могу определенно сказать, что ААА-студии подходят к нему комплексно: сначала создается черновик из базовых примитивов (происходит соизмерение метрик и игровых механик, собственно работа левел-дизайнера), затем набрасываются базовые пропсы и материалы для определения общего визуала и стиля (здесь подключается художник по окружению), потом накидывают свет (за это отвечает lighting-artist) и в конце происходит полировка мелочей.

Ответить

На работу то взяли или нет?)

1
Ответить