Если кому-нибудь действительно интересно почему так: там скорее всего многократное дублирование одних и тех же текстур и мешей, для быстрого стриминга. Такое сейчас очень много кто делает. На канале GDC есть детальный tech talk от разработчиков спайдермена, например, но вообще эту технику ещё с первого плейстейшна применяют (там правда дублировали на CD а не HDD).
На пальцах: если у вас в следующей зоне встречается 100 новых объектов, которые повторяются в куче других локаций, делать 100 далёких друг от друга чтений слишком долго. С жесткого диска можно быстро читать данные, которые рядом, а случайное чтение может стоить под 20-100мс просто на позиционирование магнитной головки (сильно зависит от диска). С SSD такой проблемы бы не было (почти: читать небольшие кусочки быстрее, чем отдельные байты, т.к. чтение всё равно происходит довольно большими блоками, но это тут не важно).
Поэтому хочется данные положить вместе. Но если какая-то текстура мусорного бака используется и в этой зоне, и ещё в 100 других, то получится что для всех остальных эта текстура лежит не рядом. Но есть простое решение: продублировать все мелкие вещи. Будет случайных чтений не 100, а допустим 5. Уже жить можно.
Вот так игра на 10 Гб превращается на диске в игру на 100Гб.
А если им нужно будет мусорный бак перерисовать с зелёного цвета на чёрный, они пройдутся по 100 папкам и заменят там текстуру? Тогда не удивительно что каждая часть колды разрабатывается по пять лет, а новшеств там с каждым релизом кот наплакал.
Вообще не вкурил нах нужен описанный алгоритм. Раньше делали не для тупых и выглядело всё так: текстура на HDD в отдельном файле или архиве загружается в ОЗУ, потом хранящуюся в ОЗУ текстуру копируют в видеопамять где и натягивают на все нужные модели. Копипаста рулит, и как я вижу никто отдельные текстуры для всех игровых объектов не создаёт. И не нужны большие объёмы видеопамяти т.к. всё нужное динамически подгружается из ОЗУ, а если ОЗУ мало то насилуется HDD. Что за бред имеется под 100 загрузок с диска ОДНОЙ текстуры? Это что попытка оправдать сделанный через жопу процесс загрузки? Так я могу подсказать как ещё тупее сделать - грузите сначала в облако а уже потом в ОЗУ, будет ещё тормознутее! Спасибо конечно за объяснение, но такой дибилизм нужно сначала через мозг прогнать и потом закопать того кто это придумал.
Стандартное приложение "Калькулятор" на Андроиде версии 4 весит 4 кб. Его аналог на версии 9 весит 4.35 Мб. Это в 1087,5 раз больше. Внешних и функциональных отличий не видно.
Если кому-нибудь действительно интересно почему так: там скорее всего многократное дублирование одних и тех же текстур и мешей, для быстрого стриминга. Такое сейчас очень много кто делает. На канале GDC есть детальный tech talk от разработчиков спайдермена, например, но вообще эту технику ещё с первого плейстейшна применяют (там правда дублировали на CD а не HDD).
На пальцах: если у вас в следующей зоне встречается 100 новых объектов, которые повторяются в куче других локаций, делать 100 далёких друг от друга чтений слишком долго. С жесткого диска можно быстро читать данные, которые рядом, а случайное чтение может стоить под 20-100мс просто на позиционирование магнитной головки (сильно зависит от диска). С SSD такой проблемы бы не было (почти: читать небольшие кусочки быстрее, чем отдельные байты, т.к. чтение всё равно происходит довольно большими блоками, но это тут не важно).
Поэтому хочется данные положить вместе. Но если какая-то текстура мусорного бака используется и в этой зоне, и ещё в 100 других, то получится что для всех остальных эта текстура лежит не рядом. Но есть простое решение: продублировать все мелкие вещи. Будет случайных чтений не 100, а допустим 5. Уже жить можно.
Вот так игра на 10 Гб превращается на диске в игру на 100Гб.
Похоже на правду, но на страшную правду.
А если им нужно будет мусорный бак перерисовать с зелёного цвета на чёрный, они пройдутся по 100 папкам и заменят там текстуру?
Тогда не удивительно что каждая часть колды разрабатывается по пять лет, а новшеств там с каждым релизом кот наплакал.
Спасибо, что смог понятно и интересно объяснить этот феномен! Теперь меньше вопросов и претензий будет.
Почему тогда не делают специальные версии для ssd?
Вообще не вкурил нах нужен описанный алгоритм. Раньше делали не для тупых и выглядело всё так: текстура на HDD в отдельном файле или архиве загружается в ОЗУ, потом хранящуюся в ОЗУ текстуру копируют в видеопамять где и натягивают на все нужные модели. Копипаста рулит, и как я вижу никто отдельные текстуры для всех игровых объектов не создаёт. И не нужны большие объёмы видеопамяти т.к. всё нужное динамически подгружается из ОЗУ, а если ОЗУ мало то насилуется HDD.
Что за бред имеется под 100 загрузок с диска ОДНОЙ текстуры? Это что попытка оправдать сделанный через жопу процесс загрузки? Так я могу подсказать как ещё тупее сделать - грузите сначала в облако а уже потом в ОЗУ, будет ещё тормознутее!
Спасибо конечно за объяснение, но такой дибилизм нужно сначала через мозг прогнать и потом закопать того кто это придумал.
Так а какая разница если данные еже в ОЗУ?
Стандартное приложение "Калькулятор" на Андроиде версии 4 весит 4 кб. Его аналог на версии 9 весит 4.35 Мб. Это в 1087,5 раз больше. Внешних и функциональных отличий не видно.
А когда наступит супер-время, где игра видя, что у пользователя pcie ssd не будет заниматься этой хернёй?