Обсуждение участника:Marvel2 (KQvr';yuny rcgvmuntg&Marvel2)
GCF
[править код]Steam использует для размещения игровых файлов некое подобие виртуальной файловой системы. Изначально GCF было сокращением от Grid Cache File[20] (Grid (Решетка) — раннее кодовое имя Steam) Теперь принято считать, что GCF — абривиатура от Game Cache Files. Эти файлы расположены в папке SteamApps. Все игры на основе таких файлов не могут работать без Steam даже при полной распаковке GCF — использование их без Steam возможно только с применением эмуляторов. Использование формата GCF решает несколько задач, но в то же время обладает рядом недостатков. В целом формат GCF удобен для автообновлений и восстановления данных, но только для сохранения оригинальной игры в том виде, в котором её создал разработчик — пользователь не может изменить непосредственно сами файлы игры и внедрить модификацию с изменением характеристик прямо внутрь игры. Также использование gcf-файлов требует распаковки файлов библиотек (dll) и приложений (exe), а также медиа-файлов, что уменьшает свободное место на жёстком диске. Формат GCF основан на использовании модификаций при сохранении оригинальной игры, что упрощает её восстановление, но не даёт возможность изменить базу самой оригинальной игры на свой вкус.
Преимущества: Благодаря своей структуре становиться возможным при необходимости вычислить поврежденные «внутренние» файлы. То есть вместо переустановки игры можно запустить операцию проверки кэша. При нахождении ошибок в файлах, Steam перезакачает верные версии с интернета. Это также облегчает автоматические обновления. Защита от копирования. В результате распаковки файлов, необходимой для взлома игры, возникают частые ошибки связанные с несовершенными алгоритмами распаковки (Пропадающие текстуры, анимации; ошибки скриптов приводящие к отключению AI у NPC) Однако это является преимуществом только для издателей игры — для пользователей это составляет неудобства, например для создателей модов. GCF поддерживает шифрование данных, что делает возможным проведение предварительных загрузок игр. При покупке игры до релиза, на компьютер клиента закачиваются зашифрованные GCF файлы, расшифровка которых возможна только после релиза. Упрощение модификации игры. Если игрок захочет заменить модели или какие-либо другие файлы игры, то достаточно скопировать нужную модель или текстуру на то место в реальной файловой системе, которое занимает заменяемый файл в виртуальной. Тогда Steam будет использовать именно этот файл, а не тот, который находится в GCF. Если потребуется вернуть оригинальные файлы, то вместо переустановки игры нужно удалить лишние. Фактически в GCF содержатся «эталонные» файлы, не поддающиеся изменению, это может использоваться для создания «чистых» серверов. То есть при установке определённой опции sv_pure 1 на сервере игроки смогут использовать только те модели и текстуры, которые «вшиты» в GCF, а локальные файлы при этом не задействуются. Это полезно для предотвращения нечестной игры путем замены текстур противников на более заметные, а моделей окружения на прозрачные, для получения преимущества.
Недостатки: Лишнее место на жёстком диске. Запуск игры невозможен непосредственно из gcf-файла — для запуска игры Steam должен извлечь основные файлы игры. Более того, для игр, использующих один и тот же игровой движок и файл запуска приложения (например Half-Life, Opposing Force и Counter-Strike 1.6) и для разных учётных записей эти файлы распаковываются в отдельные директории, а не в одну общую. Особенно это неудобно для модификации, поскольку замену файлов нужно производить отдельно для каждой игры и каждой учётной записи, то есть создавать лишние копии файлов. Таким образом, на жёстком диске за счёт лишних файлов может быть занят достаточно большой объём памяти, который варьируется от десятков мегабайт (например, распакованные файлы Half-Life 1) и выше (в зависимости от игры). Если в игре используются заранее подготовленные ролики (не на движке игры), то для их воспроизведения видео-файлы также распаковываются (пример — Dark Messiah of Might and Magic, необходимые для распаковки файлы занимают около 900 Мб). В зависимости от количества установленных игр и модов, размер таких «лишних» файлов может превышать даже гигабайты. Усложнение при создании мода с изменением характеристик или при изменении media-файлов на основе самой игры. В случае изменения характеристик (например добавления нового оружия, эффектов и NPC) необходимо изменять файлы библиотек игры — dll. Однако это изменение сохраняется только при запуске через сам файл игры — при запуске через интерфейс Steam изменённые файлы заменяются на оригинальные файлы, созданные разработчиком, что может привести к проблемам в игре или незадействованию модификаций. Аналогично происходит с видео-файлами — все файлы при запуске через Steam заменяются на оригинальные, что делает невозможным изменение или удаление заставки при запуске игры через Steam. Пользователь может создать мод с изменением характеристик или видеозаставок только как отдельный мод, не изменяя базовые файлы, созданные разработчиком. Сложность распаковки файлов кэша игры. Распаковка GCF-файлов не поддерживается клиентом Steam и возможна только с помощью сторонних программ, таких как GCFScape. Поскольку в gcf-файлах применяется технология защиты от копирования, при использовании извлечённых файлов в игре могут возникать ошибки. Это неудобно для модмейкеров, которым зачастую приходится работать с извлечёнными файлами игры для их модификации и тестирования своего мода, а также для пользователей, которые с целью экономии места и ускорения запуска игры [источник?] решили распаковать содержимое gcf-файлов и удалить последние или сделать запуск игры независимым от Steam’a (создать рабочую non-steam версию). Невозможно создать собственный файл или изменить содержимое оригинального файла, поскольку Steam может распознавать и считать за 100%-скачанный только оригинальный файл, созданный Valve. Это неудобно для пользователей, имеющих много игр на одинаковом движке или несколько учётных записей, поскольку производить общую модификацию одновременно для всех игр и учётных записей возможно только при изменении содержимого файла GCF. Даже в случае успешной модификации файлы могут впоследствие замениться на оригинальные после проверки кэша или автоматического обновления.