Я продолжаю работу над своим модом. Опять же, сложно подвести какие-либо итоги - я не создавал литературных черновиков, описывающих мои потуги, а просто делал работу, которую считал нужной, по мере своего желания. Я добавил еще разной техники, добавил разных карт из разных источников, и перешел к созданию нескольких демонстративных миссий, дополняющих мод, две из которых фактически уже полностью завершены.
Отдельно замечу очередной мерзотный прокол разработчиков (я настолько профдеформировался за время работы с этой игрой, что не могу выражаться иными словами - все цензурные уже отсутствуют) , наплевавших на террейны дорог в своих картах. На удивление, в игре присутствует дорожное покрытие, позволяющее ускорять технику до максимальных скоростных показателей, но почему-то в подавляющем большинстве карт (даже ванильных) , это не применяется. Да и я, чего греха таить, не сразу понял, как это работает - покрывал дороги обычным террейном, думая, что сам по себе террейн road или country road разрешает ускорение техники. Как оказалось, этот особый дорожный террейн находится в отдельной вкладке. И похоже, разные аддоны делали разные разработчики - часть из них знала об этом, а часть - нет. Из-за чего наблюдается ситуация, при которой часть импортных карт имеет по дефолту дорожные террейны, а другая и знать о них не знает.
Из мультиплеерных карт я удалил дурацкий звук дождя, который проигрывался на всех, даже на зимних картах, и в зимних картах старался везде, где мог, поставить немного снегопада в рандомайзере погоды, а в пустынных - всякие пыльные бури. В любом случае, я наимпортировал так много карт, что физически не предоставляется возможным отполировать их на все сто процентов. Но я старался отсматривать каждую на предмет особо уродливых багов\ошибок. Многие карты могут не иметь сглаживания рельефа, из-за чего были острые пики на холмах и т.д., это я старался править, если бросалось в глаза. Также некоторые старые карты (вплоть до оригинальной игры 2007 года) имеют непонятные черные затемнения на текстурах почвы. Я не сразу понял, как это убрать, но потом осознал, что за это отвечает вкладка color, которая позволяет вернуть цвет почвы в исходное состояние.
Линию фронта я так и не смог исправить - не нашёл, как удалить матч-реванш, где команды меняются местами. Однако, я постарался сделать этот режим более веселым. Я также наимпортировал в него несколько кастомных карт и\или карт из старых версий игр. Некоторые карты мне пришлось расширять в плане ландшафта, потому как сквозь туман войны нападающие видели обороняющихся и наоборот, в результате чего стреляли в пустоту. На подобных картах я старался расширить ландшафт, не добавляя ничего нового - просто продолжая идею изначального ландшафта. Используя подмод FrontlinessSingle, в моём моде можно будет отыгрывать обороняющуюся сторону против наступающих ботов - все флаги фронта передаются под контроль одному игроку.
В основном моде я также подредактировал баланс нападающих и обороняющихся сторон, учитывая новых дорогих юнитов в виде сверхтяжелых танков. Нападающая сторона получает 1000ЛС раз в 90 секунд (в оригинальной игре нападающие получают 500ЛС раз в 180 секунд), максимальный лимит ЛС увеличен до 6000, в начале наступающим доступно 3000ЛС (шесть тысяч хватит для разового вызова танка Maus, Jpze100, T95 mod. T53 или КВ-5 с чем-то на закуску). Также нападающие имеют 15 героических очков, а обороняющиеся - только 6. Обороняющиеся получат еще 6, если отступят на вторую линию фронта, что даст им в сумме 12 очков против 15. Т.е. баланс при игре с людьми должен присутствовать даже получше, чем в оригинальной игре. Соответственно, у обороняющихся доступно 2000ЛС, и это число может дорасти до 5000ЛС по мере игры. Таким образом, наступающие имеют серьезное преимущество, и могут в течение игры вызывать сверхтяжелые или просто дорогие танки\артиллерию. Даже при получении обороняющимися удвоенных резервов после отхода на вторую линию обороны, наступающие имеют больший потенциал для накопления резервов.
Также я слегка поменял ProjectileDamage для советских 152-мм орудий класса КВ-2 и ИСУ-152. В целом это привело к тому, что теперь даже бронебойный снаряд ИСУ-152 способен поломать башню королевскому тигру при нулевом бронепробитии на очень дальних дистанциях (в игре ИСУ-152 считается артиллерией, и поэтому у неё перекручены дальности для фугасов и бронебойных снарядов - так что вы не ослышались, нулевое бронепробитие это не моё васянство - теперь пускай хоть за счет массы снаряда это будет иметь смысл). Меня это вполне устраивает, потому как при детальном рассмотрении авторы игры уж чересчур зацепились за посредственность бронепробития советских орудий, сделав их почти что беспомощными. Возможно, я также пересмотрю параметры бронепробития 100-мм пушки на СУ-100 и БС-3, поскольку меня терзают смутные сомнения по поводу адекватности установленных в игре параметров. Однако подчеркну, что в целом оригинальные параметры игры я особо не трогаю - кроме двух указанных советских орудий я ничего у советов не менял, только добавлял своё. Изменению подвергся Ягдтигр, поскольку разработчики, будучи ленивыми существами, просто достали аркадную версию этой самоходки из самой первой игры 2007 года, и засунули её в Штурм, не переделывая. В оригинальном Штурме Ягдтигр помимо своей мыльной модели смехотворен и имеет бронепробитие на порядок меньше 88-мм орудия KwK43. Помимо текстур из Valour, я подредактировал параметры бронепробития Pak44 - теперь они превосходят 88-мм KwK43, что логично.
Редактор игры в целом заслуживает отдельной статьи, учитывая свои особенности. Его можно обсуждать бесконечно долго. Если просто обобщить работу в нём, то можно сказать так - если стоит задача создать простенькую зарисовку-симулятор, это проще простого. И главное, это гораздо лучше будет выглядеть, чем наши детские потуги в Warcraft III, когда мы ставили юнитов стенка на стенку, запуская карту. Здесь инструментарий более удобен для создания мало-мальски похожего на игру боя. Однако, если вам придет в голову создать что-то сложнее простой зарисовки - например, полноценную миссию. То тут возникнет.... масса сложностей. Описать их невозможно словами, это слишком долго. Вам придется бесконечное количество раз тестировать одни и те же события, потому как каждое действие в игре может не поддаваться логике.
Например, можете ли вы себе представить, что если вы вполне легальными методами выберете на карте группу юнитов при помощи GUI-меню, куда входит пехота + танки, вы получите фатал игры без объяснения последствий? Здесь вы его получите. Хотя казалось бы, по принципам ООП, вы должны подумать, будто бы человек и танк имеют один родительский класс, и уж точно нет ни единого условия, которое могло бы заставить такую группу зафаталить на ровном месте. Но нет, оно существует. И оно вылезет вам в лицо в самый неожиданный момент, когда вы не будете этого ждать. Забудьте про Warcraft III, где вы заключите в отряд с обычными юнитами, например, героя, и что-то проверите в нём по коду. Нет, тут так не принято.
А можете ли вы себе представить, что заставить солдат занять определенные укрытия требует адских извращений? Даже если вы будете тютелька-в-тютельку выделять одно укрытие на одного конкретного солдата... вам нужно будет выбрать минимум 2-3 укрытия, чтобы этот солдат побежал к ним. Одного укрытия ему будет мало. Он ни за что не побежит к свободному, ничем не занятому укрытию, если оно будет одно. Проименовать группу солдат и приказать им по скрипту занять группу укрытий? Забудьте, охо-хо, как же просто! Даже не думайте. Не важно, сколько укрытий вы им пропишете, хоть сотню - автор функции настолько ужасно её создал, что они будут выбирать лишь жалкий процент от этих укрытий. Даже такое простое действие, которое, казалось бы, учтено разработчиками, превращается в ад. Я не знаю, что там намудрили с массивом солдат и массивом укрытий, но что-то у разработчиков пошло не так, и они умудрились запороть даже настолько элементарную функцию.
Впрочем, это уже прошедший этап, и стадию принятия я прошёл, поскольку две миссии я уже сделал, и даже отыграл с другом по локальной сети - всё прошло гладко. Для грамотного распределения юнитов между игроками пришлось задействовать функцию autoassign, которая в придачу не терпит прерываний, поскольку тогда раскрошит все отряды как попало, но в целом с ней всё прошло удачно, и кооп работает.
В данный момент я закончил две миссии за СССР, и приступил к Германии. Я хочу сделать хотя бы одну миссию с Германией, поскольку эта сторона конфликта, как-никак, приобрела в моём моде исполинское количество новой техники, и продемонстрировать её в сюжетном режиме - просто дело чести.
Главная моя паранойя на данный момент - это, конечно же, мультиплеерные карты. Сколько бы я их не правил, вечно складывается чувство, будто они сырые, ужасные, кривые, в них вечно что-то не работает, некрасивая погода, пустые террейны, ещё что-то и т.д. Отчасти именно это мешает мне просто так взять и залить мод, у которого, будем честны, кроме мультиплеера ничего толком и нет.
Я бы мог добавить очень много картинок, но, к сожалению, я снова выдаю текст экспромтом, и мне нечего показать. Однако, что краше всяких слов, я могу показать тестовый прогон уже готовой советской миссии, посвященной Курской битве, на Youtube. В видео вы можете оценить часть проделанной работы. Под видео есть таймкоды с наиболее знаковыми событиями. Пожалуй, самым эпичным моментом миссии является дебют КВ-5 - это его первое появление как боевой машины в данной ветке альтернативной истории.
Отмечу еще один важный момент, я уменьшил количество хп всем солдатам в игре, чтобы они не превращались в дубовые колбасы. В целом это привело к уменьшению хп почти в два раза, поскольку меня утомили неубиваемые элитные пехотинцы. Карта замены хп выглядит как-то так (было\стало) :
# Таблица замен
health_map = {
"500%": "250%",
"350%": "200%",
"300%": "175%",
"250%": "150%",
"200%": "125%",
"150%": "100%",
"100%": "75%",
}
И на момент записи мода, я совсем забыл о параметрах сложности. Это привело к тому, что солдаты противника на нормальном уровне сложности в сингле стали еще более хрупкими. Я исправил этот момент, переделав уровни сложности в игре. Также я добавлю подмод, который будет откатывать хп солдатам обратно в ванильное дубовое состояние, если кому-то это не понравится.
Ещё одна главная проблема, которую я пока не поборол: я не могу исправить увеличение\уменьшение масштаба некоторых импортных деревьев (из Valour) при встряхивании кроны. Сначала я думал, что дело в костях анимации - они действительно были увеличены. Но когда я это исправил, то ничего не поменялось. В скрипте оригинальной игры, где происходит встряхивание деревьев, я также не заметил ничего подозрительного. Поэтому над этим буду еще думать, всё же некрасиво, когда у вас под носом дергается дерево, пусть и дернется оно один раз за всю игру и дальше будет работать с новым масштабом.
Также я прилагаю скриншоты ландшафта разрабатываемой миссии за Германию. Я не планирую сворачивать золотые горы, и для миссий использую уже готовые карты, которые мне понравились и дали какую-то идею, которую захотелось реализовать. Но для этой миссии я всё же сделал полностью свой участок карты с нуля, и в качестве затравки скину его сюда. Делать ландшафт мне не впервой, я уже не раз расширял карты линии фронта, но именно с нуля я сделал кусок ландшафта впервые в этой игре. Также в этой карте был расширен родной ландшафт, но я его показывать пока не буду. В конце концов, рано или поздно это и так все увидят.

MAUSOLEUM






