Overview
Это руководство посвящено одной утилитке, которая решает несколько проблем, связанных с игровыми модификациями и оригинальными играми из Steam. Например – как установить на компьютер несколько модифицированных версий Heroes of Might&Magic III, при этом – играть в них через Steam и записывать общее время, проведенное в игре
Еще раз кратко, что оно делает
У вас есть игра в Steam и есть ее любимая модификация от сообщества (ну, или собранная из модов лично) – и вы хотите иметь быстрый доступ к обоим играм через клиент Steam, при этом учитывать общее проведенное время в игре, постить скриншоты в один раздел и решать некоторые другие задачи. Тупиковый вариант решения проблемы – установить две игры и перед запуском вручную менять названия файлов и папок, чтобы клиент Steam подцеплял нужную версию. Лаунчер из этого руководства идет немного другим путем…
Что лаунчер умеет на данный момент:
- Запускать несколько вариантов игры, установленных в разных местах и представлять Steam как одну игру из библиотеки
- Решать проблему с GameOverlayRenderer.dll – когда оверлей Steam не дает запуститься модифицированной игре
- Делает бекап сейвов игры, если включена эта опция
Что в планах добавить:
- Скриншотоделалка
Тестировано на:
- Heroes of Might & Magic III из Steam и HOMMIII HD+ сборке
- Arcanum из Steam и Arcanum Multiverse Edition сборке
- Terraria – тестирование бекапа сейвов
Проверено на Windows 7 64bit, должно без особых проблем работать на старших системах
Установка
Лаунчер можно скачать вот отсюда:
Рядом выложен его исходный код, если кто заинтересован. Далее, инструкция по установке:
- Для начала – следует решить, сколько отдельных модификаций будет установлено и входит ли в их число оригинальная игра. Устанавливаем их все.
Для примера – я устанавливаю Steam-версию Героев в папкуD:SteamsteamappscommonHeroes of Might & Magic III – HD Editionа версию с модами вот сюда:
D:GamesHeroesIIIИгра может быть любой, как и количество ее модификаций
- Идем по ссылке, приведенной выше и скачиваем последний релиз лаунчера. Релизы обычно подписаны, как подходящие определенной игре, но при правильной настройке применимы везде. Скачан должен быть .exe файл (название различается в релизах) и файл настроек LauncherConfiguration.ini. Исходные коды скачивать не нужно, если только для эстетического удовольствия…
- Игру, установленную из Steam, переносим в другую папку поблизости. Например, в
D:SteamsteamappscommonHMMIIIHD
В исходную папку перемещаем файл конфигурации и файл лаунчера, которые скачали в предыдущем пункте
- Следующий шаг – переименовать .exe файл лаунчера так, чтобы Steam принимал его за оригинальный запускаемый файл. Обычно легко догадаться об имени исполняемого файла, например, для Героев это:
HOMM3Launcher.exe
Если же в игре находятся несколько исполняемых файлов – тот, который запускает клиент Steam можно найти вот в этой базе:
В разделе конфигурации игры на сайте ищем опции запуска – там и будет название исполняемого файла
- Далее – стоит настроить файл конфигурации. Открываем его в любом текстовом редакторе. Внутри – несколько секций параметров.
General секция, состоит из параметров:[General] #Full path to Steam.exe Steam=C:Program Files (x86)SteamSteam.exe #Full path to Overlay library Overlay=C:Program Files (x86)SteamGameOverlayRenderer.dll #Steam application id AppID=297000Первый – путь к Steam-клиенту, второй – к библиотеке с функционалом для оверлея Steam. Их легко найти, порывшись в папках на своем компьютере. Следующий параметр – идентификатор игры в Steam. Его можно найти как на [link], так и просто в URL-строке браузера при открытии странички игры в магазине. К примеру, для Героев это 297000.
Все эти параметры стоит поменять в зависимости от того, куда установлен клиент Steam и для какой игры собирается лаунчер - Следующая секция обычно для оригинальной игры из Steam. Все остальные отличаются только номером в названии (0 – оригинал, 1 – первая модификация, 2 – вторая и так далее) и путями до папок:
#Each section name is a number, from 0 to 1024 [0] #Full path to the executable file FullPath=D:SteamsteamappscommonHMMIIIHDHOMM3Launcher.exe #Full path to the current working directory. Mostly like a full path WorkingDirectory=D:SteamsteamappscommonHMMIIIHD #Need to remove steam overlay before launch RemoveOverlay=0 #Full path to the save folder Save= #Full path to the folder with backups Backup= #Count of backups, from 0 (none) to 1024 Count = 0
Для сравнения, приведу следующую секцию параметров для модверсии:
[1] FullPath=D:GamesHeroesIIIHD.exe WorkingDirectory=D:GamesHeroesIII RemoveOverlay=0 Save= Backup= Count = 0FullPath – полный путь до исполняемого файла игры, которая находится в той папке, куда ее переместили. В случае модификации – это будет полный путь до модификации.
WorkingDirectory – текущая директория запуска. Обычно совпадает с той, где лежит .exe файл, указанный в FullPath.
RemoveOverlay – принимает значения 0 (отключено) и 1 (включено). Если при запуске игры возникает ошибка, что игра крашнулась из-за библиотеки GameOverlayRenderer.dll, что типично для старых отмодденых игр, то устанавливаем этот параметр в 1. Во время запуска лаунчер временно уберет проблемную библиотеку, но и оверлей в игре работать не будет (скорее всего, он и так не работал). Для Героев такой проблемы нет, поэтому этот параметр стоит в 0. (Игра, в которой это критично – Arcanum Multiverse Edition)
Count – как много бекапов сейвов следует хранить. Если установить в 0 – бекап работать не будет и параметры Save и Backup не важны. Папка с сейвами копируется при запуске игры в Backup_0000, старые бекапы сдвигаются по номеру, самый старый удаляется
Save – папка, в которой лежат сейвы игры. Следует указать, если выставлен Count больше 0
Backup – отдельная папка для хранения бекапов сейвов.Следует указать, если выставлен Count больше 0
Опять таки, если игра другая или расположение папок иное – меняем параметры под себя. Если хотим иметь несколько модификаций – добавляем секции путем копирования последней и переименовывая их по-порядку - Следующий шаг – настроить запуск лаунчера через клиент Steam. Открываем раздел Библиотеки, переходим в Свойства игры.
В разделе ОбновлениеАвтоматическое обновление устанавливаем значение “Обновлять только перед запуском“. Это гарантирует, что если игра обновится (что вряд ли, относительно этой версии Героев), то можно своевременно переименовать папки и провести обновление, не потеряв лаунчер и настройки
В разделе ОбщиеУстановить параметры запуска прописываем:-launch 0 -fromSteam0 означает, что для запуска будет использована 0-ая секция с параметрами из файла LauncherConfiguration.ini. Если исходная игра стоит под другим номером – меняем его и здесь
Флаг -fromSteam означает, что настраиваемый ярлык – это оригинальный ярлык игры в Библиотеке Steam - Следующий шаг – для каждой установленной модификации создать ярлык в клиенте Steam. Для этого воспользуемся кнопкой Добавить игру в левом нижнем углу и ищем исходную папку игры, после чего выбираем файл лаунчера. Важно! Выбираем не запускаемые файлы модификаций, а тот самый лаунчер, что одиноко лежит в папке с игрой, не считая файла конфигурации. Для примера – это
D:SteamsteamappscommonHeroes of Might & Magic III – HD EditionHOMM3Launcher.exe
Для каждого ярлыка выбираем тот же самый файл! Различаться они могут только иконками (выбираем их по своему вкусу – от исходной игры или от модифицированной) и параметрами запуска:
-launch 1Где вместо 1 нужно ввести номер модификации в конфигурационном файле. Других флагов вводить не нужно
- Все готово! Можно запускать!!!
Немного о том, как работает Лаунчер
Он написан на языке C++, немного коряво, но вполне рабоче. Клиенту Steam не важно, что запускать, он ориентируется лишь на имя файла, чем и пользуется лаунчер. После запуска – он проверяет файл конфигурации и открывает в себе нужную игру. Если в игре работал оверлей и другие функции Steam – они останутся работать, как в оригинальных Героях. Если же не работал – то и не будет (как в модифицированной HD версии)
Проблема с оверлеем, повторюсь, часта для игр, использующих какой-либо враппер для запуска, типа dxwind или ddrawcompat или других, затрагивающих библиотеку ddraw.dll. Хотя оверлею Steam этого достаточно, чтобы понять, что он с игрой работать не сможет, он в расстроенных чувствах крашит игру. Одно из решений (нет, отключение оверлея в настройках НЕ ПОМОГАЕТ!) предоставляет этот лаунчер – перед запуском игры он освобождает проблемную библиотеку и переименовывает ее, после запуска – возвращает на место
В планах – реализовать сохранение скриншотов. Увы, классика компьютерных игр классически барахлит на современных компьютерах…
Другие руководства
Здесь можно ознакомиться с другими моими руководствами, решающими “тривиальные” проблемы старых игр:
Напоследок
Спасибо Olz, у которого не заработал лаунчер и который написал мне. Новая версия (0.4) больше не требует отладочных библиотек Visual Studio для работы