netlib.narod.ru< Назад | Оглавление | Далее >

Проектирование внешних боевых последовательностей

Некоторые из моих самых любимых воспоминаний о ролевых играх связаны с битвами. Заметьте, не просто с любыми типами сражений. Я говорю о тех невероятных боевых последовательностях, которые сталкивают вас лицом к лицу со злыми ордами в стратегической войне. Если вы играли в Final Fantasy 7, то знаете, о каком виде боевых последовательностей я говорю.

Такие игры, как Final Fantasy 7, рассматривают сражения совсем под другим углом. Вместо того, чтобы сражаться в реальном времени, как это делается в примере Chars (находящемся на CD-ROM в папке \BookCode\Chap12\Chars) из главы 12, «Управление игроками и персонажами», Final Fantasy 7 переключается на внешний экран боевой последовательности, где представление намного ближе к действию. Рис. 14.1 показывает типичную внешнюю боевую последовательность игры (из демонстрационной программы Battle, разработанной для этой главы; загляните в папку \BookCode\Chap14\Battle на CD-ROM).


Рис. 14.1. Камера глядит на действие с фиксированной позиции, охватывая всех вовлеченных персонажей

Рис. 14.1. Камера глядит на действие с фиксированной позиции, охватывая всех вовлеченных персонажей. На этом рисунке монстр мощным заклинанием атакует игрока


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

ПРИМЕЧАНИЕ
Внешние боевые последовательности означают, что боевые последовательности отделены от последовательностей навигации в игре. Например, игрок, идущий по уровню, вступает в бой, и игра, в свою очередь, переключается на экран боевых последовательностей.

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

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

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

ПРИМЕЧАНИЕ
Большинство действий, такие как использование предметов, экипировка новым вооружением и броней, атака и произнесение заклинаний, требуют наличия полностью заряженного таймера игрока для выполнения действия.

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

Техническая сторона

Арена представлена единой сеткой, также как персонажи и заклинания. Фактически, контроллеры персонажей и заклинаний, разработанные в главе 12, прекрасно подходят для боевых последовательностей. Вам надо только подстроить несколько вещей, чтобы эти контроллеры работали на вас.

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

Чтобы обрабатывать различия в расстояниях, вы меняете данные главного списка персонажей и главного списка заклинаний. Персонажам нужна очень большая дальность атаки, поэтому вы запускаете Master Character List Editor и увеличиваете дистанцию атаки для каждого персонажа. На рис. 14.2 показан один персонаж, для которого параметр Attack Range установлен равным 1024.


Рис. 14.2. Параметр каждого персонажа Attack Range должен быть увеличен в диалоговом окне Modify Character программы MCL Editor

Рис. 14.2. Параметр каждого персонажа Attack Range должен быть увеличен в диалоговом окне Modify Character программы MCL Editor таким образом, чтобы каждый участвующий в сражении персонаж мог атаковать другого, независимо от расстояния между ними


Что касается заклинаний, вы увеличиваете максимальную дистанцию каждого из них в программе Master Spell List Editor. На рис. 14.3 показано одно из заклинаний, для которого я увеличил значение максимальной дистанции до 1024.


Рис. 14.3. Диалоговое окно Modify Spell программы MSL Editor позволяет вам настроить дальность действия заклинаний

Рис. 14.3. Диалоговое окно Modify Spell программы MSL Editor позволяет вам настроить дальность действия заклинаний


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

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz