Технические особенности
Системные требования
Системные требования, необходимые для использования Steam[66]:
XP, Vista,Windows 7 или Mac OS X версии не менее 10.5.8
512 Мб ОЗУ
Процессор 1 Ггц
1 Гб свободного места на жёстком диске, (минимум 200 мб) для программы и место для загруженных игр
Подключение к интернету (рекомендуется широкополосное соединение)
На данный момент официально поддерживаются только три операционные системы семейства windows: XP, Vista, 7. Ранее Steam был доступен и для операционных систем Windows 98/ME, но в июле 2007 года Valve объявили об окончании поддержки этих систем[67][68]. Так же после крупного обновления, в связи с переходом на Mac OS X, на windows 2000 показывалось предупреждение о скором прекращении поддержки этой ОС, в августе 2010 steam прекратил официально поддерживать windows 2000.
[править]
Контент-сервера
Steam использует набор сетевых протоколов TCP и UDP. Загрузка данных происходит по протоколу TCP. Steam-клиент подключается к так называемым контент-серверам. На данный момент (2008 год) по всему миру находится более двухсот таких серверов. Для ускорения загрузки данные сжимаются. Также Steam-клиент может получать данные с нескольких серверов одновременно, загрузка данных автоматически распределяется между наиболее подходящими серверами. Авторизация Steam, однако, зависит от центрального сервера Valve в Белвью (штат Вашингтон, США).
[править]
Форматы хранения Steam-игр
Файлы игр хранятся в папке «…\корневая_папка_Steam\SteamApps\». Существует два формата: GCF и NCF. GCF используется в основном для игр Valve, в то время как в формате NCF распространяется большинство сторонних игр. Однако, в настоящее время последние игры от Valve (Left 4 Dead, Left 4 Dead 2) также стали распространяться в формате NCF.
Файлы кэша Steam-игр (GCF)
Основная статья: Game Cache File
Steam использует для размещения игровых файлов подобие виртуальной файловой системы. Изначально GCF было сокращением от Grid Cache File[69] (Grid (Решётка) — раннее кодовое имя Steam) Теперь принято считать, что GCF — аббревиатура от Game Cache Files. Эти файлы расположены в папке SteamApps. Все игры на основе таких файлов не могут работать без Steam даже при полной распаковке GCF — использование их без Steam возможно только с применением эмуляторов.
Использование формата GCF решает несколько задач, но в то же время обладает рядом недостатков. В целом формат GCF удобен для автообновлений и восстановления данных, но только для сохранения оригинальной игры в том виде, в котором её создал разработчик — пользователь не может изменить непосредственно сами файлы игры и внедрить модификацию с изменением характеристик прямо внутрь игры. Также использование GCF-файлов требует распаковки файлов библиотек (DLL) и приложений (EXE), а также медиафайлов, что уменьшает свободное место на жёстком диске. Формат GCF основан на использовании модификаций при сохранении оригинальной игры, что упрощает её восстановление, но не даёт возможность изменить базовые файлы игры.
Файлы Steam-игр, не содержащие кэш (NCF)
Файлы NCF (No-Cache File) не содержат игровой кэш, в отличие от формата GCF. Все файлы игры находятся в папке steamapps/common/название игры, а внутри файла NCF содержится только список этих файлов и информация об их контрольной сумме. Эти файлы расположены в папке SteamApps вместе с GCF-файлами и нужны для возможности запуска и обновления игр через Steam, но не являются составной частью игры. Обновления и поиск повреждённых файлов у таких игр проходит сложнее и дольше, чем у файлов GCF. NCF файлы также можно открыть с помощью GCFScape.
[править]
Установка модификаций
Установка модов для сторонних Steam-игр производится методами, предусмотренными разработчиками этих игр. Steam играет важную роль только при установке модов для игр, разработанных Valve. Установку модификаций можно разделить на два типа:
Установка/замена отдельных файлов, таких, как модели, текстуры, карты.
Отдельные модификации (либо с изменением исходного кода, либо с созданием собственной сюжетной кампании)
[править]
Установка отдельных файлов для игры
При добавлении файлов, например новых карт для сетевых игр, необходимо скопировать нужные файлы на соответствующее место. Тогда при запуске игры помимо файлов из GCF будут использоваться и добавленные. При необходимости заменить стандартные модели, текстуры и пр. нужно скопировать новый файл на то место, где хранился бы оригинальный файл, если бы игра была распакована. В таком случае игра будет использовать реальный файл, а не содержимое GCF.
[править]
Установка модов
Движки GoldSource и Source поддерживают установку отдельных модов в любую директорию. Для запуска мода достаточно указать директорию папки с модом в параметре запуска. Однако для появления мода в списке Steam необходимо поместить их в соответствующие папки. Как правило, отдельные модификации устанавливаются двумя способами:
Папка мода помещается непосредственно в папку игры (корневая_папка_Steam\SteamApps\учётная_запись\название_игры)[70]. При этом моды на движке GoldSource появляются в списке Steam, если игра зарегистрирована на аккаунте пользователя. Также в этом случае мод появляется в списке игр во внутриигровом меню «Сменить игру» (по умолчанию меню отключено, но в коде оно присутствует) у игр на обоих движках, однако возможность смены игры сохраняется только у игр на движке GoldSource (при попытке смены игры на Source перезапускается та же игра).
Моды на движке Source на лицензионной версии как правило помещаются в специальную папку (корневая_папка_Steam\SteamApps\SourceMods)[70]. После перезапуска Steam модификация появляется в списке игр. При создании таких модов разработчики указывают, файлы какой игры следует использовать в качестве основы. Если необходимая игра отсутствует на аккаунте, мод в списке не отображается. Запуск мода можно произвести как через Steam, так и через exe-файл игры.
[править]
Запуск игр
Существуют различные способы запуска игр, как напрямую, так и с использованием Steam.
Запуск через собственный exe-файл игры. Этот способ более быстрый, однако если запускается игра на основе GCF, у которой имеются ещё не установленные обновления движка, эти обновления не задействуются. Кроме того, игры на движках GoldSource и Source могут быть запущены таким образом только при запущенном Steam-приложении. Эти игры запускаются соответственно через файлы hl.exe и hl2.exe с указанием параметра «-steam -game папка_с_игрой».
Запуск с использованием Steam. В этом случае Steam-приложение (игра или видеоклип) автоматически дозагружает и обновляет себя при необходимости, а также внутри игры включается Steam Community. Если приложение не установлено, клиент автоматически переходит на страницу его покупки (если игра не зарегистрирована на аккаунте) или включает её скачивание (для купленных и бесплатных игр и видеоклипов). Перед запуском приложений на основе файлов GCF Steam извлекает все необходимые для запуска файлы, после чего запускает сам exe-файл игры с нужными параметрами — это замедляет время запуска, но гарантированно обновляет извлечённые базовые файлы на текущую версию и восстанавливает их в случае повреждения. В случае, если Steam-клиент установлен, но не запущен, при попытке запустить игру с использованием клиента сначала производится его запуск, после чего сразу выполняется запуск нужного приложения. Существует несколько способов запуска через Steam:
Из списка «Мои игры» клиента Steam.
Через файл Steam.exe с параметром -applaunch код_игры.
Через строку интернет-браузера: steam://run/код_игры.
[править]
Steamworks
28 января 2008 года Valve выпустила Steamworks — набор инструментов для разработчиков, позволяющих использовать в играх некоторые возможности Steam: автообновление, сбор игровой статистики, обеспечение мультиплеерных игр голосовым чатом и доступ к возможностям SteamCommunity (таким как система достижений)[71]. Также разработчикам, использующим Steamworks, доступна статистика продаж в реальном времени, автоматический сбор данных о системе при «падении» игры (BugReport), и возможность безопасно проводить публичные бета-тесты, с доступом к игре только на период теста. Первая игра, использующая возможности Steamworks (Audiosurf), была выпущена 15 февраля 2008 года.
[править]
Критика
Steam получил довольно много негативных отзывов от игроков. В основном критика сводится к следующим пунктам:
Обязательное наличие Интернета
Для установки игр, даже купленных в розницу, необходимо подключение к Интернету, и обязательная загрузка обновлений, накопившихся с момента отправки установочного диска в печать, что зачастую требует широкополосного соединения.
Принудительные обновления и сложность использования автономного режима
Автономный режим сводится на нет в таких случаях, как переустановка Windows, переключение на другую операционную систему (например с Windows XP на Vista), перемещение папки со Steam в другую директорию, попытка войти под другим аккаунтом даже если его данные сохранены на компьютере, а также некоторых системных сбоях. В этих случаях происходит сбой регистрационной записи Steam, привязанной к имени аккаунта, версии операционной системы и директории Steam, что вызывает необходимость запустить Steam в интернет-режиме, а это приведёт к неработоспособности игр, к которым вышли обновления, пока эти игры не будут полностью обновлены. Несмотря на то, что в свойствах любой игры можно выбрать пункт «не обновлять автоматически», на практике это означает, что Steam не будет начинать загрузку обновлений автоматически, но при запуске игры начинается обновление. Таким образом, запустить игру без обновления можно только либо напрямую через её exe-файл, либо переключившись в автономный режим. Это очень неудобно для пользователей, играющих через Интернет и имеющих игры, на обновление которых они установили запрет (например одиночные игры), поскольку поиск серверов у мультиплеерных игр Valve возможен только если Steam запущен в интернет-режиме. Поэтому невозможность запуска игры через Steam в случае выхода обновления, даже если у игры установлен запрет на загрузку обновлений, является очень серьёзной недоработкой системы, которая до сих пор не исправлена.
В случае невозможности подключиться к Интернету, программа должна уведомлять об этом пользователя и предлагать перейти в автономный режим. Однако, если прошлый запуск закончился сбоем, Steam выдаёт ошибку, и требует проверки игровых файлов, что приводит к необходимости подключения к Интернету. Кроме того, при первом запуске некоторых игр и приложений (например Source SDK) может потребоваться интернет-соединение и запуск в интернет-режиме.
Следует заметить, что, хотя на дисках со Steam-играми есть напоминание о необходимости наличия подключения к Интернету для установки игры, в нём ничего не говорится о том, что после установки требуется загрузить накопившиеся со времени выпуска дисков обновления, размер которых может составлять сотни мегабайт, использовать для возможности запуска игры отдельный программный клиент, что послужило причиной для критики Steam, в первую очередь со стороны тех игроков, чьё соединение с Интернетом либо слишком медленное, либо слишком дорогое (при оплате по трафику или по времени). Это также является серьёзным неудобством для пользователей, не имеющих постоянного соединения с Интернетом.
Ошибки региональной защиты
Для определения местоположения игрока Steam сверяет IP-адрес компьютера со своей базой данных соответствия IP и стран. В случае, если провайдер клиента начинает использовать новые диапазоны IP-адресов, не принадлежавшие ранее провайдерам СНГ, Steam может отказаться запускать купленные в СНГ игры, пока новые диапазоны адресов не добавят в базу данных[72][73].
Системные требования и старые игры
У Steam есть свои системные требования, и они могут оказаться выше, чем необходимо для запуска некоторых игр. Таким образом, даже Wolfenstein 3D не удастся запустить на компьютере с операционной системой, выпущенной раньше, чем Windows 2000.
Проблемы при загруженности серверов
Возможность авторизации в системе Steam напрямую зависит от сервера Valve в Белвью, а обновление игр от загруженности контент-серверов.
15 декабря 2006 года[74], 21 мая 2008 года и 7 января 2010 года сервер авторизации отключался, в связи с непогодой в Бельвью, в результате чего играть могли только игроки, уже вошедшие в систему или использующие Steam в автономном режиме.
Также очень часто скорость закачки игр может быть очень низкой или вообще отсутствовать даже у пользователей скоростного интернета (например скорость загрузки может колебаться в пределах 0-20 КБ/с при скорости интернет-соединения 1024 КБ/c). Особенно часто это происходит в случае релиза на Steam новой ожидаемой игры, при этом также замедляются сервера активации ключей розничных Steam-игр.
Проблемы проверки целостности игр при сбое или переустановке
После сбоя или переустановки Steam пользователь может вставить в программу ранее скачанные игры. При этом при отсутствии обновлений игра должна сразу становиться готовой к запуску, однако на практике это происходит не всегда. При этом в некоторых случаях не помогает даже проверка файлов или запуск обновления. Иногда игру удаётся запустить, однако её статус при этом не переходит на 100 % — готово, что делает невозможным её запуск в оффлайн-режиме через интерфейс Steam.
Несовместимость с некоторыми программами
Steam не совместим с некоторыми программами. На сайте технической поддержки Steam находится большой список программ (несколько десятков), с которыми могут возникнуть конфликты. Единственное решение проблемы — удалить эти программы из автозагрузки, либо, в некоторых случаях, удалить их вообще. Большая часть списка — различные антивирусы, файрволы, и BitTorrent-клиенты[75].
Региональные ограничения покупки
Некоторые издатели, такие как 2K Games, Atari и Rockstar Games, ограничивают список стран, из которых можно приобрести их игры. В частности поэтому игры данных издателей недоступны для покупки из России. В протест этому в Steam Community была создана группа Rest of World, призывающая снять данные ограничения[76][77]. Впрочем, есть несколько вполне законных способов обойти региональную защиту. Одним из способов является маскировка IP-адреса под IP той страны, где игру можно приобрести, а также запуск Steam через зарубежный прокси-сервер. Также, если у Вас есть знакомый в стране, где можно приобретать игры без ограничений (например США), можно попросить его приобрести игру в качестве подарка и затем подарить её Вам. На игры, купленные в виртуальном магазине Steam, региональная защита не распространяется.
Проблемы с локализованными версиями Steam
Интерфейс Steam переведён на множество языков, однако это тоже вызывает определённые проблемы. Например, игра Call of Duty 4 не запускается, если установлен русский язык в настройках интерфейса Steam. Проблема решается переключением языка на English (Английский) и проверкой целостности кеша игры с последующим обновлением(довольно значительным). При возврате к русскому языку проблема возникает вновь[78].
В игре Left 4 Dead при выходе обновлений для выделенного сервера или SDK могут перезакачиваться не только нужные файлы, но и английская озвучка, при этом она заменяет локализованную и даже процедура проверки кэша не помогает перезакачать локализацию. Данную проблему можно решить либо полной переустановкой игры, либо копированием заранее сохранённых в отдельном месте локализованных файлов. Для предотвращения проблемы в дальнейшем можно установить атрибут «Только чтение» в свойствах папок с локализованными файлами.
Подобная проблема также может возникнуть при переустановке Steam. Например, русскоязычный Half-Life 2: Episode One может не отображаться как готовый к запуску. Обычно решением проблемы является перевод языка игры в настройках на её основной язык (как правило Английский), а затем возврат к нужному языку. При этом игра становится готовой к запуску.
Отсутствие полной локализации для некоторых игр
Локализация поддерживается во всех основных играх, которые требуют обязательной активации через Steam. Тем не менее, у некоторых игр-аддонов к ним локализация может не поддерживаться, если игра основана на GCF-формате. Например, в Half-Life 2: Deathmatch, Garry's mod и других сторонних модах, распространяемых через Steam, персонажи говорят на английском, даже если установлена локализация для Half-Life 2. Проблема решается либо распаковкой игровых файлов локализации и применением соответствующих правок в файле gameinfo.txt, либо применением эмулятора Steam с поддержкой подключения дополнительных GCF-файлов.
Кроме того, большинство игр сторонних производителей, распространяемых через Steam, не содержат локализации и распространяются либо на одном (как правило английском), либо на небольшом количестве языков; при этом игра может иметь локализованную версию в розничном варианте. В этом случае помогает только установка локализации вручную.