Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 33 1 8
Акак делать этот ваш ворлд стриминг Аноним 14/09/23 Чтв 00:12:17 898478 1
image.png 3037Кб, 1920x1080
1920x1080
Меня всегда интересовала тема создания опен ворлдов, но никогда не было ясно КАК НАХУЙ, каким образом можно иметь миллиарды объектов, целые поля и города на игровой сцене. И тут я узнаю о ворлд стриминге, после этого мне хотелось узнать как можно его реализовать, мне было известно, что принцип примерно таков: Объекты никогда не находятся на сцене до тех пор, пока их не понадобится подгрузить или же наоборот когда они не нужны, то их нужно отгрузить. Мне удалось разобраться с Addressables на юнити, мне казалось "вот оно, теперь я могу делать игровые миры любых размеров", но меня ждал один подводный камень. Во время подгрузки объектов могут происходить фрейм дропы, и так как у меня всё это дело происходило не на ССД это было мягко говоря сильно заметно. Профайлер сообщает о спайках которые происходят из-за Loading.ReadObject в основном потоке, то есть как я предполагаю, основной поток приостанавливается ожидая чтобы подгружаемый объект прочитался с жесткого диска, и так как это происходит опять же медленно, происходят заметные фреймдропы и микростаттеры. И КАК ЭТО БЛЯТЬ ИСПРАВИТЬ?77? Мои догадки падают на то, что тут лишь дело в том, что юнити обрабатывает геймобжекты всегда через основной поток и единственным решеним будет изучать дотс если так, то где можно найти инфы о ворлд стриминге на дотсе с ентити? У меня нихуя не получалось найти по этому поводу.
В этом треде я открываю обсуждение реализации ворлд стриминга в юнити с использованием Addressables, DOTS или иным способом. Если что, уточняю, меня интересует стриминг конкретно моделей, а не тиррейнов
Аноним 14/09/23 Чтв 00:15:32 898481 2
>>898478 (OP)
Юнити не подходит для опенворлдов
/тхреад
Аноним 14/09/23 Чтв 00:17:20 898482 3
>>898481
Я думаю именно поэтому юнетики и решили выкатить дотс, но по нему нет инфы нихуя, он только недавно вышел из превью.
Аноним 14/09/23 Чтв 00:55:33 898507 4
Бамп
Аноним 14/09/23 Чтв 01:34:57 898518 5
Бамп
Аноним 14/09/23 Чтв 02:20:11 898526 6
>>898481
Хуйню несешь. В геншине жесткий опен ворлд и он отлично работает даже на мобилках. В юнтти нету ничего что мешает сделать опен ворлд

>>898478 (OP)
> то есть как я предполагаю, основной поток приостанавливается ожидая чтобы подгружаемый объект прочитался с жесткого диска,
У тебя ассеты должны асинхронно подгружаться. Можешь целые сцены асинхронно грузить
Аноним 14/09/23 Чтв 11:29:01 898632 7
>>898526
>В юнтти нету ничего что мешает сделать опен ворлд

это у них пока недоработочка. надо за каждую попытку open какой нибудь world брать хотя бы цент
Аноним 14/09/23 Чтв 12:40:07 898693 8
>>898478 (OP)
А ты заказывай загрузку заранее и спавнь только когда моделька приехали с диска, через несколько кадров. Все так делают.
Аноним 14/09/23 Чтв 14:00:12 898747 9
Бамп
Аноним 14/09/23 Чтв 16:41:19 898838 10
>>898632
А это идея, брать цент за каждый метр карты.
Мимо ричитела
Аноним 14/09/23 Чтв 17:50:24 898893 11
>>898693
Хочешь сказать, в корутине поставить кулдаун между тем как моделька закончила подгружаться и между тем как моделька должна инстансироваться на сцене.
Аноним 14/09/23 Чтв 18:01:18 898906 12
>>898893
Вроде того. Ты запрашивашь модельку, она приезжает через несколько кадров - и тогда спавнишь. Там конечно есть хорошая пачка подводных камней, но стриминг работает именно так. Кулдаун подразумевает взятую с потолка задержку, тут же ожидание. Моделька приехать может и в том же кадре если уже была загружена.
Аноним 14/09/23 Чтв 18:07:25 898916 13
>>898906
Есть еще варианты с плейсхолдерами, например показывать белый (серый) объект и загружать текстуры позже. Можно и меш, наверное, показывать абстрактный - среднего манекена или домик вместо конкретного персонажа или здания.
Аноним 14/09/23 Чтв 18:30:38 898940 14
>>898893
Какие нах корутины сынок, учи базу
Аноним 14/09/23 Чтв 18:33:09 898942 15
>>898940
Ты в апдейте собрался это делать нахуй?
Аноним 14/09/23 Чтв 18:37:53 898947 16
>>898942
Через асинк авейт
Аноним 14/09/23 Чтв 18:39:05 898950 17
>>898947
Так это это тоже корутина, но асинхронная...
Аноним 14/09/23 Чтв 18:40:48 898952 18
>>898950
Ну лично я делаю такое
async Task StreamAsync()
{
while (true)
{

}
}
Аноним 14/09/23 Чтв 18:42:58 898954 19
>>898952
Это если что метод для чека когда стримить объекты, сами методы для подгруза объектов уже без цикла у меня
Аноним 14/09/23 Чтв 18:53:36 898964 20
>>898952
А смысл цикла, если можно сделать асинк функцию для загрузки конкретного ресурса без всяких циклов. И когда оно будет загружено - заинстансить модельку куда надо.
Аноним 14/09/23 Чтв 19:01:04 898969 21
>>898964
> А смысл цикла
У меня цикл постоянно чекает как далеко находится камера по отношению к каждому записаному трансформ позишену моеделек в скриптейбл обжекте и когда камера находится в пределах дальности прорисовки уже вызывает асинк таск в котором происходит инстансиет асинк подгрузка модельки и применение к ней сохраненной в скриптейбл обжекте трансформ позишена по её названию.
Аноним 14/09/23 Чтв 19:43:08 898995 22
Бамп
Аноним 14/09/23 Чтв 19:48:55 898999 23
>>898969
Ебать ты поехавший.
Аноним 14/09/23 Чтв 21:07:38 899056 24
>>898999
Какие подводные?
Аноним 14/09/23 Чтв 22:43:18 899094 25
Бамп
Аноним 15/09/23 Птн 01:53:52 899155 26
>>898999
Все правильно он делает
Аноним 15/09/23 Птн 04:33:35 899192 27
>>899056
Производительность в пизде.
Аноним 15/09/23 Птн 06:48:55 899198 28
>>899192
Ну хз, делая это асинхронно опять же авейтами вроде даже норм
Аноним 15/09/23 Птн 09:19:10 899213 29
С чего стоит скатываться дотс, особенно по теме ворлд стриминга?
Аноним 15/09/23 Птн 09:20:08 899215 30
>>899213
> Вкатываться в дотс
фикс
Аноним 15/09/23 Птн 13:37:41 899344 31
Бамп
Аноним 15/09/23 Птн 13:52:47 899346 32
>>899213
Эти штуки как бы друг с другом мало связаны.
Аноним 15/09/23 Птн 14:07:15 899348 33
>>899346
Я читаю просто, что ентити могут в параллелизацию, в отличие от дефолтных геймобжектов меня это и заинтересовало. Если делать много заскриптованных объектов тех же неписей, объектов для взаимодействия то это вообще как-бы необходимая штука
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов