технические аспекты и простая генерация подземелий / Хабр

технические аспекты и простая генерация подземелий / Хабр

Здравствуйте, Хабр! Я — Артём, опытный 3D-моделлер, работающий с 3ds Max уже много лет. Недавно я решил углубиться в разработку игр и завершил курс по управлению игровыми проектами в Высшей школе Бизнеса ВШЭ. Это помогло систематизировать мои знания и подойти к созданию игр более осознанно. В рамках обучения и экспериментов с использованием Unreal Engine я разработал игру Run Eternal Depths — roguelike с процедурной генерацией подземелий. Она уже доступна для добавления в список желаемого на Steam, а её релиз запланирован на 21 марта. В этой статье я поделюсь техническими аспектами разработки, в том числе моим подходом к генерации подземелий.

1. Идея и запуск проекта

Изначально Run Eternal Depths задумывалась как экспериментальный проект для тестирования процедурной генерации подземелий. Мне предстояло внедрить эту механику для другого проекта, но я решил сделать это в отдельном проекте, чтобы не подвергать риску основной. Со временем проект трансформировался в полноценный roguelike, сосредоточенный на исследовании подземелий.

2. Технические аспекты разработки

Инструментарий и движок

  • Unreal Engine 5: Я выбрал этот движок из-за его мощных возможностей для работы с 3D-графикой и гибкости в настройке логики.

  • Blueprints: Поскольку я не программист, я использовал визуальное программирование для реализации механик. Это давало возможность быстро прототипировать и проверять идеи.

  • 3ds Max: Этот инструмент я применял для создания большинства 3D-моделей (кроме гоблина и босса, которых сделал другой художник). Я уже много лет работаю с 3ds Max и это мой основной инструмент для моделирования.

Процедурная генерация подземелий

Одной из ключевых задач было создание системы процедурной генерации подземелий. Я изучил, как это делают другие разработчики, но предпочёл разработать свой подход, который, хоть и прост, оказался весьма эффективным.

  • Алгоритм генерации:

    • Я использовал заранее подготовленные комнаты и коридоры, у каждого из которых предусмотрены входы и выходы.

    • На каждом выходе комнаты я устанавливал Actor Component Arrow (это оказалось очень удобно, так как его легко использовать в Blueprints).

    • Затем я проходил через массив всех Arrow и, если возможно, создавал следующую комнату или коридор. В противном случае я размещал груду камней, как будто произошёл обрушение.

    • Этот процесс продолжается до достижения заданного количества комнат.

  • Преимущества метода:

    • Простота: отсутствует необходимость разработки сложных алгоритмов.

    • Гибкость: легко добавлять новые типы комнат и коридоров с разным наполнением.

    • Эффективность: благодаря использованию актёров, помещения автоматически выгружаются из памяти, когда игрок их не видит, что экономит ресурсы.

  • Текстурирование:

Боевая система

  • Я разработал простую боевую систему, используя Animation Blueprints и Hitboxes.

  • У игрока имеется меч для ближнего боя и умение метать фаерболы.

  • Враги управляются с помощью AI Controller для навигации и атак. Я настроил поведение врагов так, чтобы они атаковали игрока только в зоне видимости.

3. Художественный стиль и ассеты

  • Большую часть 3D-моделей я создал самостоятельно в 3ds Max. Для гоблина и босса я обратился к другому художнику, так как хотел, чтобы эти персонажи выделялись.

  • Я выбрал тёмный стиль, так как именно так я представляю себе подземелья.

  • Изображения для интерфейса нарисовал мой друг, а их реализацию я взял на себя.

4. Публикация в Steam

Публикация игры в Steam стала для меня новым вызовом. Это был мой первый опыт выкладки игры на платформу, и я сначала путался во всех вкладках Steamworks. Тем не менее, пошаговое руководство на сайте Steam помогло мне разобраться и успешно завершить процесс.

1. Steam Direct:

o Взял у друзей слот с уже оформленным девелоперским аккаунтом и завершил все необходимые формы.

2. Страница магазина:

o Подготовил описание, скриншоты и трейлер.

o Графику для страницы я создал в Photoshop, а также использовал нейросети для генерации некоторых элементов.

o Собрал трейлер из нарезки моментов разработки и тестирования прототипов.

3. Тестирование и выпуск:

o После заполнения всех данных и загрузки билда игры, я проверил, что всё работает корректно.

Когда все этапы были завершены, игра была готова к выпуску.

Создание Run Eternal Depths подарило мне замечательную возможность глубже изучить Unreal Engine и попробовать себя в роли геймдизайнера и разработчика. Я многому научился и уже планирую следующие проекты. Если вам интересно, вы можете добавить игру в список желаемого и поддержать меня: ссылка на игру в Steam.

Source