多模组启动器

0 点赞
魔法门之英雄无敌III-高清版
转载

Это руководство посвящено одной утилитке, которая решает несколько проблем, связанных с игровыми модификациями и оригинальными играми из 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, должно без особых проблем работать на старших системах Работает ТОЛЬКО на 64битной системе! Для 32битных - смотрим исходники, собираем под себя. Установка Лаунчер можно скачать вот отсюда: https://github.com/dimamatik/launcher/releases Рядом выложен его исходный код, если кто заинтересован. Далее, инструкция по установке: Для начала - следует решить, сколько отдельных модификаций будет установлено и входит ли в их число оригинальная игра. Устанавливаем их все. Для примера - я устанавливаю Steam-версию Героев в папку D: Steam steamapps common Heroes of Might & Magic III - HD Edition а версию с модами вот сюда: D: Games HeroesIII Игра может быть любой, как и количество ее модификаций Идем по ссылке, приведенной выше и скачиваем последний релиз лаунчера. Релизы обычно подписаны, как подходящие определенной игре, но при правильной настройке применимы везде. Скачан должен быть .exe файл (название различается в релизах) и файл настроек LauncherConfiguration.ini. Исходные коды скачивать не нужно, если только для эстетического удовольствия... Игру, установленную из Steam, переносим в другую папку поблизости. Например, в D: Steam steamapps common HMMIIIHD В исходную папку перемещаем файл конфигурации и файл лаунчера, которые скачали в предыдущем пункте Следующий шаг - переименовать .exe файл лаунчера так, чтобы Steam принимал его за оригинальный запускаемый файл. Обычно легко догадаться об имени исполняемого файла, например, для Героев это: HOMM3Launcher.exe Если же в игре находятся несколько исполняемых файлов - тот, который запускает клиент Steam можно найти вот в этой базе: https://steamdb.info В разделе конфигурации игры на сайте ищем опции запуска - там и будет название исполняемого файла Далее - стоит настроить файл конфигурации. Открываем его в любом текстовом редакторе. Внутри - несколько секций параметров. General секция, состоит из параметров: [General] #Full path to Steam.exe Steam=C: Program Files (x86) Steam Steam.exe #Full path to Overlay library Overlay=C: Program Files (x86) Steam GameOverlayRenderer.dll #Steam application id AppID=297000 Первый - путь к Steam-клиенту, второй - к библиотеке с функционалом для оверлея Steam. Их легко найти, порывшись в папках на своем компьютере. Следующий параметр - идентификатор игры в Steam. Его можно найти как на https://steamdb.info, так и просто в 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: Steam steamapps common HMMIIIHD HOMM3Launcher.exe #Full path to the current working directory. Mostly like a full path WorkingDirectory=D: Steam steamapps common HMMIIIHD #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: Games HeroesIII HD.exe WorkingDirectory=D: Games HeroesIII RemoveOverlay=0 Save= Backup= Count = 0 FullPath - полный путь до исполняемого файла игры, которая находится в той папке, куда ее переместили. В случае модификации - это будет полный путь до модификации. 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 -fromSteam 0 означает, что для запуска будет использована 0-ая секция с параметрами из файла LauncherConfiguration.ini. Если исходная игра стоит под другим номером - меняем его и здесь Флаг -fromSteam означает, что настраиваемый ярлык - это оригинальный ярлык игры в Библиотеке Steam Следующий шаг - для каждой установленной модификации создать ярлык в клиенте Steam. Для этого воспользуемся кнопкой Добавить игру в левом нижнем углу и ищем исходную папку игры, после чего выбираем файл лаунчера. Важно! Выбираем не запускаемые файлы модификаций, а тот самый лаунчер, что одиноко лежит в папке с игрой, не считая файла конфигурации. Для примера - это D: Steam steamapps common Heroes of Might & Magic III - HD Edition HOMM3Launcher.exe Для каждого ярлыка выбираем тот же самый файл! Различаться они могут только иконками (выбираем их по своему вкусу - от исходной игры или от модифицированной) и параметрами запуска: -launch 1 Где вместо 1 нужно ввести номер модификации в конфигурационном файле. Других флагов вводить не нужно Все готово! Можно запускать!!! Немного о том, как работает Лаунчер Он написан на языке C++, немного коряво, но вполне рабоче. Клиенту Steam не важно, что запускать, он ориентируется лишь на имя файла, чем и пользуется лаунчер. После запуска - он проверяет файл конфигурации и открывает в себе нужную игру. Если в игре работал оверлей и другие функции Steam - они останутся работать, как в оригинальных Героях. Если же не работал - то и не будет (как в модифицированной HD версии) Проблема с оверлеем, повторюсь, часта для игр, использующих какой-либо враппер для запуска, типа dxwind или ddrawcompat или других, затрагивающих библиотеку ddraw.dll. Хотя оверлею Steam этого достаточно, чтобы понять, что он с игрой работать не сможет, он в расстроенных чувствах крашит игру. Одно из решений (нет, отключение оверлея в настройках НЕ ПОМОГАЕТ!) предоставляет этот лаунчер - перед запуском игры он освобождает проблемную библиотеку и переименовывает ее, после запуска - возвращает на место В планах - реализовать сохранение скриншотов. Увы, классика компьютерных игр классически барахлит на современных компьютерах... Другие руководства Здесь можно ознакомиться с другими моими руководствами, решающими "тривиальные" проблемы старых игр: https://steamcommunity.com/sharedfiles/filedetails/?id=632313065 https://steamcommunity.com/sharedfiles/filedetails/?id=1280701368 https://steamcommunity.com/sharedfiles/filedetails/?id=1498141106 https://steamcommunity.com/sharedfiles/filedetails/?id=1258327308 Напоследок Спасибо Olz, у которого не заработал лаунчер и который написал мне. Новая версия (0.4) больше не требует отладочных библиотек Visual Studio для работы