26 июля 2006
Обновлено 17.05.2023

Эпоха кампаний. Age of Empires 3

Эпоха кампаний. Age of Empires 3 - изображение обложка

Эпоха кампаний

Автор:

Андрей Верещагин

Одна из сильных сторон Age of Empires III — мощный редактор сценариев. Всем он хорош: и удобен, и функционален. Одно только «но»: редактор не умеет объединять миссии в кампании. Строго говоря, это задача другого редактора (редактора кампаний), но его в игре, к сожалению, нет. Именно этот недостаток мы сегодня устраним, создав собственную уникальную кампанию.

Приготовления

В папке < Каталог игры>\Campaign вы найдете два подкаталога: \Age 3 Tutorial и \Blood Ice Steel. Первый соответствует обучающим миссиям (tutorial), второй — непосредственно кампании. Нас интересуеттолько второй каталог.

Новую кампанию мы будем делать на базе оригинальной. Более того, во время работы нам придется заменить оригинальный набор миссий обновленным. Поэтому перед началом работ обязательно сделайте копию папки Blood Ice Steel. Во-первых, если у вас что-то пойдет наперекосяк, вы всегда сможете вернуться к исходному варианту. Во-вторых, после того как вы сделаете новую кампанию, единственный способ сыграть в старую — это копирование оригинального каталога Blood Ice Steel поверх измененного. Сосуществовать же в игре две кампании одновременно упорно не хотят. Так что и директорию с уже подредактированными файлами после завершения работ желательно скопировать. Тогда вы сможете переключаться между кампаниями путем копирования в каталог Campaign соответствующей папки с именем Blood Ice Steel.

Зайдите в эту директорию. Там находятся файлы двух форматов: .age3scn и .xml. Первые имеют названия вида age3N (N — номер миссии) и представляют собой карты, которые входят в состав кампании. Сценарии могут быть подправлены в редакторе (запускается из меню Help and Tools/Scenario Editor ). Для этого скопируйте интересующие вас файлы в папку Documents and Settings\ <Имя пользователя>\Мои документы\My Games\Age of Empires 3\Scenario. После завершения преобразований верните файлы на прежнее место. Впрочем, это может и не потребоваться — оригинальные карты нас интересуют только в качестве наглядных примеров.

Местные XML -файлы можно разбить на три группы. Одну из них составляют модули с именами вида HomecityActX_Y , где X — номер акта (части кампании), Y — номер сценария. Такие файлы содержат атрибуты вражеских городов в различных миссиях.

Во вторую группу входят файлы homecitySPCAct1.xml , homecitySPCAct2.xml и homecitySPCAct3.xml , относящиеся к трем актам и содержащие характеристики городов игрока (Home City) и список доступных апгрейдов. Эти поселения вы посещаете между некоторыми миссиями (какими — определяется в файле BloodIceSteel.xml ).

Третья группа представлена только одним файлом — BloodIceSteel.xml. Он является основным и отражает последовательность миссий, а также их базовые атрибуты. Структуры этого файла мы коснемся позднее — когда будем связывать между собой сценарии новой кампании.

Все названные XML-файлы можно редактировать в «Блокноте». Они устроены так же, как и модули формата HTML. Используемые в игре файлы состоят из разделов (блоков), которые оформлены следующим образом:

< X>

< /X>

Верхняя строка обозначает начало раздела, нижняя — завершение, а X — название. Обратите внимание на то, что блоки в пределах одного файла могут носить одинаковые имена. Но содержание у них при этом различается.

И отдельные параметры, и подразделы оформляются так же, как и «родительские» разделы. Единственное отличие: при описании какого-либо атрибута вместо многоточия прописано его значение, причем в одну строчку с названием. Например: < Act>1. В данном случае Act — это название атрибута, а 1 — его значение.

Разработка концепции

Перед разработкой кампании следует продумать, какой она будет. Следующий шаг — разработка сценариев в игровом редакторе.Естественно, все карты должны быть связаны между собой сюжетно и логически.

После того как карты будут готовы, их нужно объединить в единое целое. В этом вам поможет файл BloodIceSteel.xml. В нем задается последовательность миссий, каждой из которых посвящен тот или иной подраздел, озаглавленный как CampaignNode. Чем ниже он располагается в файле, тем выше порядковый номер сценария. В каждом подразделе примерно с десяток показателей, характеризующих данный уровень. Если какой-то параметр отсутствует в том или ином подразделе, подразумевается, что его значение равно нулю. Разберемся по порядку.

Filename — имя файла, содержащего данную карту (напомню, что она должна находиться в папке < Каталог игры>\Campaign\Blood Ice Steel и иметь расширение .age3scn ).

DisplayName — название миссии, использующееся в файлах игры.

DisplayNameStringID — идентификационный номер строки с названием сценария, которое отображается в игре. Чтобы понять, какое слово содержит данная строчка, обратитесь к файлу stringtable.xml (лежит в директории < Каталог игры>\data). Используя функцию поиска, найдите в файле то же число, что указано в значении данного параметра. В строке вы увидите реальное название уровня. Обратите внимание на то, что игра поддерживает кириллицу.

Cinematic — этот показатель определяет, предшествует ли данному сценарию видеоролик ( 1 — да, 0 — нет).

Act — номер акта, в который входит миссия.

NoHCAccess — дается ли игроку перед данной миссией доступ к городу (Home City), в котором игрок может проводить глобальные апгрейды ( 0 — да, 1 — нет). Напомню, что параметры Home City прописаны в файлах homecitySPCAct1.xml , homecitySPCAct2.xml и homecitySPCAct3.xml.

LoadImage — загрузочная картинка уровня. Она должна лежать в папке < Каталог игры>\art\ui\singleplayer.

LoadTextID — идентификационный номер строки (опять же в файле stringtable.xml ) с текстом, который вы видите во время загрузки карты.

PostCinematic — эта характеристика определяет, следует ли за прохождением миссии ролик ( 1 — да, 0 — нет).

Объединение сценариев

Работу с файлом BloodIceSteel.xml начните с удаления всего его содержимого за исключением первых двух строк и последней (можете также на первое время оставить один из подразделов — в качестве образца). Теперь создайте в файле новый подраздел — он будет соответствовать начальной карте.Выглядеть этот подраздел должен следующим образом:

< CampaignNode>

< Filename>blood ice steel\X

< DisplayName>Y

< DisplayNameStringID>Z

< Visible>1

< Act>1

< NoHCAccess>1

< LoadTextID>X1

< /CampaignNode>

Вместо X укажите название карты, которое вы дали ей при сохранении в редакторе. Настоятельно рекомендуем прописывать в названии каждого сценария его будущий порядковый номер. На месте Y укажите краткое название карты — такое, чтобы вы могли с ходу понять, к какому именно сценарию относится данный подраздел.

Прежде чем присваивать значение третьему параметру, загляните в файл stringtable.xml. Перед последней строкой выставьте строку следующего содержания: < String _locID =‘43335’>…. Многоточие замените на название карты, которое вы хотели бы видеть в игре. Вновь обратитесь к файлу stringtable.xml. Число в кавычках (в данном случае — 43335 ) поместите на место Z.

Что касается значения параметра LoadTextID , то здесь следует указать число 43336 , предварительно вставив строку с этим номером и загрузочным текстом миссии в файл stringtable.xml.

Чтобы добавить в кампанию еще несколько сценариев, создайте в файле BloodIceSteel.xml соответствующие им подразделы, организовав их по тому же принципу. Разделов должно быть столько же, сколько миссий в вашей кампании.

Обратите внимание, что значения X, Y, Z и X1 для каждого нового подраздела будут разными. В частности, будьте внимательны при работе с характеристиками DisplayNameStringID и LoadTextID. Вместо Z должен стоять уникальный (!) идентификационный номер строки файла stringtable.xml. В этот файл нужно добавить соответствующую строчку (для каждого из новых сценариев), как и в случае с первой миссией. Обязательно посмотрите, чтобы выбранный вами номер до этого не использовался. Аналогично для параметра LoadTextID.

Кроме того, если в кампании несколько актов, значение атрибута Act также может быть различным. Если говорить о настройке NoHCAccess , то ей можно придать нулевое значение в подразделах, соответствующих ключевым уровням. Но при этом вам придется как следует подредактировать файл, относящийся к данному Home City, чтобы отобрать только нужные апгрейды в соответствии со спецификой миссий (это требует тщательного продумывания). Хотя можно оставить и оригинальные сочетания бонусов и улучшений, но они вряд ли идеально подойдут для вашей кампании.

Лично я посоветовал бы вам на первых порах не заморачиваться с Home City, выставив параметру NoHCAccess значение 1 во всех подразделах. Да и количество актов лучше свести к одному. А когда вы во всем хорошо разберетесь, можете подключать к кампании межсценарные посещения городов, изменять загрузочные картинки миссий.

* * *

Пора создавать новую кампанию. Какой продолжительности она будет и какими будут входящие в нее сценарии, решать вам. Она может состоять из нескольких актов, наполненных десятком миссий, а может включать в себя только одну небольшую часть. Кампания может быть сложной, рассчитанной на настоящих профи, а может предназначаться для тренировки и закалки в боях начинающих стратегов.

По-моему, неплохим вариантом является разработка исторической кампании, в которой игрок, управляя русской армией, противостоит наполеоновским войскам. С точки зрения используемых в то время технологий, она как нельзя лучше впишется в игровые эпохи (тем более что и русские, и французы во главе с Наполеоном в игре есть).

Новых кампаний может быть и несколько. В этом случае вы должны сохранить содержимое папки Blood Ice Steel для каждой из них. Переставлять их вы сможете, копируя в < Каталог игры>\Campaign соответствующие файлы. Делайте больше кампаний и присылайте их нам. Лучшие из них будут размещены на нашем DVD.

Комментарии
Чтобы оставить комментарий, Войдите или Зарегистрируйтесь