Redist пакеты Steamworks: что это и зачем нужны¶
Redist-пакеты Steamworks — это наборы сторонних библиотек и компонентов, которые сопровождают установочные файлы игр в Steam и автоматически устанавливаются на компьютер пользователя перед запуском основного приложения. Сокращение «redist» происходит от английского redistributable — «перераспределяемый», то есть компонент, который правообладатель вправе бесплатно распространять вместе со своим программным продуктом.
¶Назначение
Игры, написанные на C++ и использующие DirectX, Visual C++ или другие проприетарные технологии, требуют наличия определённых библиотек в системе. Разработчики не дублируют код этих библиотек внутри своих приложений, а поставляют их отдельными пакетами. При установке игры в Steam клиент автоматически запускает установщики redist-компонентов, если соответствующие библиотеки ещё не присутствуют в системе.
Основные функции redist-пакетов:
- обеспечение совместимости игры с операционной системой пользователя;
- установка компонентов, которые не входят в стандартную поставку Windows;
- унификация окружения для запуска приложения на разных компьютерах.
¶Основные redist-пакеты
В подкаталоге steamapps/common/<название игры>/_CommonRedist (иногда _Redist или __Installer) обычно размещаются следующие компоненты:
¶Microsoft Visual C++ Redistributable
Набор библиотек майкрософт, содержащий компоненты msvcp, vcruntime, concrt и другие. Поставляется в нескольких версиях — 2005, 2008, 2010, 2012, 2013, 2015–2022. Каждая версия существует в двух вариантах — x86 (32-битные) и x64 (64-битные). Игра может требовать несколько версий одновременно, поскольку каждая сборка компилируется под определённый набор библиотек. Отсутствие нужной версии приводит к ошибкам вида «VCRUNTIME140.dll was not found» или «MSVCP140.dll missing».
¶DirectX End-User Runtime
Пакет dxwebsetup.exe или dxsetup.exe устанавливает компоненты DirectX — набора API для работы с графикой и звуком в Windows. В современных версиях Windows 10 и 11 базовые компоненты DirectX уже встроены в систему, но некоторые игры требуют дополнительных библиотек (например, XAudio, XInput, d3dx9_43.dll), которые не поставляются с ОС и устанавливаются через этот redist.
¶.NET Framework
Компонент среды выполнения Microsoft .NET, необходимый для игр, написанных на C# или использующих managed-код. Поставляется в версиях 3.5, 4.0, 4.5, 4.6, 4.7 и 4.8. Установщик dotNetFx40_Full_x86_x64.exe или аналогичный запускается при первом запуске игры.
¶OpenAL
Библиотека кроссплатформенного API для обработки звука. Используется рядом инди-игр и движков (в частности, Ogre3D). Пакет oalinst.exe устанавливает openal32.dll в системную директорию.
¶PhysX
Проприетарный движок физического моделирования от NVIDIA. Поставляется как PhysX-9.13.1220-SystemSoftware.msi или аналогичный установщик. Содержит библиотеки PhysXLoader.dll, nvcuda.dll и связанные компоненты.
¶XNA Framework
Среда выполнения Microsoft XNA, распространявшаяся для игр под Windows и Xbox 360. Пакет xnafx40_redist.msi устанавливает компоненты Microsoft.Xna.Framework.dll и зависимости. Использовался в ряде инди-игр середины 2000-х — начала 2010-х годов.
¶AMD / NVIDIA App SDK
Компоненты вычислительных технологий (OpenCL, CUDA) от производителей видеокарт. Встречаются реже и обычно устанавливаются автоматически вместе с драйверами видеокарты.
¶Как Steam устанавливает redist-пакеты
При установке игры Steam распаковывает содержимое steamapps/common/<название игры> и запускает скрипт installscript.vdf, который определяет, какие redist-компоненты необходимо установить. Пользователь видит окна установщиков с привычным интерфейсом Windows. Если компонент уже установлен, установщик обычно завершается молча или предлагает обновление.
При повторном запуске игры Steam проверяет состояние redist-компонентов через реестр Windows и при необходимости переустанавливает их. Это может происходить после обновления игры или сброса настроек.
¶Ручная установка
Если автоматическая установка redist-пакетов не срабатывает (например, из-за отсутствия прав администратора или сбоя), компоненты можно установить вручную:
- Перейти в папку игры через Steam: ПКМ по игре → «Управление» → «Просмотреть локальные файлы».
- Открыть папку
_CommonRedist(или аналогичную). - Запустить каждый установщик последовательно от имени администратора.
Типичные ошибки, связанные с отсутствием redist-компонентов:
| Ошибка | Отсутствующий компонент |
|---|---|
| «MSVCP140.dll not found» | Visual C++ 2015–2022 |
| «d3dx9_43.dll not found» | DirectX End-User Runtime |
| «XAudio2_7.dll not found» | DirectX June 2010 |
| «OpenAL32.dll not found» | OpenAL |
| «Microsoft.Xna.Framework.dll» | XNA Framework |
¶Особенности
Разработчики не всегда включают все необходимые redist-пакеты в поставку игры. Некоторые компоненты (например, Visual C++ 2008) могут отсутствовать в _CommonRedist, хотя игра их требует — в этом случае пользователю приходится устанавливать их вручную из официальных источников Microsoft.
Также стоит учитывать, что установка redist-пакетов не удаляется при удалении игры из Steam — библиотеки остаются в системе, поскольку они могут использоваться другими приложениями.
Источники:
- Документация Steamworks — partner.steamgames.com
- Microsoft Docs — Visual C++ Redistributable
- DirectX Developer Blog — Microsoft
- NVIDIA Developer — PhysX SDK documentation
- OpenAL Soft — openal.org
