Геймдев, индиразработка, игры.
Видимо, разрабы поняли что этот выбор ни на что не влияет и забили... Решили что незачем дополнительно позориться с тем, что совместно со всем остальным работает через одно место.
Интересную тему ты поднял. Загрузку и выгрузку объектов на сцене.
Я в свое время очень много времени на это потратил. Даже несколько видосов записывал на эту тему...
У меня 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
Я бы на твое месте попробовал изучить выгрузку и загрузку уровней по триггеру. Недавно попадалось видео на эту тему на глаза, но найти, к сожалению, не смог. Забей в ютубе - изучи. Там по триггеру в выгружается уровень со всем содержимым. Думаю тебе как раз подойдет).
У меня до сих пор Абоба ассоциируется вот с этим боссом 😎
А что по итогу выбрал: мирную жизнь или смерть в лучах славы? 😎
Atomfall. Только она не польская. Британская. Там и сеттинг британской пасторальной глубинки. Мне понравилось, кстати. Жаль контента мало, а атмосферы - много.
Вся эта история с элементами, статусами и воздействиями очень интересна всегда! Многократно бустит геймлейные механики, но и геморроя разработчикам добавляет 😬.
Сегун Райден 🥰
Играл. Понравилось. Иммерсивно. Много свободы, но мало контента.
Игра не плохая. Уверенная инди, я бы сказал. Атмосферная и иммерсивная, но контента маловато. Также имеется респавн врагов, что очень раздражает и портит впечатление.