Как я разработал roguelike Run Eternal Depths: технические детали и лёгкая генерация подземелий
Привет, SE7EN! Меня зовут Артём, и я 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. Для гоблина и босса я обратился к другому художнику, так как хотел, чтобы эти персонажи выделялись.
-
Я выбрал мрачный стиль, так как именно так я представляю себе подземелья.
-
Для UI картинки нарисовал мой друг, а саму реализацию я выполнил сам.
4. Публикация в Steam
Публикация игры в Steam стала для меня новым опытом. Я впервые выкладывал игру на платформу, и поначалу путался во всех вкладках Steamworks. Однако, благодаря пошаговому списку на сайте Steam, я смог разобраться и завершить процесс.
1. Steam Direct:
o Взял у друзей с уже оформленным девелоперским аккаунтом слот и заполнил все необходимые формы.
2. Страница магазина:
o Подготовил описание, скриншоты и трейлер.
o Графику для страницы я создал в Photoshop, а также использовал нейросети для генерации некоторых элементов.
o Трейлер собрал из нарезки видео с моментов разработки и тестирования прототипов.
3. Тестирование и выпуск:
o После заполнения всех данных и загрузки билда игры, я проверил, что всё работает корректно.
Как только все этапы были завершены, игра стала готова к выпуску.
Создание Run Eternal Depths стало для меня отличной возможностью глубже изучить Unreal Engine и попробовать себя в роли геймдизайнера и разработчика. Я многому научился и уже планирую следующие проекты. Если вам интересно, вы можете добавить игру в вишлист и поддержать меня: ссылка на игру в Steam.
Microsoft начала платить пользователям за запуск Gears of War E-Day
Геймеры раскритиковали PlayStation за коллекционное издание God of War с Лаувей без самой игры в комплекте
Фанаты улучшили ведьмачье чутьё Геральта в The Witcher 3 с помощью модификации
Косплеер воссоздал образ Тартальи из Genshin Impact
Не делайте неигровых персонажей умнее игрока
Журналисты узнали предполагаемую дату выхода Grand Theft Auto VI на ПК
Возрастной рейтинг ESRB указал на скорый выход PEAK для PS5
Экшен Valor Mortis в жанре соулслайк получил высокие оценки от критиков