Мой ранний наивняк. В замшелом 1997 не существовало слова "мод". Вместо него использовались "хак" и "примочка".
Кроме того, производители игр по непонятным причинам негативно относились к моддерам, несмотря на подогрев
интереса к исходной продукции.
Как мы хакнули Panzer General
По танку вдарила болванка
Вот-вот рванет боекомплект
<строки из песни>
Если вы читали PC-Review N23 то, возможно, видели и мою
статью по поводу дискриминации советской техники в вышеупомянутой
стратегической игре фирмы Strategic Simulations inc. Впрочем это
обычное положение дел, и даже было бы странно, если бы американцы
перестали завышать свою роль во Второй Мировой и вспомнили бы, кто
уничтожил 75% немецкой техники и кто взял Берлин.
Выпустив два up-date (версии 1.1 и 1.2) для PG, SSI
ликвидировала далеко не все многочисленные баги: ввела ненулевую
soft attack для британской самоходки Archer и позволив US Brige Eng
выполнять свою главную функцию - наводить мосты через реки.
Исправление остальных и устранение несправедливостей фирма оставила
на мою, и без того тяжелую долю.
Задетый за живое (вот ведь ура-патриот!), я, после написания
того опуса, не бросил эту тему. Проштудировав кучу материалов по
истории военной техники я, со слабой надеждой, начал искать файл в PG,
в котором содержатся данные об этой самой технике. И нашел его на
удивление просто - panzequip.eqp . На каждую unit в нем отводится 50
байт, почти каждый из которых отвечает за одно свойств. На изменение
некоторых байт программа не реагирует, пару байт менять вообще нельзя
- зависнет. Размер .eqp файла не кратен пятидесяти - в первых двух
байтах хранится информация о количестве единиц.
По натуре своей я сторонник справедливых решений. Начав это
дело, я отредактировал некоторое количество зарубежных единиц, сверяя
каждое изменение с данными по исторической военной технике.
Так что вопрос об устранении несправедливости решился
довольно просто, но чем дальше в лес - тем больше хочется, и я
задумал добавить дополнительные боевые единицы. Возможно некоторые
российские (и СНГвские) игроки обратили внимание на то, что в игре
представлены советские боевые единицы преимущественно относящиеся к
середине войны. Не представлены танки ИС-3 и Т-44, истребитель Як-3,
конца ВОВ; бомбер Су-2 и танк Т-26 - устаревшие, но многочисленные к
началу войны. В то же время, американские и особенно немецкие
танчики/самолетики не обижены (ха, американцы сделали игру о немецком
генерале). Первая попытка добавить unit закончилась полным неуспехом
(хотя при увеличенном panzequp.eqp игра играть-играла [калабур-с], но
новые единицы не появлялись).
Пришлось ограничится некоторым усилением атак для советских
самолетов, танков и противотанковых пушек (не от балды, конечно).
По пути я скорректировал - предмет моей особенной гордости - ошибку в
программе, которая не позволяла электронному противнику атаковать
единицы с минимальной ценой - 12 очков престижа (немецкий танк Pz.Ia
и итальянскую самоходку Sem L-47). По всей видимости, увеличение цены
позволило программе воспринимать их как реального противника и
достойную цель.
Еще я исправил названия нескольких единиц (наш истребитель
La-3 -> LaGG-3; все немецкие истребители танков, начинающиеся с
Jadg.. -> Jagd..). Так я удлинил некоторые названия: добавив Stuka для
Ju87, Los для PZL P37 и т.п.
В сопроводительном тексте к исправленному panzequp.eqp
(поскольку имелась возможность для размещения в американской службе
CompuServe, я использовал English) я сообщил о проведенных
изменениях, их причинах, а также о желании, но незнании - как добавить
с десяток новых единиц. Запаковав два файла (базу eqp +
сопроводительный тектст) в архив PG-Real (излишней скромностью не
страдаю) я загрузил его в CompuServe GAMERS форум, раздел стратегии.
Через некоторое время я получил e-mail-послание от Hrodbern
Riemersma (Голландия), в котором он представился и сообщил, что
вторая серия игры - Allied General - содержит те же боевые единицы,
плюс несколько дополнительных. Обрадованный (это был первый отклик
на мой upload), в ответе, представившись по всей форме, я попросил
выслать panzequp.eqp от AG. Завязалась оживленная переписка между
двумя фанатиками стратегии; мы обменялись взаимополезными данными о
назначении байт в panzequp.eqp; я получил нужный файл и
проанализировал отличия между единицами PG и AG. Результаты меня
обрадовали - вероятно, осознав свои ошибки, заокеанские программеры в
новом варианте игры увеличили (правда, недостаточно) силу советских
танков. Значит, правильным путем иду я, товарищ! И то - как "эти
русские" смогли выиграть войну с такой техникой? Ах да, настоящая
война началась в пресловутый D-day, а чем три года занималась красная
армия перед этим эпохальным событием - непонятно. Кстати, Hrodbern
подтвердил мои подозрения - да, американцы дают своим войскам фору в
сценариях и в силе единиц.
Основное отличие .eqp файла AG от соответствующего PG файла -
дополнительные единицы (финские войска, долгожданные советские
гвардейцы, итальянские парашютисты, немецкий фолькштурм, британский
anzac), что определило увеличение размера. Я попробовал добавить пару
новых танков (разумеется, увеличив первый байт .eqp файла), но не
увидел их в меню покупок, хотя их можно было назначить как стартовые
войска редактором сценариев PzMapEd, найденным в том же форуме
CompuServe. То есть они реально появились в базе, но купить их было
нельзя.
(* Лирическое отступление BEGIN
В игре Steel Panthers этой же фирмы SSI положение
противоположное. Добавленные в базу боевые единицы тут же появляются
в меню покупок и изменения у существующих отражаются то же, но в
начале "исторического" сценария отредактированные units не всегда
меняют свойства. О достоверности свойств единиц: в SP сила огня танка
основана на калибре пушки и длине ствола, эти данные в базе в
основном верны, зато советские танки обижены другим способом -
занижена характеристика fire control, отвечающая за точность огня.
Конечно, немцы имели знаменитые цейсовские прицелы, но "наши"
дискриминированы уж слишком сильно. Также лихие американские ребята
практически не снабдили советские танки радио, отступив, опять же,
от светлой истины. Наконец, сфотографирована СУ-37 (опытная
самоходка) и названа СУ-45 (выпущена тоже в одном экземпляре); а
игрок может набрать армию СУ-45. Я лично, среди прочих изменений,
заменил ее на реально выпускавшийся танк Т-44.
Лирическое отступление END *)
И тут мне на помощь опять пришел Hrodbern - он
профессиональный программер. Целый меясяц анализировав главный файл
игры - panzer.exe, размер более 800 кило - он локализовал в нем
область, содержащюю данные для таблиц Purchase Categorias (разделы
покупок для разных видов оружия разных стран). Кроме этого, он
создал утилиту PCS для сортировки этих данных по странам и
категориям, соновываясь на базе .eqp . Таким образом, попутно были
исправлены такие баги как невозможность купить американские
разведовательные машины M8 Greyhood и M20; стратегический бомбер Пе-8
перемещен из тактических (а британская самоходка Cromvel mk.IV из
танков) на правильное место. После упорядочения PCS переписывает ту
самую область в panzer.exe - и можно покупать новые единицы!
Увеличился ли объем екзешника? Нет, а то бы он не работал, в
натуре. А куда же тогда добавлены ссылки на дополнительные единицы? Ха,
SSI сама оставила лазейку - по непонятной причине отведено место для
укреплений, хотя их и нельзя покупать. Это место и заполнено новыми
units.
Я, не мешкая, добавил к моему исправленному panzequp.eqp
новые единицы, включая новые из AG - для совместимости. Тут
выяснилось - а этого и надо было ожидать - что добавлять, увы, до
бесконечности нельзя. Программа выделяет ограниченный объем ОЗУ под
базу, и, когда размер .eqp превысил этот объем, меня вышибло обрано в
родимый Volkov Commander. Ладно еще format не запустился :) . Для
дальнейшего увеличения базы пришлось изыскивать внутренние резервы -
т.е. заменять новыми единицами дублированные. Например FPO
(Свободная Польша) имела два одинаковых грузовика: собственно FPO и
общий для нескольких стран AF truck. Зачем ей столько? Не лучше ли
заменить один из них на принципиально новый для PG вид траспорта -
лошади? Так я наскреб еще несколько новых units, например, добавив
префикс RUM к названию танка Pz38(t)G (он практически идентичен
модификации F), я добился перемещения этого танка к Румынии, которая
(по мнению авторов PG) не имела совственного бронепарка.
Совершенствуя PG-Real, я нашел и ликвидировал еще несколько
ошибок SSI:
- невозможность американских истребителей P51 Mustang и
также некоторых гаубиц атаковать морские цели;
- Несколько единиц было неиспользовано - я их заменил или исправил
даты, сделав доступными для покупки (например, итальянский танк М15),
всего я добавил и изменил 41 единицу.
- 37мм немецкая зенитка может теперь использовать морской транспорт;
и так далее...
Создатели PG допустили кучу опечаток в названиях городов: как
вам нравиться для Кременчуга - Kremench , для Калача - Kaloch, для
Белгорода - Buelgorod... Начав исправлять это, я загрузил в Gamers
форум CompuServe очередную версию PG-Real. И получил письмо от
Jeane-Claude Besida (Франция) с благодарностью за мою бескорыстную
работу и длинным списком исправленных и "родных" (не английских)
названий: Rome -> Roma, Cologne -> Coln, и, конечно, Moscow ->
Moskva. В каком файле содержатся географические названия нашел я
быстро (опять же благодаря его имени - mapnames.str).
Сценарии в PG во многом не совершенны, часто заокеанские
программеры не утруждали себя проработкой деталей. Например, тяжелых
бомберов Пе-8 было выпущено всего 79, а в сценарии Berlin флот
бомберов СССР состоит, в основном, из них, а не из штурмовиков;
такого рода небрежностей полно. В последние версии PG-Real я включаю
несколько переделанных сценариев, в которых исправил подобные ошибки.
Для примера: в Barbarossa бомбардировщики Пе-2 заменены на
исторически верные СБ и Су-2, вдоль границы снизил укрепленность
советских войск (они же не были готовы - вспомните приказ Сталина "не
поддаваться на провокации"), зато пехоте, обороняющей Брест, добавил
две звездочки опыта.
Примочку тестировал я и Hrodbern. Кроме того, более трехсот
двадцати юзеров разных стран скачала PG-Real к настоящему моменту
только из КомпьюСерв, а жалоба (bug report) была только одна, баг уже
ликвидирован. Существует лишь один прикольный момент - советская
гвардейская кавалерия может покупаться в комплекте с грузовиком! Или
даже со вновь введенным конным транспортом! Как это устранить - я уже
не знаю, что только не пробовал. Но не один здравомыслящий игрок
покупать кавалерию на грузовиках не станет, да и программа, на моей
памяти, таких проколов не делала. К слову, немецкие мотоциклисты
(тоже добавленные мною) транспорта купить не могут - ОК.
К сожалению, я не мог снабдить все новые units
соответсвующими иконками, приходиться использовать уже существующие.
И если картинка английского Typhoon идеально подходит для
добавленного Tempest, советской 76-мм зенитки - для 85-мм, T-34/85
очень похож на новый T-44, то ИС-3 совсем не похож на существующий
ИС-2, и уж совсем крайняя нужда заставила меня использовать icon
американского Р38 Ligthning для реактивного Р80 Shooting Star. И
как-то ко мне пришла гениальная мысля - а нет ли еще не
использованных иконок? И - yyyeeess! проверяя номера картинок, я
нашел их! Некоторые подходили идеально - советский броневик БА-20 и
немецкая кавалерия; танк Т-26 более-менее похож; для немецкого
реактивного бомбера Ar234 Blitz пришлось использовать непохожее
изображение. Но я думаю - многие согласятся со мной в том, что
различные иконки нужны, главным образом, для быстрого отличия боевых
единиц друг от друга. Руководствуясь этим соображением, я так же
применил более подходящие (найденные) картинки для PzIIIg, JagdPanzer38,
Me323 Gigant, US M10.
Я не сумел отредактировать иконки, хотя нужный файл, похоже -
iconbtn.shp . Еще некоторые неиспользуемые картинки - "пустые",
т.е. можно нарисовать новые (если уметь...).
Кроме службы CompuServe вы можете скачать мой zip файл из
Интернет:
Там же PG юзеры, не имеющие AG, найдут сценарии от Allied General,
трансформированные мною для Panzer General (ag-scn.zip).
Примочка очень легко инсталируется и деинсталируетя, что дает
возможность быстро (используя для запуска PG bat-файлы)
переключаться между вариантами игры. Полный список добавленных единиц
как и подробности и причины изменений содержится в файле pg-real.txt.
Последняя версия - 4.5, планируется финальная - 5.0.
(C) 1997 PG monster