Heroes® of Might & Magic® III – HD Edition Guide

Лаунчер для запуска нескольких модов for Heroes of Might & Magic III - HD Edition

Лаунчер для запуска нескольких модов

Overview

Это руководство посвящено одной утилитке, которая решает несколько проблем, связанных с игровыми модификациями и оригинальными играми из Steam. Например – как установить на компьютер несколько модифицированных версий Heroes of Might&Magic III, при этом – играть в них через Steam и записывать общее время, проведенное в игре

Еще раз кратко, что оно делает

У вас есть игра в Steam и есть ее любимая модификация от сообщества (ну, или собранная из модов лично) – и вы хотите иметь быстрый доступ к обоим играм через клиент Steam, при этом учитывать общее проведенное время в игре, постить скриншоты в один раздел и решать некоторые другие задачи. Тупиковый вариант решения проблемы – установить две игры и перед запуском вручную менять названия файлов и папок, чтобы клиент Steam подцеплял нужную версию. Лаунчер из этого руководства идет немного другим путем…

Что лаунчер умеет на данный момент:

  • Запускать несколько вариантов игры, установленных в разных местах и представлять Steam как одну игру из библиотеки
  • Решать проблему с GameOverlayRenderer.dll – когда оверлей Steam не дает запуститься модифицированной игре
  • Делает бекап сейвов игры, если включена эта опция

Что в планах добавить:

  • Скриншотоделалка

Тестировано на:

Проверено на Windows 7 64bit, должно без особых проблем работать на старших системах

Работает ТОЛЬКО на 64битной системе! Для 32битных – смотрим исходники, собираем под себя.

Установка

Лаунчер можно скачать вот отсюда:

Рядом выложен его исходный код, если кто заинтересован. Далее, инструкция по установке:

  1. Для начала – следует решить, сколько отдельных модификаций будет установлено и входит ли в их число оригинальная игра. Устанавливаем их все.
    Для примера – я устанавливаю Steam-версию Героев в папку

    D:SteamsteamappscommonHeroes of Might & Magic III – HD Edition

    а версию с модами вот сюда:

    D:GamesHeroesIII

    Игра может быть любой, как и количество ее модификаций

  2. Идем по ссылке, приведенной выше и скачиваем последний релиз лаунчера. Релизы обычно подписаны, как подходящие определенной игре, но при правильной настройке применимы везде. Скачан должен быть .exe файл (название различается в релизах) и файл настроек LauncherConfiguration.ini. Исходные коды скачивать не нужно, если только для эстетического удовольствия…
  3. Игру, установленную из Steam, переносим в другую папку поблизости. Например, в
    D:SteamsteamappscommonHMMIIIHD

    В исходную папку перемещаем файл конфигурации и файл лаунчера, которые скачали в предыдущем пункте

  4. Следующий шаг – переименовать .exe файл лаунчера так, чтобы Steam принимал его за оригинальный запускаемый файл. Обычно легко догадаться об имени исполняемого файла, например, для Героев это:
    HOMM3Launcher.exe

    Если же в игре находятся несколько исполняемых файлов – тот, который запускает клиент Steam можно найти вот в этой базе:

    В разделе конфигурации игры на сайте ищем опции запуска – там и будет название исполняемого файла

  5. Далее – стоит настроить файл конфигурации. Открываем его в любом текстовом редакторе. Внутри – несколько секций параметров.
    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 и для какой игры собирается лаунчер

  6. Следующая секция обычно для оригинальной игры из 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 = 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
    Опять таки, если игра другая или расположение папок иное – меняем параметры под себя. Если хотим иметь несколько модификаций – добавляем секции путем копирования последней и переименовывая их по-порядку

  7. Следующий шаг – настроить запуск лаунчера через клиент Steam. Открываем раздел Библиотеки, переходим в Свойства игры.
    В разделе ОбновлениеАвтоматическое обновление устанавливаем значение “Обновлять только перед запуском“. Это гарантирует, что если игра обновится (что вряд ли, относительно этой версии Героев), то можно своевременно переименовать папки и провести обновление, не потеряв лаунчер и настройки
    В разделе ОбщиеУстановить параметры запуска прописываем:

    -launch 0 -fromSteam

    0 означает, что для запуска будет использована 0-ая секция с параметрами из файла LauncherConfiguration.ini. Если исходная игра стоит под другим номером – меняем его и здесь
    Флаг -fromSteam означает, что настраиваемый ярлык – это оригинальный ярлык игры в Библиотеке Steam

  8. Следующий шаг – для каждой установленной модификации создать ярлык в клиенте Steam. Для этого воспользуемся кнопкой Добавить игру в левом нижнем углу и ищем исходную папку игры, после чего выбираем файл лаунчера. Важно! Выбираем не запускаемые файлы модификаций, а тот самый лаунчер, что одиноко лежит в папке с игрой, не считая файла конфигурации. Для примера – это
    D:SteamsteamappscommonHeroes of Might & Magic III – HD EditionHOMM3Launcher.exe

    Для каждого ярлыка выбираем тот же самый файл! Различаться они могут только иконками (выбираем их по своему вкусу – от исходной игры или от модифицированной) и параметрами запуска:

    -launch 1

    Где вместо 1 нужно ввести номер модификации в конфигурационном файле. Других флагов вводить не нужно

  9. Все готово! Можно запускать!!!

Немного о том, как работает Лаунчер

Он написан на языке C++, немного коряво, но вполне рабоче. Клиенту Steam не важно, что запускать, он ориентируется лишь на имя файла, чем и пользуется лаунчер. После запуска – он проверяет файл конфигурации и открывает в себе нужную игру. Если в игре работал оверлей и другие функции Steam – они останутся работать, как в оригинальных Героях. Если же не работал – то и не будет (как в модифицированной HD версии)

Проблема с оверлеем, повторюсь, часта для игр, использующих какой-либо враппер для запуска, типа dxwind или ddrawcompat или других, затрагивающих библиотеку ddraw.dll. Хотя оверлею Steam этого достаточно, чтобы понять, что он с игрой работать не сможет, он в расстроенных чувствах крашит игру. Одно из решений (нет, отключение оверлея в настройках НЕ ПОМОГАЕТ!) предоставляет этот лаунчер – перед запуском игры он освобождает проблемную библиотеку и переименовывает ее, после запуска – возвращает на место

В планах – реализовать сохранение скриншотов. Увы, классика компьютерных игр классически барахлит на современных компьютерах…

Другие руководства

Здесь можно ознакомиться с другими моими руководствами, решающими “тривиальные” проблемы старых игр:

[link]
[link]
[link]
[link]

Напоследок

Спасибо Olz, у которого не заработал лаунчер и который написал мне. Новая версия (0.4) больше не требует отладочных библиотек Visual Studio для работы

SteamSolo.com