Анализ игры Warcraft III Frozen Throne

Игра глазами программиста

 

Прежде всего, необходимо отметить, что нижеизлагаемый анализ проводился программистом (да и к тому же не особо сведущим в игровой терминологии и know-how) прежде всего в целях исследования программной структуры игры по ее видимым проявлениям. Анализ вовсе не претендует на жанр «руководства по игре» или «журнального обзора».

Тем не менее, несмотря на то, что Blizzard является одним из классиков игроиндустрии, изложение будет вестись из расчета на то, что читатель может быть незнаком с игрой, и поэтому детали будут описываться достаточно подробно, чтобы какое-то впечатление об игре у читателя возникло. Большая просьба к тем, кто будут писать аналогичные аналитические работы по другим играм также уделять небольшое время на описание, а не излагать игру в духе «ну все конечно это сто раз видели и играли…». Игра отнимает слишком много времени, которого у людей занятых нет, а для того, чтобы анализ был полноценным игру нужно полностью пройти и как минимум два раза, поскольку первый раз с ней знакомишься, и только во второй раз начинаешь смотреть по сторонам и изучать что и как реализовано. К примеру автор, потратив три месяца на подробное изучение Warcraft III, вряд ли в ближайшие пару лет найдет аналогичное время для изучения какой-то другой игры на подобном уровне. В связи с этим, повторю свое пожелание для других авторов, выступающих в том же литературном жанре «анализа игр с точки зрения программиста» уделяли некоторое время на описание сути игр.

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

 В тексте то и дело будут появляться врезки «Заметки программиста», относящиеся к программной реализации обсуждаемого момента.

 Итак, в рамках данного анализа мы попытаемся отделить зерна от плевел, описать отдельные части и попытаться прояснить объектно-программную структуру, основываясь на которой может быть создана аналогичная игра.

 Анализ предполагает следующие этапы:

 1. Краткое описание игры.

2. Анализ интерфейса игры.

3. Анализ графической реализации.

4. Анализ организации сетевой игры (battle.net, локальная сеть)

5. Анализ редактора карт.

6. Попытка создания модели программной реализации игры.

 

1. Краткое описание игры

 Игра Warcraft III (далее W3) является RTS с элементами RPG.

 Warcraft III Frozen Throne является официальным дополнением к базовой версии Warcraft III Reign of Chaos. (далее если нужно будет уточнить, что тот или иной момент относится к конкретной версии будут использоваться сокращения W3FT  и W3RC соотвественно).

 В W3 присутствуют четыре расы (Люди, Орки, Ночные эльфы, Нежить), обладающие существенно отличными друг от друга по характеристикам и способностям юниты и строения.

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

 Игровой процесс в главах происходит в двух основных режимах:

  1. Классическая RTS (строительство зданий, войск, добыча ресурсов, условия победы обычно – уничтожение всех или указанных в задании войск или зданий противника)
  2. RPG+Quest (прохождение лабиринта небольшой группой войск во главе с героем, поиск предметов и получение новых квестов, условия победы - нахождение определенного предмета, уничтожение определенного монстра или проведение героя в определенную область лабиринта)

 Существует возможность одно- и много-пользовательской игры на дополнительных картах в режиме классической RTS.

 Подробнее различные моменты реализации геймплея будут изложены ниже.

 

2. Организация интерфейса игры

Основная идея раздела состоит в кратком и сжатом описании интерфейса, для того, чтобы разработчик, задумываясь об интерфейсе своей игры не испытывал затруднений, припоминая «как там у Blizzardа–то было», а мог обратиться к данному описанию и заполнить идейный вакуум.

2.1. Главное меню

 

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

В частности в главном меню W3FT мы видим в качестве фона ледяной трон (собственно Frozen Throne) возвышающийся на ледяной скале, омываемой в свою очередь ледяными водами ледяного моря.

 

прошу прощения за качество картинок – я старался сделать файл «полегче» поэтому текст на грани читаемости.

 

Главное меню содержит пункты:

  1. Один игрок
  2. Battle.net (игра через Интернет)
  3. Локальная сеть
  4. Настройки
  5. Титры

 

2.1.1. Один игрок

 

Подменю «Один игрок» предназначено для выбора однопользовательской игры отображается на том же фоне, что и главное меню.

Это меню содержит пункты:

1.      Выбор учетной записи

2.      Кампании

3.      Загрузка игры

4.      Загрузка ролика

5.      Дополнительные Кампании

6.      Сражения

7.      Выход (в главное меню)

 

2.1.1.1. Выбор учетной записи

 

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

 

Заметки программиста. Таким образом, настройки игры мы храним в файлах учетных записей. Там же храним данные по прохождении каждой(!) главы кампании (см. пункт 2.1.1.2).

 

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

 

Заметки программиста. Список учетных записей (плюс информация о последней) мы можем хранить в отдельном файле, а можем – в отдельной папке, то есть при запуске игры мы ищем в этой папке наличие подпапок учетных записей и динамически создаем список учетных записей. Этот вариант гибче, поскольку в этом случае проще копировать учетные записи с других компьютеров.

 

В подменю «выбор учетной записи» имеются кнопки

Создать

Удалить

Выбрать (по умолчанию выбрана текущая запись)

2.1.1.2. Кампании

 

Кампания – последовательность глав, объединенных общим сюжетом, развивающимся по законам жанра.

К этим законам относится:

1. Сюжет проходит свои стадии пролог, завязка, конфликт, кульминация, развязка, эпилог. С вариациями. :)

2. Сложность прохождения возрастает от главы к главе. Это связано как с логикой построения художественного сюжета, так и с тем, что в результате прохождения кампании игрок осваивает игру и она должна оказывать необходимый уровень сопротивления для того, чтобы ему не наскучить.

3. RPG составляющая: Как правило уровень героя (героев растет от главы к главе). Хотя примечательно что как раз в W3FT в одной из кампаний уровень главного героя постепенно падает в течение кампании – видимо хотели добавить неординарности. Однако W3TF – это дополнение к WCRC, поэтому тут такая оригинальность простительна. В базовой же версии (WC3RC) во всех компаниях происходит постепенный рост уровня героев. Это связано, в том числе с тем, что базовая версия всегда включает обучающую роль – проходя кампанию, игрок учится пользоваться теми или иными возможностями героя (заклинания, предметы, техники ведения боя и т.п.) и поэтому в базовой версии все это появляется постепенно от главы к главе. В дополнении же естественно предполагается, что игрок уже освоил базовую версию и тут можно почудить и наоборот подбросить что-то оригинальное.

4. Аналогично в базовой версии от главы к главе игрок получает возможность строить все новые и новые здания и войска, получая к конечной главе полный набор возможностей в свое распоряжение. Последняя глава – в базовой версии – это великое сражение, в котором решается исход судеб мира. В дополнении все может быть совсем иначе – вовсе не обязательно, что все войска будут задействованы, и что все кончится крупномасштабной резней. Хотя последняя глава тоже должна быть судьбоносной.

 

В подменю «Кампании» содержится список кампаний для каждой из рас.

Сюжет игры в WC3 сквозной и одна кампания вытекает из другой, то есть сначала нужно пройти кампанию за одну расу, и только тогда будет доступным выбор кампании за другую расу. (WC3TF является дополнением, и поэтому там есть одна кампания, которая стоит особняком, и не связана с другими кампаниями).

 

При нажатии на доступную кампанию открывается подменю «Кампания», в котором отображены главы кампании, из которых доступны только те, которые игрок уже прошел плюс следующая глава. (остальные – еще недоступные главы в WC3 не отображаются). Таким образом игрок может выбрать следующую главу или переиграть предыдущие.

 

Заметки программиста. Для этого в файле учетной записи нужно хранить данные по героям к окончанию каждой главы (уровень, способности, предметы, [накопленные ресурсы (если они переходят от главы к главе)], [сделанный выбор (если сюжет ветвится и предполагает выбор в более ранних главах, который скажется в более поздних)]. В WC3 этот файл хранится в зашифрованном виде со специальной надписью внутри в текстовом виде: “[NOTE TO HACKERSChanging this file may be hazardous to your progress]” :)

 

По умолчанию при входе из главного меню в подменю «Кампании» осуществляется автоматический переход в подподменю «Кампания», которую игрок проходил в последний раз, а чтобы попасть в «Компании» нужно нажать кнопку «Назад», а чтобы в главное меню – еще раз «Назад»

 

Заметки программиста. Вроде банальности и мелочи, а ведь это все делать надо! + храним какая была последней в файле учетной записи.

 

На заднем фоне меню «Кампания» отображается трехмерная сцена с нейтральной анимацией: крупным планом показан один из юнитов расы на фоне соответствующего ландшафта. Юнит реализован в хорошем (обложечном) качестве и этим отличается от своего малополигонального аналога в игре.

 

 

Главы могут быть чисто киновставками (avi или сценариями) – начальный ролик кампании, интерлюдия, финальный ролик компании – или собственно игровыми главами.

При успешном прохождении главы пользователь может продвигается по кампании далее. При завершении последней главы кампании пользователь оказывается в описанном выше меню «Кампании», в котором становится доступным выбор следующей кампании (напомню, что кампании в WC3 объединены в последовательность). При завершении последней кампании последовательности пользователь также оказывается в меню «Кампании», но новых пунктов меню – доступных кампаний уже не появляется.

 

Заметки программиста. При программировании на это нужно обратить внимание, а не идти по принципу «любой переход из игры в главное меню – это переход в корневое главное меню».

 

Сделаем отдельное отступление, чтобы чуть подробнее обратиться к нестандартной кампании в WC3FT. Эта кампания относится к расе орков и называется «Основание Даротара». Это весьма нетипичная кампания. Главный геймдизайнер WC3 Роб Пардо в своем интервью, отзываясь об этой кампании, сказал следующее (перевод с английского мой с небольшими сокращениями и пояснениями в скобках): «Когда мы делали предварительный набросок сюжета дополнения (WCFT) мы предполагали строить его вокруг погони Артеса за Илиданом (герои WC3) к Ледяному трону. Это была основная идея сюжета, но когда мы решали как та или иная раса будет задействована, мы постоянно возвращались к тому, что задействовать орков будет довольно проблематично, учитывая, что в основной части (WC3 RC) мы оставили их обустраивать свою новую родину в Калимдоре (материк). Каждый раз когда мы пытались воткнуть их в сюжет WCFT, это было похоже на попытку воткнуть квадратную затычку в круглую дырку (английское идиоматическое выражение переводящееся как «ни к селу, ни к городу»). Наконец мы подумали: «Эй, а может быть Орки не будут участвовать в сюжете кампании?» Но конечно не хотелось их исключать из дополнения, это было бы несправедливо. Поэму мы решили немного повеселиться.

Идея заключалась в том, чтобы развить линию РПГ, которая ранее была представлена менее явно. То есть мы решили сделать полномасштабную РПГ-кампанию, и для этого нам пришлось добавить приличную долю новой функциональности, например карты, которые реализовывались в виде зон, пришлось подправить также редактор карт... Нам кажется это забавная бонусная кампания. Игроку не стоит воспринимать ее как полноценную кампанию, такие как три остальных в дополнении. Это скорее бонус, нечто забавное – дуновение свежего ветра после окончания основных кампаний WCFT, которые реализованы в традиционном жанре RTS».

 

Данная кампания действительно достаточно сильно выбивается из общей логики WC3. И действительно она в значительно большей степени соответствует жанру RPG, в то время как WC3 – это прежде всего RTS. На мой взгляд основное хотя и неочевидное отличие – это невозможность проиграть в отдельной главе (из этого следуют все остальные отличия). Поясню: в классической RTS есть противник, который (какой-бы примитивный не был у него искусственный интеллект) периодически устраивает набеги на вашу базу. Поэтому если вы полностью отстранитесь от управления рано или поздно он вашу базу уничтожит и произойдет окончание с вашим поражением.

RPG-вставки присутствуют и в обычных кампаниях WC3 в виде глав, где герой (или несколько героев) с небольшой группой юнитов проходят лабиринт в поисках предмета или монстра, однако здесь также можно проиграть – если хотя бы один герой будет убит в результате стычки с монстрами лабиринта, вам засчитывается поражение и главу предлагается пройти заново.

В то время как кампания орков в WCFT хотя и реализована на движке WC3 (визуализация, управление юнитами), изобилует непривычными моментами (вроде камней воскрешения, возле которых мгновенно возрождается погибший герой), которые по началу сильно сбивают с толку. Я лично оказался жертвой этой шутки Роба Пардо, поскольку наверное около двух часов я неблагодарно охотился на монстров в Долине Грома зарабатывая по 10 монеток за монстра чтобы купить в лавке гоблинов артефакт Боевые Когти +15 за три тысячи золотых. Поскольку в стандартной кампании такие артефакты – большая редкость, а тут я увидел его в магазине и сидел два часа как ненормальный рубил ящериц. А потом выяснилось, что артефакты в этой кампании валяются на каждом шагу. Вот как бывает…

2.1.1.3. Загрузка игры

 

Экран «загрузка игры» имеет интерфейс аналогичный по виду с экраном «Сражения» (смиже), но имеет меньше элементов. Слева отображается список сохраненных игр с прокруткой, справа – окно с описанием карты, снизу справа – кнопки «Загрузить игру» и «Назад»

Отображаемый список сохраненной индивидуальной игры, очевидно, соответствует выбранной учетной записи.

2.1.1.3. Загрузка ролика

 

Ролик – это запись игры, который потом можно просмотреть. Во время игры производится автоматическая запись всего происходящего и если игра показалась вам интересной, то вы можете сохранить этот ролик по окончании. Для искушенных геймеров например может оказаться полезным возможность проиграть многопользовательскую игру и проанализировать ход игры, стратегии опытных игроков, удачные и неудачные моменты. Да и любым геймерам может быть интересно посмотреть игры чемпионата между наиболее сильными игроками. Как это сделать – использовать ролики. (А если еще наложить на него озвучку опытного «спортивного» комментатора  - это могло бы быть хитом)

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

 

Заметки программиста. В файле ролика, по всей видимости, должна храниться детальная  информация о последовательности команд игроков (примерно так как в графических редакторах хранится цепочка действий для реализации Undo/Redo, то есть каждая команда пользователя имеет свойство Apply или Execute, которые потом применяются в нужной последовательности в нужное время. Отдельно в ролике необходимо искоренить ВСЕ случайности, влияющие на игровой процесс – например в файле нужно хранить информацию о конкретной величине урона при каждом ударе, если удар в игре случаен в некоторых рамках (например удар: 23-28) или информацию с какой стороны юнит стал обходить дерево в симметричном случае, когда можно было обойти его как слева, так и справа и реальный вариант выбирался случайно. Как один из вариантов – собственный генератор детерминированной последовательности псевдослучайных чисел, однозначно инициализирующийся в начале игры.

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

Характерно, что по результатам моего исследования в WC3 хранится не анимация, а именно команды (что там реально хранится сказать сложно, поскольку файл бинарный, а не текстовый, поэтому я сужу только по видимым проявлениям). В частности упомянутая выше «случайность» хранится только для влияющих на игру действий, но не для анимаций: Я проверял – если поставить, скажем, крестьянина просто стоять, то при проигрывании ролика он стоит в определенном месте, с определенным углом поворота, но «холостые» анимации случайны. То он в затылке почешет, то руки скрестит на груди – и эти вещи НЕ повторяются от одного проигрывания ролика к другому (а позиция и угол поворота – повторяются).

 

2.1.1.4. Дополнительные компании

 

Данный пункт меню появился только в WC3FT, его не было в WC3RC. Blizzard добавил возможность создания собственных кампаний в редакторе карт, то есть возможность объединения нескольких карт-глав единым сюжетом. Кроме того, он представил собственную дополнительную компанию «Исход Орды» с «исходниками» (пардон за тавтологию :)). То есть ее можно открыть в редакторе карт и посмотреть, как реализованы те или иные моменты. В частности, она является бесценным примером использования триггеров в редакторе карт.

Интерфейс этого пункта меню сходен с интерфейсом загрузки игры, но только при выборе допампаний из списка еще снизу есть комбобокс с выбором уровня сложности.

2.1.1.5. Сражения

 

В этом пункте меню игрок может выбрать карту для однопользовательской игры против игроков, управляемых компьютером.

Интерфейс пункта показан на рисунке.

 

 

Блок слева внизу позволяет настроить игровые «отношения» между игроками.

Здесь пять столбцов: Игрок, Раса, Клан, Цвет, Фора.

·                  Игрок. Имя «живого» игрока (имя его учетной записи, в данном случае – WAR), компьютерный игрок с указанием слабый/средний/сильный или «Открыто» (нет игрока).

·                  Раса. Одна из четырех рас: Альянс, Орда, Нежить, Ночные эльфы или Любая раса (случайный выбор)

·                  Клан. Игроки из одного клана будут сражаться вместе против других кланов.

·                  Цвет. Выбор из  набора из 12 цветов.

·                  Фора. Максимальный запас здоровья всех воинов, подконтрольных этому игроку, изменится на указанное количество процентов.

 

Заметки программиста. Чувствуете чем фора грозит организации игрового объекта? Максимальный запас здоровья не «прошит» в настройках карты, и уж тем более всей игры.

Слева вверху показан список доступных для выбора карт. Справа вверху – вид карты и описании к ней. Кнопка «параметры» заменяет этот право-верхний блок на блок «Дополнительные параметры» в которых пять чекбоксов: Фиксация кланов, Города союзников рядом, Общие войска, Случайный выбор рас, Случайный выбор героев и два комбобокса: Зрители и Карта (по умолчанию/скрыта/разведана/открыта).

 

В изображенном на рисунке варианте красный игрок WAR вместе с синим компьютерным будут сражаться против клана бирюзового и фиолетового игроков, в добавок будет еще желтый, который сражается против всех.

 

2.1.2. Battle.net

 

При выборе этого пункта меню происходит соединение с сервером Battle.net, предоставляющим возможность игры через Internet.

Подробно игра через Интернет описана здесь не будет – это тема отдельной главы исследования, однако отдельные моменты интерфейса все же описаны будут.

После подключения к серверу происходит загрузка и установка всех выпущенных к данному моменту патчей игры (в том числе сказывающихся на балансе игры, дополнительных возможностях и новых юнитах), многопользовательских карт и т.п. – всего того, что должно быть «одинаковым» для всех игроков со всего света. Естественно, что при повторном подключении патчи уже не устанавливаются, если только не появляется новый.

 

Далее появляется экран авторизации:

Поля ввода: Имя пользователя, Пароль,

Выбранный сервер (устанавливается перед подключением к Battle.net в главном меню, а здесь только выводится его название)  -  Заметки программиста. Тоже храним в учетной записи.

Кнопки: Правила пользования, Регистрация, Изменить пароль, Изменить адрес почты, Вход в систему, Отмена

 

После входа в систему открывается экран меню Battle.net.

 

Естественно, его венчает баннер.

Слева внизу – новости Battle.net

Справа – информация о текущих играх и предстоящий турнирах.

Кнопка Канал позволяет подключиться к одной из тематических чат-комнат.

Под баннером идут семь кнопок (слева направо):

Начать игру – устанавливаются настройки игры, в которой хотелось бы поучаствовать (число игроков, раса, предпочтительные карты)

Быстрый поиск – используется для быстрого старта с указанными раньше настройками или старта игры турнира.

Клановая игра – создание клана, общение с членами клана и клановые игры.

Пользовательская игра – окно аналогичное старту игры по локальной сети (смиже)

Турниры – сворачивает WC3 и открывает браузер с веб-страницей посвященной турнирам.

Рейтинги – сворачивает WC3 и открывает бразуер с рейтингами игроков.

Учетная запись – открывает окно с вашей персональной информацией (число побед и поражений за разные расы, рейтинги и т.п.)

 

 

Подробнее про Battle.net мы сейчас говорить не будем, и перейдем к следующему пункту меню.

 

2.1.3.   Локальная сеть

При нажатии на кнопку «Локальная сеть» открывается окно, в котором отображен список текущих игр в сети, к которым можно присоединиться, с описанием карт (как в пункте меню «Сражения»). Также есть кнопки «Загрузить игру» (многопользовательскую) и «Новая игра».

При создании новой игры можно выбрать одну карту из списка (как в «Сражения») и настроить параметры, а также темп игры (медленный, средний, быстрый).

После создания новой игры или после присоединения к новой игре, открывается окно, в котором можно выбрать свои параметры: Игрок, Раса, Клан, Цвет, Фора – как в «Сражениях». В этом окне происходит ожидание других игроков, которые должны присоединиться, и для их удобства тут же сооружен миничат, позволяющий скоротать время ожидания или обсудить какие-то общие моменты по игре.

После того как все собрались и настроили параметры администратор игры (тот кто ее создал) нажимает кнопку «Начать игру» и игра начинается.

2.1.4. Настройки

Содержит три подокна с элементами:

Игра

Скорость прокрутки экрана мышью, Скорость прокрутки экрана клавиатурой, Подробные подсказки, Приказ всей группе, Смена боевого порядка, Нестандартные команды управления, Адрес порта, Язык.

Изображение

Гамма, Разрешение, Детализация, Качество анимации, Качество текстур, Эффекты, Освещение, Тени, Преграды, Качество эффектов.

 

Звук

Громкость звуковые эффекты, Громкость музыки, Фоновые звуки, Звуки войск, Звуки перемещения, Субтитры, Интерфейс, Реверберация, Позиционный звук

В общем-то тут все достаточно прозрачно, чтобы что-то комментировать.

 

Эти же настройки можно поменять во время самой игры в одном из диалогов игрового меню.

 

2.1.5. Титры

 

В данном пункте меню содержится информация о разработчиках игры. Сделано это достаточно оригинально – грузится сцена игры, в которой персонажи выполняют какие-то забавные действия, а собственно титры с именами разработчиков идут снизу, причем на каждого человека показывается лицо одного из героев или юнитов игры, видимо не без оснований кому какого :).

 

 

В общем, молодцы, такую скучную вещь как титры смогли сделать так, что до конца смотреть не надоедает.


2.2. Игровой интерфейс

 

В этом разделе мы рассмотрим организацию игрового интерфейса, периодически делая отступления для того, чтобы поговорить о тех или иных моментах самой игры.

Мы рассмотрим следующие подпункты:

1. Загрузка игры

2. Киновставки

3. Игровое окно

4. Диалоги игрового окна

2.2.1. Загрузка игры

 

Загрузка игры происходит в следующих случаях:

·        Нажата кнопка одной из глав компании в меню Кампании

·        Начата новая игра «сражение» (в том числе многопользовательская)

·        Загружается сохраненная игра (в том числе многопользовательская)

 

Экран загрузки отображает полоску прогресса загрузки. После загрузки на прогресс-баре появляется надпись «нажмите любую клавишу», и после нажатия – начинается игра.

 

Заметки программиста. Во время этой загрузки нужно подготовить все объекты юнитов, зданий, ландшафта и т.п. данной локации, поскольку больше до окончания главы таких масштабных подгрузок с остановкой real-тайма происходить не будет (по крайней мере так сделано в WC3, как всегда за исключением кампании орков «Основание Даротара» в WC3FT :)).

 

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

 

 

Если загружается отдельная карта «Сражение», то вместо стилизованной карты материка в квадрате отображается сама игровая карта в антураже соответствующим расе. В многопользовательской игре при этом отображается список игроков и состояние загрузки для каждого из них (завершена или нет) – пока все игроки не загрузятся, игра не начнется (если вы загрузились раньше других, то в прогресс баре вместо «Нажмите на любую клавишу» написано «Ожидание участников»).

 

Загрузка сохраненной главы кампании или сохраненного сражения происходит с соответствующей картинкой – одной из двух описанных выше.

 

В нестандартной кампании орков «Основание Даротара», о которой уже упоминалось выше, нет деления на главы, поскольку она сделана в стиле RPG, а значит у нее не четко линейный сюжет. Некоторые большие квесты можно выполнить раньше других, некоторые позже. Однако одной карты явно недостаточно для того, чтобы игра была интересной. Поэтому в этой кампании реализован механизм игровых зон – имеются дополнительные карты, в которых может разворачиваться действие одного или нескольких квестов и попасть в которые можно в том случае если герой зашел в определенную выделенную характерными огоньками область перехода на главной карте. После выполнения квеста можно вернуться в основную карту. Для этого в дополнительных картах также существует область перехода. Таким образом, игровой мир кампании получается гораздо большим, нежели одна карта, но при этом игровой прохождение игрового сюжета перестает быть строго линейным. Соответственно экран загрузки дополнительной карты аналогичен экрану загрузки в обычной кампании – та же стилизованная карта материка с отметкой места действия, но вместо описания предстоящего задания, выведенный текст описывает данную территорию: кто там обитает и чем она примечательна.

 

2.2.2. Киновставки

 

Киновставки в WC3 двух типов  - это полноценные avi-фильмы, которых не так много, но они обычно предваряют или завершают кампанию, и киновставки основанные на сценариях, для которых используются модели юнитов и декорации самой игры.

В дальнейшем под киновставками мы будем подразумевать именно такие сценарии, поскольку avi-фильмов мы касаться не будем.

 

Заметки программиста. Сценарии киновставок основаны на механизме триггеров, описывающих игровую логику. Триггер состоит из трех элементов: событие, условия, действия. При возникновении определенных событий игры (например инициализация, окончание, уничтожение какого-то объекта или юнита, получение предмета и т.п.) срабатывает триггер, который в случае, если верны связанные с ним условия вызывает последовательность связанных с ним действий. Подробнее о триггерах будет рассказано ниже в главе посвященной анализу редактора карт. При проигрывании сценария real-time действие игры приостанавливается, и киновставка проигрывается в полноэкранном режиме. Действие киновставки происходит в одной из областей загруженной карты текущей главы кампании. Иногда если действие киновставки должно происходить на фоне каких-то специфических декораций на карте специально делаются недоступные области в которые нельзя попасть в обычной игре (например за горами), в которых обустраиваются декорации для предстоящего действа.

 

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

 

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

 

Киновставки проигрываются в начале и конце (после победы) глав кампании, направляя сюжет (мы ведь не просто рубим монстров, мы ведь мир спасаем, об этом надо напоминать :), да плюс еще интрига…)  Вот типичная киновставка в начале главы:

 

 

Киновставки также регулярно проигрываются посреди действия главы после каких-то значимых событий (выполнение или получение квеста, победа над важным монстром или вражеским героем, собственно первая встреча с другим дружественным или вражеским героем и т.п.) Это киновставка к окончанию квеста «Найдите пропавших гномов»:

 

 

В картах «Сражение» киновставки не практикуются. Оно и понятно – киновставка приостанавливает real-time, что в многопользовательской игре может быть фатально для игрока. :)


2.2.3. Игровое окно

 

Приступая пожалуй к центральному предмету исследования интерфейса, мы тем не менее уделим несколько строк продолжению предыдущего раздела о киновставках. Там мы указали, на то, что диалоги между героями происходят с остановкой real-time и в рамках роликов. Однако из любого правила есть исключения и в данном случае это исключение – диалоги между героями без остановки real-time. На картинке показан пример такого диалога.

 

 

Такие диалоги практикуются реже киновставок и одним из неудобств является то, что хотя идет real-time, управление юнитами затрудняется, поскольку панель управления расположенная внизу экрана временно используется для отображения анимированных лиц говорящих персонажей.

 

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

 

Мы не будем систематически описывать предназначение каждой кнопки интерфейса игрового окна, поскольку многие вещи интуитивно понятны, а для многих нужно объяснять соответствующие игровые моменты, поэтому вместо этого мы просто будем обращать на те или иные элементы, попутно раскрывая особенности игры.

 

 

 

 

На данном скриншоте мы подробно остановимся на героях и панели управления. Поскольку сама идея героев пришла из RPG, то очевидно, атрибутика RPG достаточно серьезно присутствует и тут. Само собой разумеется в результате сражений герой получает опыт. Когда в определенном радиусе от героя погибает вражеский юнит, герой получает опыт соответствующий силе юнита. При достижении определенного уровня опыта герой повышает свой уровень (LevelUp), что отражается на росте его характеристик, и позволяет ему выучить новое заклинание или повысить уровень уже выученного заклинания. Для отслеживания роста опыта существует прогресс-бар прокачки, который сбрасывается после LevelUp-а.

В WC3 уровень героя может иметь уровень от 1 до 10, после чего опыт дальше не накапливается (на картинке изображен скриншот из нестандартной кампании орков, где как всегда все не так :) тут герой имеет 13 уровень). Соответственно в стандартном случае у героя может быть 10 LevelUp-ов. То есть он может выучить заклинание или повысить уровень известного 10 раз. В игре герой может иметь только 4 личных заклинания (некоторые дополнительные могут дать ему предметы), которые устроены так: три простых заклинания с тремя уровнями прокачки и одно высшее заклинание без возможности прокачки. Высшее заклинание можно выучить только когда герой достиг 6 уровня. Прокачка простых заклинаний до второго уровня возможна, когда герой достиг 3 уровня и до третьего, когда герой достиг 5 уровня (то есть нельзя первыми тремя LevelUp-ами прокачать одно из заклинаний до третьего уровня – приходится комбинировать).

Заклинания могут быть пассивными и активными. К пассивным заклинаниям относятся ауры, которые не надо применять, а они действуют постоянно, улучшая характеристики или иные свойства окружающих героя юнитов. Визуально аура отображается в виде большого анимированного (для каждой ауры своя типичная анимация) круга под ногами героя-источника ауры, и маленьких бирюзовых кружков под ногами окружающих его юнитов, которые пользуются его аурой (на картинке герои очень навороченные и почти каждый имеет по одной-две личных ауры, как собственных, так и полученных от артефактов). На скриншоте у героя вторая справа иконка заклинания соответствует «Ауре выносливости», и видно, что она не является кнопкой, то есть на нее нельзя нажать, чтобы применить. Рядом с ней (самая правая) иконка соответствует сильному заклинанию героя, которое тоже пассивно – это заклинание «Перерождение» которое автоматически воскрешает героя через несколько секунд после гибели. Однако у этого заклинания есть кул-даун (время восстановления) – после применения его нельзя применять в течение некоторого времени (иногда довольно большого – для высших заклинаний – игровые сутки), и если кул-даун не закончится, а этого героя убьют еще раз, то «Перерождение» не сработает.

Кул-даун есть и у активных заклинаний, для применения которых нужно дать соответствующую команду, они в свою очередь могут использоваться для атаки одного или нескольких юнитов, для наложения благоприятного или неблагоприятного заклинания на юнит, для атаки территории, для вызова дружественного существа (или даже строительства здания) или для перевоплощения самого героя/юнита применившего заклинание. Для некоторых юнитов есть возможность установить автоматическое применение заклинаний (например «лечить», «замедление» или «набрасывать паутину»),  что облегчает управление. Автоматическое применение заклинаний можно при желании отключить. (Кстати у крестьян тоже есть возможность  автоматически чинить здания – собственно магия от обычных действий мало чем отличается :))

Как обычно в RPG у героя (а в WC3FT, но не в WC3RC, и у некоторых юнитов) есть рюкзак с предметами и по всем законам жанра он весьма ограниченный – всего шесть предметов, что порой заставляет терзаться над какими-нибудь двумя колечками или амулетиками, что придает некоторую остроту. Естественно это все-таки RTS, и облачать героя в сапоги, латы и перчатки не нужно, достаточно просто засунуть их в Inventory (Предметы), чтобы герой мог получить сполна причитающийся бонус. Предметы бывают достаточно многофункциональные, благо Blizzard имеет за плечами опыт двух Diablo. По сути все предметы делятся на артефакты с постоянным эффектом и предметы одноразового использования (эликсиры жизни, свитки заклинаний, предметы вызова дружественных существ, мины и т.п.), которые пропадают после использования. Для некоторых из таких предметов, в одной клетке рюкзака может помещаться до трех штук (например три мины или три бутылки зелья).

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

 

 

 

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

На скриншоте также следует отметить автоматическое применение героем заклинания «Черная стрела» (оно второе из четырех) и вокруг него переливается золотистая рамка – правой кнопкой можно включить/выключить автоприменение.

Еще один момент – подсветка текущих приказов зеленой рамкой (сейчас для группы это идти и атаковать – удобная команда: вся группа идет к определенной точке, но если кого-то увидит по пути, то атакует первого встречного врага, причем если врагов несколько, но бросаются не все на одного, а «кто до кого дотянется»)

 

Что касается самих юнитов, то тут мы видим пример транспорта («труповозка»), над которым желтыми прямоугольниками показано количество пассажиров (трупы в труповозке конечно сложно назвать пассажирами :), но все-таки). В транспорты можно загружать (и выгружать:) отдельные типы юнитов. С этой точки зрения к транспортам можно отнести не только дирижабли и транспортные корабли, но и труповозки и даже «Оплетенный рудник» у ночных эльфов, в который можно «загрузить» светлячков, которые у эльфов выполняют функции рабочих.

 

Что касается рабочих вообще, то коль скоро они являются важнейшим элементом экономики специально для повышения ее эффективности в WC3 предусмотрено сообщение о наличии рабочих, стоящих без дела (например рабочий построил здание или срубил последнее дерево и стоит бездействует). Очевидно, что простой рабочих может серьезно сказаться на благосостоянии игрока, поэтому как только хотя бы один рабочий оказался не у дел – в нижнем левом углу игровой области появляется иконка с числом простаивающих рабочих, кликнув на которую (еще есть горячие клавиша “~”) один из бездельников выделяется и его можно будет озадачить.

 

Сама экономика в WC3 базируется на двух ресурсах – золоте (которое добывается в рудниках, заботливо расставленных на карте) и древесине (которая произрастает в форме деревьев). Кстати сказать WC3 – яркий пример того, что погоня за числом разнообразных ресурсов, проявляющаяся в некоторых стратегиях, не есть необходимый компонент успеха :), напротив в WC3 даже отказались от третьего ресурса (нефти), который был в WC2, и ничуть не испортили игру.

  В верхнем правом углу экрана отображается экономическое состояние, выражающееся в количестве золота, древесины и еды. Еда – это естественный ограничитель размера армии. Для содержания тех или иных юнитов требуется определенное количество еды, которое можно добыть построив фермы. Если ферм недостаточно, то новые юниты построить не удастся. Дополнительное экономическое ограничение на число юнитов заключается в том, что когда потребление еды превышает 50 единиц включается штрафной механизм («Расходы»), отнимающий от добываемого золота и древесины 30%, а когда потребление еды превысит 80 единиц, то штраф достигает 60%. Учитывая то, что скорость добычи золота из одного рудника лимитирована (на нем могут трудиться не более пяти рабочих), то при таком штрафе можно сказать, что деньги вообще не растут. Это дает некоторое преимущество игрокам, у которых армия небольшая (например после неудачной схватки) и дает им некоторые шансы на восстановление боевой формы и противостояние большим армиям.

Иногда, например в многопользовательской игре после того, как один из союзников отконнектился, юниты и ресурсы другого игрока попадают под ваше управление. Для отображения экономических данных  в этом случае появляется панель отображенная на скриншоте в правом верхнем углу под вашими ресурсами, на ней также указано какому из союзников принадлежит эта панель (в данном случае «Альянсу»).

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

 

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

 

По совсем большому счету в WC3 нет особой разницы между зданиями и юнитами, и те и другие имеют очень много общего, а различия состоят, по сути, только в том как они строятся и что умеют делать. С «внутренней» точки зрения в этом можно убедиться, открыв редактор карт и обнаружив, что здания и юниты имеют один набор характеристик (ни много, ни мало полторы сотни!). А с «внешней» - достаточно взглянуть на здания ночных эльфов, которые могут «выкопать корни из земли» и пойти пешим ходом на другое место, чтобы «окопаться» там. При этом в этом юнитообразном состоянии они действительно являются юнитами в полном смысле слова – им можно приказать актаковать, и даже патрулировать :) Вот только толку от них мало, посокльку ходят они очень медленно, а выполнять свои прямые обязанности (строить юниты и производить апгрейды) в откопанном состоянии они не могут. Собственно основной смысл выкапываться – это необходимость перенести базу на другое место. Зато в стационарном закопанном состоянии они также могут драться с врагами, которые их атакуют врукопашную (если не заняты строительством юнита или апгрейдом).

Вообще когда здание работает (то есть занято юнитом или апргейдом), то его внешнее поведение меняется (например начинает идти дым, или начинают светиться окна и т.п.), что облегчает управление и распределение загрузки.

 

 

Обратимся к панели управления. В правом нижнем углу вместо кнопок «идти, атаковать, … применять заклинания» мы видим кнопки строительства юнитов и кнопки апгрейдов (обычно апгрейд конкретного юнита находится под его иконкой, а апгрейды, общие для нескольких выносятся в отдельные здания, которые сами юнитов не строят, а только делают апгрейды)

 

Также мы видим кнопку «Сборный пункт», которая есть у всех зданий, строящих юниты. После того, как юнит построен, он бежит к месту, где расположен флаг, а не толпится вокруг его построившего здания. Флаг можно также поставить на героя – тогда все построенные в здании юниты сразу побегут к герою, где бы он не находился, что очень удобно если герой занят битвой. Также флаг можно поставить на транспорт – тогда юниты будут заполнять транспорт, или (для рабочих) на золотой рудник и даже на деревья – тогда новые рабочие не будут бездействовать, а сразу побегут работать.

 

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

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

Для строительства юнита или апгрейда обычно есть некоторые требования: например наличие у вас определенных зданий или уровня главного здания (его можно проапгрейдить до 3 уровня). Визуально кнопки для недоступных юнитов и апгрейдов отображаются заблокированными.

Отдельно нужно упомянуть о специальных зданиях воскрешающих героев. Поскольку герой является уникальным юнитом, то при его гибели «построить» второго такого же можно в специальном здании (алтаре), который только для того и нужен, чтобы воскрешать павших героев или призывать новых. В сражении обычно вы можете призвать не более трех героев, причем для призыва очередного вам требуется следующий уровень апгрейда главного здания. Воскрешение павшего героя отнимает некоторое время, поэтому ваша армия будет некоторое время вынуждена сражаться без полководца, что грустно. В WC3FT было введено специальное нейтральное здание «Таверна» в котором можно мгновенно воскресить героя (или нанять нового, нестандартного не входящего в набор героев ни одной из рас). Мгновенное воскрешение героя однако не идет ему на пользу, поскольку он воскрешается лишь с частично восстановленным здоровьем и маной, а значит его легче повторно убить.

Нейтральные здания – это здания, не принадлежащие ни одному игроку и неуязвимые. Использовать их можно только если возле здания находится ваш герой или сухопутный юнит. Помимо Таверны к ним относятся различные магазины (где можно купить предметы), лагеря наемников (где можно купить юниты), источники жизни и манны (возле которых ваши юниты могут восстанавливать жизнь или ману), порталы (производят телепортацию войск в определенные области карты), золотые рудники и верфи (позволяют нанимать корабли). Все эти здания расставляются предварительно на карте при создании главы кампании или карты «Сражение» в редакторе карт.

 

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

Вы также можете использовать маркеры в многопользовательской игре. Обратим внимание на кнопки, которые расположены справа от миникарты (перечисляем сверху вниз).

Отметка на миникарте (выделяет точку на миникарте маркером вашего цвета).этот маркер видят ваши союзники, таким образом можно указать им куда идти и т.п.

Рельеф на миникарте (скрыть / показать рельеф)

Цветовые обозначения войск (цвета игроков / союзники-противники / ваши войска-союзники-противники)

Монстры на миникарте (показывать или нет лагеря монстров на миникарте)

Сохранение боевого порядка (да / нет) – если боевой порядок включен, то выделенный отряд автоматически выстраивается и движется так, что воины ближнего боя оказываются впереди, а воины дальнего боя и маги – сзади. [данная кнопка имеет малое отношение к миникарте, но видимо его больше некуда было засунуть]

 

 

2.2.4. Диалоги игрового окна

 

В верхней левой части игрового окна отображены четыре кнопки:

Задания, Меню, Союзники и Журнал.

 

 

Задания

 

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

 

Меню

 

Банальный диалог с пунктами

Сохранить игру

Загрузить игру

Настройки (такие же как в главном меню за исключением некоторых вещей, которые при изменении требуют перезагрузки объектов (например качество текстур) – его можно настроить только в главном меню)

Справка

Советы

Завершить игру (подпункты – начать заново, выйти в главное меню, выйти из игры)

Вернуться к игре

Союзники

 

Этот диалог активен при многопользовательской игре (на картинке это игра по локальной сети, но все игроки кроме вас были выбраны компьютерными, поскольку мне было лень ждать пока кто-нибудь подконнектится из живых людей) и позволяет устанавливать союзы (если это разрешено настройками карты), передавать золото и древесину союзникам: вы кликаете несколько раз на иконку золота и каждый раз добавляется по 100 единиц (если у вас эти деньги конечно имеются). После нажатия «Принять» - вы не принимаете, а наоборот отдаете эти деньги выбранному игроку. А если хотите что-то от него получить – пишите ему сообщения и надейтесь :) Сообщения пишутся прямо по ходу игры: нажимаете Enter – появляется строка ввода текста. Пишите сообщение и еще раз нажимаете Enter – сообщение отсылается всем союзникам. Если хотите отослать в том числе и противникам – жмите Ctrl+Enter.

 

Журнал

 

Журнал пригодится, если вы в пылу битвы просмотрели чьи-то реплики.

 

Ну вот, собственно мы и рассмотрели весь интерфейс игры WarCraft III.

Hosted by uCoz