Привет, Хабр! На связи Антон, креативный директор Пиробайта. В последние недели 2023 года в студии решили изучить игровой движок, чтобы сделать небольшое 3D-портфолио к новому году. Но, как и в большинстве игр, без боссов на пути не обошлось. В статье рассказал о первом опыте разработки на Unreal Engine: какие шишки набили и что из этого вышло.

Осторожно, не сбейте волков
Осторожно, не сбейте волков

Немного предыстории

Еще летом мы с ребятами насмотрелись конкурсных сайтов, на одном из которых увидели мини-игру на Unreal Engine. Это игровой движок на С++ от Epic Games. На нем можно создавать игры для большинства операционных систем и платформ.

«Освоив работу с движком, можно легко делать геймификацию наших проектов» — подумали мы. Решили протестировать гипотезу и сделать 3D-портфолио нашей студии.

Для первого проекта взяли такую концепцию: красная тачка (привет фанатам GTA) дрифтует по открытому пространству. По нему расставлены стенды с проектами студии. Когда машина подъезжает к какому-то из них, по нажатию на Enter открывается кейс на сайте.

К самой разработке приступили в начале декабря, справились примерно за 2 недели. 

Гипотеза, с которой начали работу: небольшой проект на игровом движке можно сделать без разработчика

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

В Unreal Engine используется система визуального скриптинга Blueprints. Работает так: прототип игры собирается с помощью составления логических блоков — нодов. Их можно менять местами, настраивать связи и др. То есть игру — от простого кликера до полноценной RPG — можно реализовать без построчного кода.

Работать в Blueprints могут и не программисты. Правда, у дизайнеров на это уйдет больше времени. У нас так и получилось — ресурсов ушло больше, чем планировали. Поэтому к задаче подключили бекэнд-разработчика Алексея, уже знакомого с UE.

Плоская земля, или как мы геймдизайн поднимали

До проекта опыта работы с 3D у Ильи не было. До этого другой дизайнер Артем работал с редактором для 3D-моделирования Spline. Илья же изучал программы для моделирования с нуля по видеоурокам. Параллельно мы по туториалам вникали в работу игрового движка.

Сначала Илья нарисовал скетч уровня в Figma: расположение объектов на полянке. В первом варианте проекты будто лежали на земле. Неудобно было ориентироваться между ними, плюс машине пришлось бы заезжать на них.

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

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

Стенды с проектами, наградами, страницей Пиробайта на Dprofile расположили вкруговую.

Часть 3D-объектов Илья брал из программы для 3D-дизайна SketchUp. Объемные логотипы студии, рейтингов и премий — отрисовал сам в Blender.

Кроме 3D добавили и живых фото наших ребят.
Кроме 3D добавили и живых фото наших ребят.

Кстати, для них эта игра была сюрпризом, они увидели ее 28 декабря.

Выйти из сумрака — еще один босс миссии

Когда мы уже задеплоили сборку и запустили сайт через Tilda, в игре поломались освещение и тени.

Выглядело вот так
Выглядело вот так

Это распространенная проблема при переносе объемных объектов в веб. Алексей решил эту проблему запеканием — переводом текстурных деталей и освещения в статические изображения — текстурные карты. После этого 3D-модели никуда не уедут и будут оптимизированы для использования в реальном времени или визуализации.

«Это был супер-сложный для меня момент в разработке. Если делать еще такие проекты, стоит в будущем уделять внимание UV-развертке, без нее никак. Касается и материалов, и самой структуры проекта»

Алексей, бэкенд-разработчик Пиробайта

И вот мы на деплое! Но и это не финал

В видеоуроке, по которому мы знакомились с Unreal Engine, проект разворачивали на Dropbox. То же сделали мы. И получили битые ссылки.

Около недели проект открывался без проблем, потом ссылка сбрасывалась и переставала работать. Пришлось создавать новую ссылку в Dropbox и снова переносить ее в Tilda.

Для будущих проектов вынесли урок — разворачивать сборки уже на своем сервере.

We are winning, son. Портфолио-игра работает!

В ней можно:

  • подрифтовать по снегу без правил и ограничений скорости;

  • поврезаться в волков;

  • разрушить башню Дженги;

  • рассмотреть фотомоменты жизни студии;

  • разогнаться и взлететь на лестницу (редкое достижение! напишите, у кого получится);

  • познакомиться с нашими кейсами и наградами за них (портфолио как никак)

Нажмите, чтобы поиграться!

Кстати:

  • Чтобы открыть кейс, припаркуйтесь у стенда и нажмите Enter;

  • Если нажать на Tab, переключится вид из машины;

  • Чтобы ездить привычными WASD, включите английскую раскладку.

    Спасибо, что были с нами! Делитесь работами и своим опытом разработки на Unreal Engine. Каким был ваш первый проект, что из этого вынесли?

Встречаемся на страницах Пиробайта:

На нашем сайте;

В телеграм-канале;

Во ВКонтакте.

Комментарии (12)


  1. Zara6502
    11.01.2024 05:44
    +2

    Круть, я за две недели могу только PDF скачать и начать себя уговаривать его почитать )


  1. karpos
    11.01.2024 05:44

    Доброе утро. Что то не грузится совсем. Запуск движка и весит)))


    1. pyrobyte
      11.01.2024 05:44

      Здравствуйте! Просто висит, без ошибок? Попробуйте перезагрузить. Мы перепроверили — все работает.


  1. Devastor87
    11.01.2024 05:44

    Зависает на загрузке движка. Смартфон ОС Android, браузер Chrome


    1. pyrobyte
      11.01.2024 05:44
      +1

      Попробовали — все работает. Возможно, просто соединение слабое. Рекомендуем все-таки попробовать открыть через ПК, там и поиграться с машинкой можно. На Android этого не сделать)


  1. jarkevithwlad
    11.01.2024 05:44

    на андроиде в хроме запустилось, но хочет что бы я нажал F5..

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


    1. pyrobyte
      11.01.2024 05:44
      +1

      Да, F5 — это для рестарта. В остальном учтем пожелания для дальнейших проектов. Спасибо :)


  1. solaris_n
    11.01.2024 05:44
    +1

    Тема сбивания волков и снеговиков не раскрыта....


  1. nicolas_d
    11.01.2024 05:44
    +5

    Поэтому к задаче подключили бекэнд-разработчика Алексея, уже знакомого с UE.

    Вот тут ключевая фраза, как за 2 недели освоить UE. Читерство.


    1. pyrobyte
      11.01.2024 05:44
      +1

      Разработкой сцены занимался дизайнер, который ранее не имел дело с UE. А разработчик помогал доработать логику и устранял проблемы с тенями. Если брать процентное соотношение, то работа Алексея занимала 30% от всего объема.


  1. Dangetsu-PK
    11.01.2024 05:44
    +3

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


  1. iamkisly
    11.01.2024 05:44

    Не разделяю восторгов. Вы за 2 недели собрали сцену из примитивной статики уровня graybox'ов, напихали туда скриптов из howto "как ездить на машинке", это весит монструозные 312 мегабайт и не поддерживает ввод с тача.. хотя не самый убогий экранный джой можно скачать из стора эпиков (хз, в unity например можно).