mmitekk

+357
с 2021

Геймдев, индиразработка, игры.

15 подписчиков
34 подписки

Интересную тему ты поднял. Загрузку и выгрузку объектов на сцене.

Я в свое время очень много времени на это потратил. Даже несколько видосов записывал на эту тему...
У меня RPG в открытом мире и там мне нужно чтобы логика НПС всегда была загружена не зависимо от того, где находится игрок, а все остальное выгружалось при возможности. По итогу сделал так что выгружаются скелетные сетки и статические сетки на персонажах, их анимации, а логика (Behavior Tree или State Tree) остается.

Если кратко, то я создал коллизию для персонажа размером в 10к единиц (возможно 25к - точно не помню). Назовем ее LoadingLevel.
У объектов которые нужно выгружать также нужно создать коллизию - небольшую - чисто для вызова события Overlap. Назовем ее LoadingActor.
Дальше нужно создать 2 канала коллизии специально для загрузки уровня. Канал LoadingLevel назначить на Object Type данной коллизии в 25к. А другой LoadingActor для коллизии тех самых объектам которые будут выгружаться. Все остальные каналы коллизии нужно выставить на ignor - чтобы не было лишних событий и влияния на производительность.

Тут важно что при старте уровня размер коллизии должен был постепенно повышаться, чтобы вызывать Overlap события с объектами на уровне, т.к. если коллизии СРАЗУ задать размер в 25к, то данного события пересечения не будет. Плавность повышения при загрузке или старте игры я реализовал через таймлайн.

Ну и все. А дальше нужно создать события на пересечение и показывать actor при Begin Overlap и скрывать при End Overlap.

Статические сетки на сцене объединил в Packed Level Actors. Тогда, в 2023 году, когда они только появились, я даже не знал что они создают инстанцирование объектов и тем самым повышают производительность. Мне просто нужно было сгруппировать статические сетки.

Packed Level Actor может иметь свою логику. И я сделал так чтобы при вызове события Overlap через коллизию в нем какие-то статические сетки скрывались, а какие-то оставались. Например, если персонаж отходит от дома, я скрываю внутреннее убранство и мелкие объекты - всякие бочки, лестницы и т.п., оставляю лишь стены и крышу, чтобы визуально было видно что объект присутствует. Или вообще можно все скрыть)). Packed Level Actor - это группа сеток, а значит событий overlap будет меньше, чем если бы мы использовали вызов overlap для отдельно взятых объектов.

Что касается твоего поста и твоей задачи.
Рад что ты нашел для себя теги - многие инди разрабы о них даже и не слышали.
Единственное что я бы на твоем месте сделал - отказался от использования Get Actor from Class или Get All Actor from Class. Это очень дорогие по вызову ноды. Движку приходится перебирать все экторы на уровне чтобы отобрать нужные.
Рекомендую посмотреть видео Эпиков по этому поводу:
https://www.youtube.com/watch?v=S2olUc9zcB8

Я бы на твое месте попробовал изучить выгрузку и загрузку уровней по триггеру. Недавно попадалось видео на эту тему на глаза, но найти, к сожалению, не смог. Забей в ютубе - изучи. Там по триггеру в выгружается уровень со всем содержимым. Думаю тебе как раз подойдет).

2

У меня до сих пор Абоба ассоциируется вот с этим боссом 😎

1

А что по итогу выбрал: мирную жизнь или смерть в лучах славы? 😎

1

Atomfall. Только она не польская. Британская. Там и сеттинг британской пасторальной глубинки. Мне понравилось, кстати. Жаль контента мало, а атмосферы - много.

4

Вся эта история с элементами, статусами и воздействиями очень интересна всегда! Многократно бустит геймлейные механики, но и геморроя разработчикам добавляет 😬.

1

Играл. Понравилось. Иммерсивно. Много свободы, но мало контента.

2

Своя инди РПГ в открытом мире и обязательно в стилистике Скайрима и Ведьмака... Это на самом деле миф.

Я тоже так думал. И тоже начал делать свою РПГ в открытом мире. Потому что это любимый жанр.

Но за 4 года в геймдеве я встретил соло разработчиков которые в течение 1-4 лет делают свой Сайлент Хилл, кто-то свой Дарк Соулс, свою Диабло. Кто-то хочет, но пока не осмеливается сделать свою инди ГТА. А кто-то даже сделал своего Макса Пейна, а кто-то свою Зельду.

Поэтому всё зависит от того куда и какими глазами смотреть. Разрабов любых игр любых жанров хватает.

1

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

- Нуу есть парочку моментов. Приберегу на предрелизное время 😄.

1