Было бы очень неплохо иметь полную модульную структуру игр. Тебе нужен только русский текст и оригинальная озвучка? Выделяешь пару чекбоксов при установке - и вуаля, лишние озвучки не качаются. Особенно грешат скачиванием кучи ненужных "модулей" японцы. Иногда они умудряются даже пак HD-текстур зашить в основной клиент игры.
Такое уже делала Valve со своими играми на движке Source. Игры имели общие файлы, которые шарили между собой. Но кроме них никто так и не захотел это использовать=(
С четвертым анчартедом (и переизданием трилогии) дело обстоит именно так. Был очень удивлен, когда переключил язык озвучки с русского на английский, а он начал его качать.
Если кому-то интересна техническая сторона вопроса, то во многом на размер игры влияет то, как происходит собственно сама упаковка ресурсов в подавляющем большинстве современных движков. В настоящее время почти все серьезные тайтлы в той или иной мере используют стриминг. Проще говоря игра никогда не загружает все файлы одновременно, только то, что необходимо на данном этапе. В качестве примера подойдет любая open-world игра - непосредственно в памяти сидит только то, что находится рядом с игроком в текущий момент. Очень маловероятно, что каждый участок такой игры неповторим и уникален, скорее всего так или иначе используется схожий набор исходных элементов. Опять же в качестве примера возьмем какого-нибудь базового персонажа-врага. Он использует какие-то текстуры, какой-то меш, звуки возможно. Эти враги присутствуют почти на каждом участке общей карты. Казалось бы, первое что приходит в голову - хранить текстуры отдельно, звук отдельно, меши отдельно и т.д. Всего нужно по одному экземпляру, все логично разделено по типу, класс! Только вот, к сожалению, мы все еще ограничены по скорости загрузки данных жесткими дисками, которые не сильно чтобы выросли в этом плане за последнее время (SSD не в счет, пока их не начнут использовать на консолях, скорее всего ситуация не изменится). Так вот если мы будем хранить данные как я описал выше, то чтобы загрузить очередной участок игры с этим врагом в худшем случае (если он не находится уже в памяти) нам нужно будет отдельно загрузить текстуру, отдельно загрузить меш, отдельно загрузить звук. Если это все хранится в разных местах, то это огромное количество перемещений головки жесткого диска, а это физический обьект и он подчиняется законам физики. Максимально быстрое чтение происходит когда головка движется и читает данные непрерывно, без смены направления. Если наши данные разбросаны по всему диску, то это невозможно. Соответсвенно чтобы удовлетворить запросы стриминга и обеспечить быструю загрузку-подгрузку ресурсов, их пакуют рядом, чтобы весь участок карты можно было загрузить за одну непрерывную операцию чтения (обычно в любой момент времени таких "участков" в памяти находится определенное количество). Это ведет к значительной дубликации данных - на каждом участке карты, где есть этот враг, будет копия ресурса содержащего все необходимые для него текстуры, меши, звуки и т.д. С SSD таких проблем нет, потому что никаких "головок чтения" в них не используется и читать данные можно с любого места без потери производительности. Разумеется, это все обьяснение "на пальцах" и в реальности все как обычно "немного" сложнее и детальнее, но в целом картина думаю ясна.
это работает только на консолях. там действительно на диски записывают файлы рядом, а чтобы оптимизировать пространство добавляют файлы-пустышки. но на ПК и при загрузке игр на жесткий диск такие методы уже не работают. И соотвественно, не используются.
Использую уже пару месяцев, отличная штука. Чем выше степерь сжатия - тем выше нагрузка на CPU. При среднем сжатии и 4 ядерном процессоре разницы в нагрузке практически нет, но экономия места всё равно получается очень значительная (папку Steam сжимает на треть).
У Беседки же всегда текстуры ужаты-пережаты, поэтому издалека все выглядит красиво, а когда вплотную подходишь, что там все страшненькое. Так вот стоить поставить текстуры разрешением выше, чем 512 (как в Скайрим изначально без HD-паков), вес игры вырастает в разы.
Зато вся игра как на ладони, все можно переделать, все изменить. Поэтому у модеров так популярна.
В статье и в комментах не разделяют этапы, а надо. 1)Установщик. Не что не мешает его хорошенько заархивировать. Раньше можно было неплохо тут поработать(впрочем репаки и сейчас есть). Вроде у стима даже виртуальная файловая система этим занимается(но вряд ли особо хорошо). На этом этапе не мешала бы большее внедрение модульности. Мне даром не нужны 4К текстуры и звук 5.1 на японском языке, если я играю на FullHD в наушниках с английской озвучкой. Также на этом этапе можно делать инкрементные патчи. Офк как и в других пунктах тут нужно поддерживать баланс, чтобы скачав 90 МБ пользователь не разахивировал их 3 часа. 2)Установленная игра. В статье упоминается, что текстуры в памяти(имеется ввиду видеокарты) можно сжимать только блочно, но на диски их можно сжимать эффективнее и разахивировать непосредственно перед игрой. Это РАЗНЫЕ этапы. При этом внезапно это может(теоритически, не проверял) УЛУЧШИТЬ время загрузки игры, потому что диски довольно медленные устройства и может быть дольше читать больше данных и сразу использовать их, чем прочитать меньше заархивированных данных и быстро их распаковать.Тем более уже достаточно давно данные с диска можно копировать непосредственно в оперативную память, не задействуя процессор во время передачи(поправьте если ошибаюсь). Опять же модульность также сэкономит кучу места. Также в играх ооочень часто остается большое количество неиспользуемого контента, вырезанные уровни и все такое. 3)В оперативке, в видеопамяти. Статья не про этот этап, но почему то в статье присутствуют аргументы вроде блочного сжатия, которое относится только к этому этапу.
Немалую долю занимает звук. Он должен быть хорошего качества, плюс, если в игре используется формат 5.1, то размер файлов увеличивается. Да и в принципе звуков в современных играх очень много: эффектов, диалогов и музыки.У меня вся коллекция музыки общей длительностью вроде 5 дней 8 часов весит меньше 17 ГБ. Большая часть конечно mp3, но тем профитнее для сравнения - для игрушек можно и ворбис юзать и сжимать с большими артефактами, да и lossless все же не на десятки гигабайт - в игре звуковых эффектов не на дни. На ps1 и вовсе звуки писались миллисекундами и потом из одних и тех же звуков собирались разные мелодии и эффекты. Все весело десятки мегабайт(точно не помню, мб меньше). Вот это оптимизация, а не пальцем в носу ковырять.
В 2005 году текстура была просто текстурой. Теперь у каждого объекта есть диффузная текстура, карта нормалей и карта отражения».Только дифуз текстуры обычно были все разные, а дополнительные могут как содержать сплошные цвета, так и быть сильно похожими на соседей, т.е. хорошо жмутся, а некторые практически не страдают от артефактов сжатия. При этом сейчас есть более эффективные алгоритмы сжатия, чем раньше, тем более на аппаратном уровне.
К сожалению, этому мешают текстуры. Их нельзя сильно сжимать даже на время скачивания, потому что процесс перекодировки изображений очень ресурсоёмкий и должен происходить в студии.Про раскодировку уже выше сказали. Ощущение, что это ответ вырван из контекст или был дан разработчиком на другой вопрос.
Еще можно отметить, что многие вещи мигрировали в общие библиотеки, т.е. теперь это уже не часть (одной) игры, а функционал тот же.
Когда помойка2 с 3ГБ переросла за 10ГБ и стала угрожать заполнить SSD, я решил посмотреть что же там такого - солидная часть занимали именно шмотки.
Не сжимают наверное потому что теперь практически нет ограничений на носители, технический уровень в целом упал, а железо апнулось. Все эти гонновеянья от псевдоэффективных менеджеров "оперативы хватит на что угодно, время разработчика стоит дороже планки памяти и жесткого диска". И главная причина - "скоты итак хавают".
Но в игровой индустрии еще не все так плохо в целом. В ней всегда были и осталются профессионалы с энтузиазмом, даже среди опытных модельеров принято переиспользовать текстуры за что конечно же им большой респект. Гораздо хуже на шлаковых смартосях. Яблоко само по себе шлак, поэтому расскажу про дройд. https://github.com/SimonMarquis/Android-SoundQuickSettings/tree/master/app - простейшее приложение, где-то строк 20 непосредственного кода, вызывает меньше 10 функций системного api(т.е. не реализованы в коде приложухи), а то и вовсе за одну функцию можно посчитать. apk 1,2 МБайта, само приложение 4,29 МБ на хваленном гугловском арт! Сравните с шутером выше с тысячами системных функций, перменных и вычислений в 100 КБайт. А ведь это разные классы устройств - ПК, который всегда был бескомпромисен по железу, и всегда ограниченные смартфоны. Чувствуете кому бы следовало иметь меньше размер? Когда будете скачивать свой любимый фейсбук размером с половину макс пейна припомните кто придумал вам такую чудесную надсистему.
Итог: статья шлак, адекватное сжатие это непаханное поле, разрабы в корпорациях ничерта не делают, мы все умрем под тяжестью 4К текстур и 7.1 звука.
Всегда прикалывали крики про занимаемое место во время криков про графику и музыку. Вы сначала определитесь что нужно. В GTA:SA половину места занимал именно звук всего. Надо что бы игры занимали мало место? Играете в инди с тремя пикселями. Надо красивую графику? Надо готовить много гигов. Всё просто.
Во-первых, через несколько лет высока вероятность что либо гора придет к магомед... Эээ, то есть либо у меня интернет будет, либо я буду у интернета (в другом городе). Во-вторых, я не особо горю желанием перекзжать на 4к, HDR и фпс меня привлекают куда больше. Ну а в-третьих, в самом крайнем случае буду качать игры в два раза дольше. Это не смертельно. Главное что бы они работали, япона мать)))
Только что проверил — перекодирование изображения 4096×4096 в формат DDS с алгоритмом DXT5 занимает 52 секунды (с NVIDIA Texture Tools), на выходе файл размером мегабайт в двадцать. То есть, скажем, если представить, что в игре 10 гигабайт текстур, это плюс семь с лишним часов к установке. Предположим, ставиться будет на многоядерном CPU, в четыре потока, по потоку на ядро, всё равно плюс полтора-два часа. Может быть критично, особенно целиком занятый CPU на всё время установки.
С другой стороны, по идее, можно при желании подключить CUDA, но это уже какое-то колдунство, для инсталлятора-то.
Да уж, раньше жил с 120 гигами на винте и как-то норм было, а щас 10 гигов - это как-будто нет ни что. Прогресса в хрателях данных нет особо при этом. Ещё аккамуляторы в технике тоже без прогресса.
видео можно сильно сжать: сжатие в полторы тысячи раз с помощью кодека H.264 — обычное дело.И прошлый век. HEVC (h265) уже достаточно распространён, чтобы жать видео раза в два лучше при том же качестве.
Ну знаете, когда всего 500 гигабайт на рабоче-учебном компе, любая мало мальски тяжелая игра занимает много места в жизни и значимость её прямо пропорциональна количеству байт)
К сожалению, этому мешают текстуры. Их нельзя сильно сжимать даже на время скачивания, потому что процесс перекодировки изображений очень ресурсоёмкий и должен происходить в студии.Почему? Не понял этот момент. По какой-то причине для текстур нельзя использовать обычное сжатие без потерь типа png? Или сжатие с потерями? Из банального png разжиматся будет с скоростью чтения с диска, даже быстрее
Потому что видеокарта умеет аппаратно разжимать только dxt (сиречь S3TC компрессии), ну и PVRTC для мобильных. Следовательно, текстуры хранятся в пожатом виде прямо в памяти gpu и уже налету разжимаются. Если использовать png (да и любой другой формат) то разжимать будет cpu и в локальной памяти они будут храниться уже незжатые (а это в 4-8 раз повысит требования к памяти gpu, что естественно неприемлемо).
Но хочется ведь ещё и скорость загрузки. У меня терабайтный SSD уже полностью забит играми с стима, смотрел недавно цены на двухтеребайтник по PCIE, 70тр за жёсткий это всё-таки грустно.
1)Та же проблема еще более актуальна для мобильных устройств 2)А начерта тебе тратить деньги еще на терабайтник, если у тебя остальное железо простаивает, вместо того чтобы разархивировать, деньги на ветер. 3)Место лишним не бывает. Те же виртуальные сервера - легко заказываются мощные машинки по сравнительно доступным ценам, но место не часто и до 1 ТБ дотягивает при сильном удорожании. Да и в домашнем компе можно легко ускорить время чтения в полтора раза\повысить надежность подключив рейд. Существует большое количество возможностей использовать свое место, компенсируя другие ресурсы, начиная от локального cdn и раздачей торрента до видеоредакторов с гигабайтами кэша, вычислений и дешифрации(многие алгоритмы медленее считаются, чем читается с жесткого). 4)Это не только твой терабайтник. Это место у разработчика, у стима, место у cdn стима, возможно кэширующего сервера у твоего провайдера, ширина канала между всеми узлами (стим-cdn-твой провайдер-пользователь), оборудование поддерживающее необходимую скорость(от дорогих маршрутизаторов до процессора и оперативки), сам трафик через канал магистральным провайдерам(который значительно дороже чем локальный трафик). А благодаря нашим надзирателям так вскоре еще скоро и хранить трафик провайдерам придется за наш счет. Все это просуммируй и умножь на количество пользователей - влетит в копеечку даже на отдельных этапах. 5)Циферки все растут, мы пока за этим поспеваем, но не исключено, что скоро упремся в пределы.
Ну, когда у тебя на любой тумбочке висит по 200 составных материалов, и озвучены (причём на всех языках) все-все глупости, что говорят нпс, то... неудивительно. Что самое смешное - образовался такой тип игр, где нпс бегают вокруг тебя и постоянно что-то бормочут всю дорогу. По идее это должно создавать вовлечённость, на практике только раздражает и убивает атмосферу, усиливая впечатление суеты и бестолковости происходящего.
Объясните, кто в курсе: почему, если я покупаю игру в ПСН через год после релиза всех патчей, они заставляют меня качать первую версию, а потом и патчи. Что мешает отдавать сразу последнюю пропатченную версию, чтобы я не занимался заменой файлов у себя на консоли?
Всю игру перекомпелировать придётся, а на дисках этого не сделать. Как я понимаю, патчи ("заплатки") не совсем заплатки, они не перезаписывают собой части файлов, а лишь оставляют ссылки на себя. В итоге ОС консоли доходит до места заплатки, видит что с этого места есть прыжок на внешний кусок кода и переходят по нему. В итоге проблемное место просто обходится. Если это так, то индустрия на консолях ещё более костыльно-гнилая, чем представлялась.
А теперь прикиньте сколько весят исходные рабочие проекты таких игр? Та игра над которой Я сейчас работаю в установленном виде весит вроде около 17 гигов, а проект у меня на винте занимает 105! Этаж у них там что терабайтники в компах стоят? Терабайтные ссд?
Всегда думал, что перестали сжимать, потому что распаковка займёт ресурсы процессора, который и так уже нагружен не оптимизированным движком.
И потом, это выгодно всем кроме потребителя. Разработчики обещают более реалистичную графику, производители железа предлагают под неё новые видеокарты.
Если хотите скорости — за это придётся расплачиваться памятью. А учитывая, что говорил Кармак про Haskell, он реально ждём появления терабайтовых оперативок и петабайтовых хардов для табличной прекалькуляции всего и вся (одна из положительных сторон функционального подхода)...
Я бы ещё хотел упомянуть про банальное нежелание оптимизировать ресуры. Как пример, могу привести Dirt Rally и Metal Gear Solid 4: вместо того, чтобы прописать относительное обращение к одному используемому файлу, ПФФФ, да зачем? Мы лучше положим в папку с локацией ВСЁ ЧТО НЕОБХОДИМО, и пофигу что там в других локациях та же текстура, звук или иной файл используется ещё раз 10, лишняя копия не повредит, да и объём диска позволяет не заморачиваться.
Предыдущее поколение: FINAL FANTASY XIII — 57 Гб, видео 30 Гб (52%) Mortal Kombat — 10 Гб, видео 5 Гб (50%) Metal Gear Rising — 25 Гб, видео 17 Гб (68%) Такие же дела у продолжений FF13, у MKX, NieR:Automata... Так что согласен, что сдерживающий фактор - объём дисков консолей.
В Bloodborne вырезанные модели тоже устанавливаются на винт и занимают место, скорее всего. Dota 2 хранит в себе весь платный контент, чтобы ты мог видеть эти крутые шмотки на других во время игры.
Dota 2 хранит в себе весь платный контент, чтобы ты мог видеть эти крутые шмотки на других во время игры.Сжал помойку2 до нуля байт. Это был непростой выбор, но вольво не оставили мне выбора.
Но как накопить на акции интернет провайдера, если все деньги тратишь на интернет-провайдера?
Это же знаменитый чукотский геймер, моё уважение ( и мои соболезнования).
черт, только хотел пошутить про Анадырь, но потом увидел кто автор поста(
чувак, у тебя в стране одни из самых дешовых и быстрых интернетов в мире
Нужно стать интернет провайдером!
Это серьёзная проблема для обладателей медленного интернет-соединения и тех, у кого нет возможности приобрести вместительный HDD.
Непонятно, в чём, собственно, проблема. HDD не сильно дороже некоторых лицензионных игр. А если интернет плохой - всегда можно купить игры на дисках.
Было бы очень неплохо иметь полную модульную структуру игр. Тебе нужен только русский текст и оригинальная озвучка? Выделяешь пару чекбоксов при установке - и вуаля, лишние озвучки не качаются.
Особенно грешат скачиванием кучи ненужных "модулей" японцы. Иногда они умудряются даже пак HD-текстур зашить в основной клиент игры.
Такое уже делала Valve со своими играми на движке Source. Игры имели общие файлы, которые шарили между собой. Но кроме них никто так и не захотел это использовать=(
Так во всех играх blizzard уже много лет
С четвертым анчартедом (и переизданием трилогии) дело обстоит именно так. Был очень удивлен, когда переключил язык озвучки с русского на английский, а он начал его качать.
Microsoft для Xbox уже разрабатывают такую систему (или уже реализовали). На Digital Foundry Был ролик на эту тему.
Комментарий недоступен
торенты)))00
Если кому-то интересна техническая сторона вопроса, то во многом на размер игры влияет то, как происходит собственно сама упаковка ресурсов в подавляющем большинстве современных движков. В настоящее время почти все серьезные тайтлы в той или иной мере используют стриминг. Проще говоря игра никогда не загружает все файлы одновременно, только то, что необходимо на данном этапе. В качестве примера подойдет любая open-world игра - непосредственно в памяти сидит только то, что находится рядом с игроком в текущий момент. Очень маловероятно, что каждый участок такой игры неповторим и уникален, скорее всего так или иначе используется схожий набор исходных элементов. Опять же в качестве примера возьмем какого-нибудь базового персонажа-врага. Он использует какие-то текстуры, какой-то меш, звуки возможно. Эти враги присутствуют почти на каждом участке общей карты. Казалось бы, первое что приходит в голову - хранить текстуры отдельно, звук отдельно, меши отдельно и т.д. Всего нужно по одному экземпляру, все логично разделено по типу, класс! Только вот, к сожалению, мы все еще ограничены по скорости загрузки данных жесткими дисками, которые не сильно чтобы выросли в этом плане за последнее время (SSD не в счет, пока их не начнут использовать на консолях, скорее всего ситуация не изменится). Так вот если мы будем хранить данные как я описал выше, то чтобы загрузить очередной участок игры с этим врагом в худшем случае (если он не находится уже в памяти) нам нужно будет отдельно загрузить текстуру, отдельно загрузить меш, отдельно загрузить звук. Если это все хранится в разных местах, то это огромное количество перемещений головки жесткого диска, а это физический обьект и он подчиняется законам физики. Максимально быстрое чтение происходит когда головка движется и читает данные непрерывно, без смены направления. Если наши данные разбросаны по всему диску, то это невозможно. Соответсвенно чтобы удовлетворить запросы стриминга и обеспечить быструю загрузку-подгрузку ресурсов, их пакуют рядом, чтобы весь участок карты можно было загрузить за одну непрерывную операцию чтения (обычно в любой момент времени таких "участков" в памяти находится определенное количество). Это ведет к значительной дубликации данных - на каждом участке карты, где есть этот враг, будет копия ресурса содержащего все необходимые для него текстуры, меши, звуки и т.д. С SSD таких проблем нет, потому что никаких "головок чтения" в них не используется и читать данные можно с любого места без потери производительности. Разумеется, это все обьяснение "на пальцах" и в реальности все как обычно "немного" сложнее и детальнее, но в целом картина думаю ясна.
Комментарий недоступен
это работает только на консолях. там действительно на диски записывают файлы рядом, а чтобы оптимизировать пространство добавляют файлы-пустышки. но на ПК и при загрузке игр на жесткий диск такие методы уже не работают. И соотвественно, не используются.
https://github.com/ImminentFate/CompactGUI (визуальный интерфейс для compact.exe на десятой винде) может помочь освободить место. Ведьмака он у меня ужал, высвободив почти 8гб, никаких проблем не замечено, может запускаться на секунду дольше стал — это максимум. С Death of Outsider вообще 17гб освобождает, к примеру, вот таблица https://github.com/ImminentFate/CompactGUI/wiki/Compression-Results:-Games
Какие подводные камни?
Использую уже пару месяцев, отличная штука. Чем выше степерь сжатия - тем выше нагрузка на CPU. При среднем сжатии и 4 ядерном процессоре разницы в нагрузке практически нет, но экономия места всё равно получается очень значительная (папку Steam сжимает на треть).
Когда заходит такая пьянка я вспоминаю про этот шутер в 96 килобайт.
https://goo.gl/iCkSJ3
Комментарий недоступен
Готовый скайрим 1.0 в стиме весил 6гб
У Беседки же всегда текстуры ужаты-пережаты, поэтому издалека все выглядит красиво, а когда вплотную подходишь, что там все страшненькое.
Так вот стоить поставить текстуры разрешением выше, чем 512 (как в Скайрим изначально без HD-паков), вес игры вырастает в разы.
Зато вся игра как на ладони, все можно переделать, все изменить. Поэтому у модеров так популярна.
Если я не ошибаюсь, то даже установщик занимал всего 6ГБ и люди в восхищении предвкушали дальнейшее развитие технологии сжатия.
В статье и в комментах не разделяют этапы, а надо.
1)Установщик. Не что не мешает его хорошенько заархивировать. Раньше можно было неплохо тут поработать(впрочем репаки и сейчас есть). Вроде у стима даже виртуальная файловая система этим занимается(но вряд ли особо хорошо). На этом этапе не мешала бы большее внедрение модульности. Мне даром не нужны 4К текстуры и звук 5.1 на японском языке, если я играю на FullHD в наушниках с английской озвучкой. Также на этом этапе можно делать инкрементные патчи. Офк как и в других пунктах тут нужно поддерживать баланс, чтобы скачав 90 МБ пользователь не разахивировал их 3 часа.
2)Установленная игра. В статье упоминается, что текстуры в памяти(имеется ввиду видеокарты) можно сжимать только блочно, но на диски их можно сжимать эффективнее и разахивировать непосредственно перед игрой. Это РАЗНЫЕ этапы. При этом внезапно это может(теоритически, не проверял) УЛУЧШИТЬ время загрузки игры, потому что диски довольно медленные устройства и может быть дольше читать больше данных и сразу использовать их, чем прочитать меньше заархивированных данных и быстро их распаковать.Тем более уже достаточно давно данные с диска можно копировать непосредственно в оперативную память, не задействуя процессор во время передачи(поправьте если ошибаюсь). Опять же модульность также сэкономит кучу места. Также в играх ооочень часто остается большое количество неиспользуемого контента, вырезанные уровни и все такое.
3)В оперативке, в видеопамяти. Статья не про этот этап, но почему то в статье присутствуют аргументы вроде блочного сжатия, которое относится только к этому этапу.
Немалую долю занимает звук. Он должен быть хорошего качества, плюс, если в игре используется формат 5.1, то размер файлов увеличивается. Да и в принципе звуков в современных играх очень много: эффектов, диалогов и музыки.У меня вся коллекция музыки общей длительностью вроде 5 дней 8 часов весит меньше 17 ГБ. Большая часть конечно mp3, но тем профитнее для сравнения - для игрушек можно и ворбис юзать и сжимать с большими артефактами, да и lossless все же не на десятки гигабайт - в игре звуковых эффектов не на дни.
На ps1 и вовсе звуки писались миллисекундами и потом из одних и тех же звуков собирались разные мелодии и эффекты. Все весело десятки мегабайт(точно не помню, мб меньше). Вот это оптимизация, а не пальцем в носу ковырять.
В 2005 году текстура была просто текстурой. Теперь у каждого объекта есть диффузная текстура, карта нормалей и карта отражения».Только дифуз текстуры обычно были все разные, а дополнительные могут как содержать сплошные цвета, так и быть сильно похожими на соседей, т.е. хорошо жмутся, а некторые практически не страдают от артефактов сжатия.
При этом сейчас есть более эффективные алгоритмы сжатия, чем раньше, тем более на аппаратном уровне.
К сожалению, этому мешают текстуры. Их нельзя сильно сжимать даже на время скачивания, потому что процесс перекодировки изображений очень ресурсоёмкий и должен происходить в студии.Про раскодировку уже выше сказали. Ощущение, что это ответ вырван из контекст или был дан разработчиком на другой вопрос.
Еще можно отметить, что многие вещи мигрировали в общие библиотеки, т.е. теперь это уже не часть (одной) игры, а функционал тот же.
Когда помойка2 с 3ГБ переросла за 10ГБ и стала угрожать заполнить SSD, я решил посмотреть что же там такого - солидная часть занимали именно шмотки.
Не сжимают наверное потому что теперь практически нет ограничений на носители, технический уровень в целом упал, а железо апнулось. Все эти гонновеянья от псевдоэффективных менеджеров "оперативы хватит на что угодно, время разработчика стоит дороже планки памяти и жесткого диска". И главная причина - "скоты итак хавают".
Но в игровой индустрии еще не все так плохо в целом. В ней всегда были и осталются профессионалы с энтузиазмом, даже среди опытных модельеров принято переиспользовать текстуры за что конечно же им большой респект.
Гораздо хуже на шлаковых смартосях. Яблоко само по себе шлак, поэтому расскажу про дройд. https://github.com/SimonMarquis/Android-SoundQuickSettings/tree/master/app - простейшее приложение, где-то строк 20 непосредственного кода, вызывает меньше 10 функций системного api(т.е. не реализованы в коде приложухи), а то и вовсе за одну функцию можно посчитать. apk 1,2 МБайта, само приложение 4,29 МБ на хваленном гугловском арт! Сравните с шутером выше с тысячами системных функций, перменных и вычислений в 100 КБайт. А ведь это разные классы устройств - ПК, который всегда был бескомпромисен по железу, и всегда ограниченные смартфоны. Чувствуете кому бы следовало иметь меньше размер? Когда будете скачивать свой любимый фейсбук размером с половину макс пейна припомните кто придумал вам такую чудесную надсистему.
Итог: статья шлак, адекватное сжатие это непаханное поле, разрабы в корпорациях ничерта не делают, мы все умрем под тяжестью 4К текстур и 7.1 звука.
Комментарий недоступен
Зачем и Specular, и Roughness?
А Metallic+S/R+AO пихаются в RGB каналы одной текстуры.
Всегда прикалывали крики про занимаемое место во время криков про графику и музыку. Вы сначала определитесь что нужно. В GTA:SA половину места занимал именно звук всего. Надо что бы игры занимали мало место? Играете в инди с тремя пикселями. Надо красивую графику? Надо готовить много гигов. Всё просто.
факт. текстовые рогалики по 20 мб.
Марк, через несколько лет игры по 100 Гб станут нормой. Как будешь выживать?)
Во-первых, через несколько лет высока вероятность что либо гора придет к магомед... Эээ, то есть либо у меня интернет будет, либо я буду у интернета (в другом городе). Во-вторых, я не особо горю желанием перекзжать на 4к, HDR и фпс меня привлекают куда больше. Ну а в-третьих, в самом крайнем случае буду качать игры в два раза дольше. Это не смертельно. Главное что бы они работали, япона мать)))
На Xbox One X они уже норма. Все эксклюзивы с 4K-патчами по соточке.
Нас уже не будет к тому времени, ну нашего поколения уже не будет.
Их нельзя сильно сжимать даже на время скачивания, потому что процесс перекодировки изображений очень ресурсоёмкий и должен происходить в студии.
Ой все. Ну будет ставиться игра не полчаса, а 40-50 минут.
Только что проверил — перекодирование изображения 4096×4096 в формат DDS с алгоритмом DXT5 занимает 52 секунды (с NVIDIA Texture Tools), на выходе файл размером мегабайт в двадцать. То есть, скажем, если представить, что в игре 10 гигабайт текстур, это плюс семь с лишним часов к установке. Предположим, ставиться будет на многоядерном CPU, в четыре потока, по потоку на ядро, всё равно плюс полтора-два часа. Может быть критично, особенно целиком занятый CPU на всё время установки.
С другой стороны, по идее, можно при желании подключить CUDA, но это уже какое-то колдунство, для инсталлятора-то.
Или 5 часов, если это консоль.
скорее не полчаса, а 3-4 часа.
можно ли с этим что-то поделать.Хард на 4 тб.
Ага, и тормоза. Сейчас игры с SSD тормозят, что там по ходу говорить.
Чем можно набить столько памяти? У меня на пол терабайта диск и на нем обычно 100 гб свободно.
Да уж, раньше жил с 120 гигами на винте и как-то норм было, а щас 10 гигов - это как-будто нет ни что. Прогресса в хрателях данных нет особо при этом.
Ещё аккамуляторы в технике тоже без прогресса.
видео можно сильно сжать: сжатие в полторы тысячи раз с помощью кодека H.264 — обычное дело.И прошлый век. HEVC (h265) уже достаточно распространён, чтобы жать видео раза в два лучше при том же качестве.
Комментарий недоступен
Стоит ли отложить выход игры на месяц ради того, чтобы уменьшить её размер на 20%?
Стоит. Чтобы, в том числе, поправить баги, которые иначе будут лататься патчами с десятками гигов веса, весь этот месяц.
Я думал речь в статье будет о том, что игры занимают много места в нашей жизни и о их значимости =)
Ну знаете, когда всего 500 гигабайт на рабоче-учебном компе, любая мало мальски тяжелая игра занимает много места в жизни и значимость её прямо пропорциональна количеству байт)
Помню как качал wolfenstein no за 3 дня , а прошел за два
Я установил ремастер COD MW1 с диска и офигел, 110гб. Оригинальная игра была ~4гб. BF4 со всеми ДЛС весит столько же. Эт все на PS4
110? Сомневаюсь. У вас скорее всего скачивается с файлами cod iw
BF4 на пека - 73 ГБ.
К сожалению, этому мешают текстуры. Их нельзя сильно сжимать даже на время скачивания, потому что процесс перекодировки изображений очень ресурсоёмкий и должен происходить в студии.Почему? Не понял этот момент. По какой-то причине для текстур нельзя использовать обычное сжатие без потерь типа png? Или сжатие с потерями? Из банального png разжиматся будет с скоростью чтения с диска, даже быстрее
Потому что видеокарта умеет аппаратно разжимать только dxt (сиречь S3TC компрессии), ну и PVRTC для мобильных. Следовательно, текстуры хранятся в пожатом виде прямо в памяти gpu и уже налету разжимаются. Если использовать png (да и любой другой формат) то разжимать будет cpu и в локальной памяти они будут храниться уже незжатые (а это в 4-8 раз повысит требования к памяти gpu, что естественно неприемлемо).
Комментарий удалён модератором
Но хочется ведь ещё и скорость загрузки. У меня терабайтный SSD уже полностью забит играми с стима, смотрел недавно цены на двухтеребайтник по PCIE, 70тр за жёсткий это всё-таки грустно.
1)Та же проблема еще более актуальна для мобильных устройств
2)А начерта тебе тратить деньги еще на терабайтник, если у тебя остальное железо простаивает, вместо того чтобы разархивировать, деньги на ветер.
3)Место лишним не бывает. Те же виртуальные сервера - легко заказываются мощные машинки по сравнительно доступным ценам, но место не часто и до 1 ТБ дотягивает при сильном удорожании. Да и в домашнем компе можно легко ускорить время чтения в полтора раза\повысить надежность подключив рейд. Существует большое количество возможностей использовать свое место, компенсируя другие ресурсы, начиная от локального cdn и раздачей торрента до видеоредакторов с гигабайтами кэша, вычислений и дешифрации(многие алгоритмы медленее считаются, чем читается с жесткого).
4)Это не только твой терабайтник. Это место у разработчика, у стима, место у cdn стима, возможно кэширующего сервера у твоего провайдера, ширина канала между всеми узлами (стим-cdn-твой провайдер-пользователь), оборудование поддерживающее необходимую скорость(от дорогих маршрутизаторов до процессора и оперативки), сам трафик через канал магистральным провайдерам(который значительно дороже чем локальный трафик). А благодаря нашим надзирателям так вскоре еще скоро и хранить трафик провайдерам придется за наш счет. Все это просуммируй и умножь на количество пользователей - влетит в копеечку даже на отдельных этапах.
5)Циферки все растут, мы пока за этим поспеваем, но не исключено, что скоро упремся в пределы.
Комментарий недоступен
Не так плох?.. Серьезно? На тегре мохнатого года?
С какого перепуга 5.1 звук занимает больше места? Моно звуки в 3D окружении раскладываются что на 2, что на 5, что на 10 каналов одинаково :)
"Помимо этого, растёт и сложность самих текстур .... Теперь у каждого объекта есть диффузная текстура, карта нормалей и карта отражения"
Растет сложность материалов, от чего кол-во текстур, а не их "сложность"
Имхо, утверждения в статье слишком обобщенные.
Спасибо, познавательно
Stardew Valley, например, занимает около 500 мегабайт.
Мне до сих пор понять почему. В 1996 игра с примерно таким же графоном умещалась в 48 килобайт спекки.
Музыка, может?
Ну, когда у тебя на любой тумбочке висит по 200 составных материалов, и озвучены (причём на всех языках) все-все глупости, что говорят нпс, то... неудивительно.
Что самое смешное - образовался такой тип игр, где нпс бегают вокруг тебя и постоянно что-то бормочут всю дорогу. По идее это должно создавать вовлечённость, на практике только раздражает и убивает атмосферу, усиливая впечатление суеты и бестолковости происходящего.
Объясните, кто в курсе: почему, если я покупаю игру в ПСН через год после релиза всех патчей, они заставляют меня качать первую версию, а потом и патчи. Что мешает отдавать сразу последнюю пропатченную версию, чтобы я не занимался заменой файлов у себя на консоли?
Всю игру перекомпелировать придётся, а на дисках этого не сделать.
Как я понимаю, патчи ("заплатки") не совсем заплатки, они не перезаписывают собой части файлов, а лишь оставляют ссылки на себя. В итоге ОС консоли доходит до места заплатки, видит что с этого места есть прыжок на внешний кусок кода и переходят по нему. В итоге проблемное место просто обходится.
Если это так, то индустрия на консолях ещё более костыльно-гнилая, чем представлялась.
А теперь прикиньте сколько весят исходные рабочие проекты таких игр? Та игра над которой Я сейчас работаю в установленном виде весит вроде около 17 гигов, а проект у меня на винте занимает 105! Этаж у них там что терабайтники в компах стоят? Терабайтные ссд?
неа, https://www.youtube.com/watch?v=eCz-IixxR_k
Сетевой диск с общей схд и все. Да и зачем ее целиком на каждом компьютере иметь, большинство имеет ту часть над которой работает
Для них терабайтные ссд - это норма.
Всегда думал, что перестали сжимать, потому что распаковка займёт ресурсы процессора, который и так уже нагружен не оптимизированным движком.
И потом, это выгодно всем кроме потребителя. Разработчики обещают более реалистичную графику, производители железа предлагают под неё новые видеокарты.
Косвенно на верность моей теории указывает существенно больший размер игр на приставках. Там нагружать процессор ещё печальней.
Если хотите скорости — за это придётся расплачиваться памятью. А учитывая, что говорил Кармак про Haskell, он реально ждём появления терабайтовых оперативок и петабайтовых хардов для табличной прекалькуляции всего и вся (одна из положительных сторон функционального подхода)...
Что за "табличная прекалькуляция"?
Комментарий недоступен
Новый вов обещает занимать 70гб и как бы это наверняка не предел
)
"у кого нет возможности приобрести вместительный HDD"
Wat?
3,000 Р. стоит на 1 ТБ
Диффуз, нормали и Спек? Чувак ещё на PBR не перешёл
в pbr тоже 3 текстуры.
Я бы ещё хотел упомянуть про банальное нежелание оптимизировать ресуры. Как пример, могу привести Dirt Rally и Metal Gear Solid 4: вместо того, чтобы прописать относительное обращение к одному используемому файлу, ПФФФ, да зачем? Мы лучше положим в папку с локацией ВСЁ ЧТО НЕОБХОДИМО, и пофигу что там в других локациях та же текстура, звук или иной файл используется ещё раз 10, лишняя копия не повредит, да и объём диска позволяет не заморачиваться.
Ох сколько мамкиных технических специалистов в комментариях повылазило!
Все в индустрии работают наверно.
Предыдущее поколение:
FINAL FANTASY XIII — 57 Гб, видео 30 Гб (52%)
Mortal Kombat — 10 Гб, видео 5 Гб (50%)
Metal Gear Rising — 25 Гб, видео 17 Гб (68%)
Такие же дела у продолжений FF13, у MKX, NieR:Automata...
Так что согласен, что сдерживающий фактор - объём дисков консолей.
В Bloodborne вырезанные модели тоже устанавливаются на винт и занимают место, скорее всего.
Dota 2 хранит в себе весь платный контент, чтобы ты мог видеть эти крутые шмотки на других во время игры.
Dota 2 хранит в себе весь платный контент, чтобы ты мог видеть эти крутые шмотки на других во время игры.Сжал помойку2 до нуля байт. Это был непростой выбор, но вольво не оставили мне выбора.