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

Проектирование простой игры

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

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

Написание сценария игры

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

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

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

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

Надеясь на свой разум и оставив солнце за спиной, наш одинокий искатель приключений отправился вперед. Если ничто не задержит, он должен достигнуть деревни Грандер перед рассветом. Там он остановится отдохнуть, перед тем как идти в центральные районы Земель, где есть надежда найти возможность совершить великие подвиги.

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

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

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

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

Цель игры The Tower

История из предыдущего раздела помогает установить настрой для The Tower и объясняет, как игрок очутился в маленькой деревне, расположенной рядом с темной зловещей башней. Цель игрока в The Tower — освободить проклятую деревню от злых демонов, населяющих расположенную рядом башню. Оказывается, жители деревни пойманы в ловушку и должны быть один за другим принесены в жертву зловещему повелителю демонов башни. Задач игрока — пойти в башню и уничтожить злобных созданий.

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

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

Разработка уровней

Игра The Tower состоит из пяти игровых уровней (также называемых сценами) — деревня, мост, нижний уровень башни, балкон башни, и комната Злого Лорда. Каждый уровень представлен заранее визуализированным растровым изображением задника, точно так же, как это было показано в главе 9, «Смешивание двухмерной и трехмерной графики». Во всех игровых уровнях есть одно растровое изображение, разделенное на шесть небольших текстур. Также у каждого уровня есть упрощенная сетка, используемая для визуализации буфера глубины данного уровня.

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


Рис. 16.1. Уровень деревни, заполненный местными жителями, это то место, где игрок начинает свое приключение

Рис. 16.1. Уровень деревни, заполненный местными жителями, это то место, где игрок начинает свое приключение


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


Рис. 16.2. На мосту к башне встречаются опасности

Рис. 16.2. На мосту к башне встречаются опасности. На рисунке два монстра готовятся к убийству


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


Рис. 16.3. Нижний этаж башни постоянно патрулируют два или более стражников

Рис. 16.3. Нижний этаж башни постоянно патрулируют два или более стражников. На рисунке один стражник отдает команду другому


На рис. 16.4 вы видите четвертый уровень, балкон башни. Игрок должен пройти по этому балкону, чтобы достичь последнего уровня. Здесь игрока ожидает битва против Гранита, стражника, который был магически преображен властелином за позднее предупреждение о появлении игрока.


Рис. 16.4. Балкон башни является логовом мощного демона Гранита

Рис. 16.4. Балкон башни является логовом мощного демона Гранита. Будьте осторожны; у него в запасе есть пара сюрпризов и он очень хочет побыстрее избавиться от игрока


Последний уровень игры, комната Злого Лорда (рис. 16.5), — это место где игра подходит к завершению. Внутри круглых стен этого последнего уровня живет Злой Лорд, предводитель демонов, ответственный за наложенное на деревню проклятие. Чтобы выиграть игрок должен убить Злого Лорда.


Рис. 16.5. Злой Лорд живет в ожидании игроков, посещающих его внутреннее святилище

Рис. 16.5. Злой Лорд живет в ожидании игроков, посещающих его внутреннее святилище. На рисунке Злой Лорд произносит заклинание, повышающее его мощь


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

Определение персонажей

В игре The Tower есть восемь типов персонажей, включая игрока (в игре используется несколько экземпляров одного и того же типа персонажа). Эти восемь типов персонажей описаны в таблице 16.1. Чтобы разобраться в этих определениях, воспользуйтесь следующим списком обозначений:


Таблица 16.1. Персонажи игры The Tower



Номер Название Описание

0 Игрок Персонаж, представляющий игрока. Приведенная ниже статистика относится к началу игры. Class 1, HP:25, MP:10, Atk:6, Def:3, Agl:2, Res:2, Mnt:2, ToH:800, Speed:150, Range:16, Charge:40. Игрок может выучить заклинания с 0 по 4, достигая каждого нового уровня опыта, начиная с уровня 2. Уровень опыта повышается при наборе 10, 30, 80, 150, 350 и 500 очков опыта.
1 Демон-пеон Слабый демон. Class 2, HP:14, Exp:10, Gold:10, Atk:8, Def:1, Agl:1, Res:0, Mnt:0, ToH:700, Speed:64, Range:8, Charge:30.
2 Демон-страж Более сильный вариант пеона. Class 2, HP:28, MP:20, Exp:50, Gold:20, Atk:10, Def:5, Agl:3, Res:2, Mnt:2, ToH:800, Speed:64, Range:10, Charge:30, Atk%:80, Mag%:20, Spells:0, 2.
3 Гранит Этот рожденный магией каменный монстр представляет опасность! Class 3, HP:70, MP:100, Exp:200, Gold:0, Atk:20, Def:15, Agl:5, Res:10, Mnt:10, ToH:800, Speed:16, Range:16, Charge:15, Atk%:80, Mag%:20, Spells:4.
4 Злой Лорд Король хаоса, этот демон — цель игрока, пойманного в ловушку в проклятой деревне. Class 4, HP:150, MP:200, Exp:1000, Gold:500, Atk:25, Def:25, Agl:10, Res:40, Mnt:50, ToH:900, Speed:16, Range:16, Charge:40, Atk%:70, Mag%:30, Spells:0, 5, 6.
5 Старейшина Деревенский староста. Он исцеляет вас всякий раз, когда вы разговариваете с ним.
6 Стражник Деревенский стражник. Блокирует проход через мост к башне.
7 Крестьянин Деревенский лавочник. Продает магические предметы и целебные эликсиры.


В качестве примера использования описания персонажа и списка обозначений возьмем персонаж с номером 3. Гранит (имя персонажа) относится к классу 3, имеет 70 очков здоровья, 100 очков маны, 200 очков опыта (они даются игроку, когда тот убьет Гранита), у него нет золота, и он обладает следующими способностями:


Атака: 20 Скорость передвижения: 16 единиц в секунду
Защита: 15 Дальность атаки: 16 единиц
Ловкость: 5 Скорость зарядки: 15 единиц в секунду
Сопротивляемость магии: 10 Вероятность атаки оружием: 80%
Интеллект: 10 Вероятность использования магии: 20%
Меткость: 800 Известные заклинания: 4 (земляной вал)

Чтобы лучше прочувствовать смысл определений персонажей я рекомендую загрузить программу MCLEdit и использовать ее для редактирования файла Game.mcl (все это находится на прилагаемом к книге CD-ROM; загляните в каталог \BookCode\Chap12\MCLEdit). В списке есть только один персонаж, на котором действительно надо остановить внимание, — это персонаж с номером 0, сам игрок.

Статистика персонажа, приведенная в таблице 16.1 (и в главном списке персонажей, используемом в демонстрационной игре — смотрите \BookCode\Chap16\Data\Game.mcl) представляет сведения для начала игры.

ПРИМЕЧАНИЕ
Вы можете редактировать главный список персонажей (MCL), используя программу MCL Editor, которая была описана в главе 12, «Управление игроками и персонажами».

Когда игрок убивает монстра, очки опыта игрока немного увеличиваются (в зависимости от имеющихся у монстра очков опыта), и когда игрок достигнет определенного уровня очков опыта, его статистика увеличивается на следующие значения:

Помимо увеличения статистики, игрок узнает новые заклинания, в зависимости от достигнутого уровня опыта. Ниже приведены значения очков опыта по достижении которых происходит это «повышение уровня» опыта, вместе с изучаемыми заклинаниями:

Распределение персонажей

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


0: персонаж игрока.

1: деревенский старейшина.

2: деревенский стражник.

3: деревенский лавочник.

4: монстр в деревне в начале игры.

5: демон в башне, бегущий предупредить Злого Лорда.

6: Гранит, каменный демон.

7: Злой Лорд.


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

Создание предметов и заклинаний

В игре The Tower восемь предметов, и все они перечислены в таблице 16.2. Несколько предметов продаются; остальные игрок получает от других персонажей. Прогаваемые предметы перечислены с ценой (указывается числом, за которым идут буквы gp), и их можно приборести на уровне с деревней.


Таблица 16.2. Предметы игры The Tower



Номер Название Описание

0 Золото Валютой в игре The Tower являются золотые монеты.
1 Меч Оружие, увеличивающее наносимый атакующим урон на 15%. Игрок начинает игру с мечом.
2 Магический меч Сильный меч, увеличивающий наносимый атакующим урон на 50%. Цена: 100gp.
3 Кожаный доспех Слабый обшитый кожей доспех, уменьшающий повреждения от атаки на 10%. Вы получаете его от деревенского стражника.
4 Магическая броня Превосходная броня из зачарованного металла. Уменьшает ущерб от атаки на 50%. Цена: 100gp.
5 Малый щит Небольшой слабый щит, уменьшающий ущерб от атаки на 5%. Вы получаете его от деревенского стражника.
6 Магический щит Превосходный щит из шкуры красного дракона. Уменьшает ущерб от атаки на 20%. Цена: 100gp.
7 Целебный эликсир Одна доза этого эликсира добавляет вам 50 очков здоровья. Цена: 10gp.


В примере игры вы используете семь заклинаний пронумерованных от 0 до 6. Все они перечислены и описаны в таблице 16.3. Для исследования специфики каждого заклинания вы можете воспользоваться программой Master Spell List Editor из главы 12. Заклинания игры содержатся в файле Game.msl (он расположен на прилагаемом к книге CD-ROM; загляните в \BookCode\Chap16\Data\Game.msl).


Таблица 16.3. Заклинания игры The Tower



Номер Название Описание

0 Огненный шар Швыряет шар огня в одиночного врага для нанесения легких повреждений. Цена: 5, Исцеление: 4, Эффект: Изменение здоровья -10, Цель: одиночная, Радиус эффекта: 32, Дальность: 512.
1 Лед Покрывает жертву льдом, нанося средние повреждения. Цена: 10, Двойная опасность: 4, Эффект: Изменение здоровья -20, Цель: одиночная, Радиус эффекта: 40, Дальность: 512.
2 Исцеление Восстанавливает 50 очков здоровья заклинателя. Цена: 8, Эффект: Изменение здоровья +50, Цель: на себя.
3 Телепортация Телепортирует игрока в ближайший город. Цена: 10, Эффект: Телепортация, Цель: на себя.
4 Земляной вал Пробуждает подземные силы, громоздящие куски скал. Цена: 10, Исцеление: 3, Эффект: Изменение здоровья -30, Цель: одиночная, Радиус эффекта: 40, Дальность: 512.
5 Контузия Огромный выброс силы, наносящий серьезные повреждения. Цена: 20, Эффект: Изменение здоровья -40, Цель: область, Радиус эффекта: 1024, Дальность: 1024.
6 Сила Зла Заклинатель увеличивает свою мощь, оказавшись заключенным в шар тьмы. Цена: 10, Эффект: установка статусов 10832, Цель: на себя.


Чтобы лучше разобраться с заклинаниями в таблице 16.3, посмотрите следующий список условных обозначений:

 

ПРИМЕЧАНИЕ
Вы можете просматривать и редактировать заклинания игры The Tower с помощью программы Master Spell List Editor, которая рассматривалась в главе 12.

Некоторые из представленных выше заклинаний являются уникальными возможностями отдельных персонажей. Например, заклинание силы зла использует только Злой Лорд — он направляет его на себя чтобы увеличить свою мощь (особым образом устанавливая дополнительные статусы и увеличивая скорость). Обратитесь к главному списку персонажей игры (\BookCode\Chap16\Data\Game.mcl), чтобы определить какой персонаж какие заклинания знает.

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

Разработка скриптов

Вы управляете всем игровым содержимым The Tower, таким как диалоги, посредством использования скриптов. Здесь применяется скриптовая система Mad Lib Scripts, которая была рассмотрена в главе 10, «Реализация скриптов». Единый шаблон действий, Game.mla (смотрите \BookCode\Chap16\Data\Game.mla) содержит набор действий, которые могут оказаться полезными для ваших проектов. Игровой шаблон действий занимает более 200 строк и слишком велик, чтобы быть приведенным здесь, поэтому я настоятельно рекомендую вам открыть его в текстовом редакторе и обращаться к нему по ходу чтения данного раздела.

Шаблон действий разделен на следующие шесть групп действий:

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

Скрипты, которые вызываются когда игрок обращается к другому персонажу, вы именуете в соответствии с идентификационным номером персонажа перед которым ставится слово char. Например, у персонажа с номером 2 есть файл скрипта с именем char2.mls, исполняемый каждый раз, когда игрок щелкает по этому персонажу кнопкой мыши.

Вы размещаете триггеры карты на каждом уровне используя действия скрипта. Когда триггер срабатывает, запускается связанный с ним скрипт. Вы составляете имена триггеров карты из слова trig и следующего за ним идентификационного номера триггера — таким образом, триггер с номером 4 использует скрипт из файла с именем trig4.mls.

Для скриптов входа на уровень используется слово scene, за которым идет номер, назначенный карте уровня. Например, когда персонаж попадает на карту с номером 4, выполняется скрипт scene4.mls.

Для завершающих трех методов запуска скрипта используются трехбуквенные имена файлов скрипта, за которыми идет идентификационный номер персонажа или карты уровня. Для скрипта завершения маршрута вы используете имя eor (end of route) за которым следует идентификационный номер персонажа. К примеру, когда персонаж с номером 2 достигает конечной точки маршрута, выполняется скрипт eor2.mls.

ПРИМЕЧАНИЕ
Скрипт завершения маршрута (end-of-route script) обрабатывается когда персонаж достигает последней точки назначенного ему маршрута.

Для имен файлов скриптов начала сражения используется сокращение soc (start of combat), за которым следует номер карты уровня. То же самое применимо и к скриттам завершения сражения, только используется eoc (end of combat) — например, eoc3.mls исполняется когда завершается сражение на карте уровня с номером 3.

Держа в уме эти шесть методов именования файлов скриптов, взгляните на приведенный ниже список скриптов, используемых в игре The Tower (вы найдете все эти скрипты на CD-ROM):

Большинство скриптов очень просты. Взгляните, например, на скрипт trig2.mls:

Set character id=(*0*) direction to (*0.000000*)
Teleport character id=(*0*) to map (*1*) at
                 (*100.000000*) (*0.000000*) (*-170.000000*)

Цель trig2.mls, размещенного на второй сцене (мост), заключается в телепортации персонажа на первую карту (деревня) и изменении направления игрока. Чтобы увидеть более сложный скрипт, взгляните на scene4.mls, выполняемый когда игрок попадает на четвертый уровень:

// (*Сохраняем номер сцены*) //
Set variable (*1*) to (*4*)
--------------
// (*Воспроизводим музыку сцены *) //
Play music (*1*)
--------------
// (*Добавляем триггеры телепортации *) //
Add triangle trigger id=(*6*) at
                (*-177.00000*) (*200.000000*) (*-144.000000)
Add triangle trigger id=(*7*) at
                (*177.00000*)  (*200.000000*) (*210.000000)
--------------
// (*Добавляем Гранита, если он еще не убит *) //
if flag (*8*) equals (*FALSE*) then
    Add character id=(*6*) definition=(*3*) type=(*NPC*) at
            XPos=(*170.000000*) YPos=(*0.000000*) ZPos=(*-60.000000*)
            direction=(*3.925000*)
    Set character id=(*6*) AI to (*Stand*)
EndIf

Хотя он и значительно длиннее, чем другие игровые скрипты, scene4.mls исключительно прост. Скрипт начинается подобно всем другим скриптам сцен — с сохранения номера карты сцены в переменной с номером 1 и воспроизведения назначенной для уровня музыки. Затем на сцене размещаются два триггера, телепортирующие игрока обратно на первый этаж башни и в покои Злого Лорда.

В завершение скрипта проверяется флаг с номером 8 и, если его значение FALSE, к уровню добавляется персонаж. Этот персонаж, Гранит, является персонажем номер 3 в главном списке персонажей. В игровом движке Граниту назначается идентификационный номер персонажа 6. Сперва Гранит помечается как NPC (независимый персонаж) и просто стоит и ждет, пока игрок не заговорит с ним.

Когда с ним заговорят, обрабатывается скрипт Гранита — обмен несколькими словами между Гранитом и игроком, после чего тип персонажа Гранита меняется на Monster. Когда игрок побеждает Гранита, скрипт завершения сражения присваивает флагу 8 значение TRUE, и та часть скрипта scene4.mls, которая добавляет Гранита на карту, будет пропущена, когда игрок снова вернется на сцену с номером 4. Изобретательно, не так ли?

В разделе «Обработка скриптов», далее в этой главе, вы увидите как обрабатываются скрипты в игре The Tower. А сейчас перейдем к определению того, как игрок будет взаимодействовать с игрой.

Определение управления

Игрок взаимодействует с игрой The Tower используя клавиатуру и мышь. Работая с главным меню (рис. 16.6) игрок использует мышь для выбора одного из пунктов. В главном меню доступны следующие пункты:


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

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


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

Игрок использует клавиши управления курсором для перемещения персонажа и мышь, чтобы выбирать персонаж, который будет целью заклинания или атаки. Нажатие клавиши перемещения курсора вверх вызывает движение игрока вперед, а клавиши перемещения курсора влево и вправо поворачивают его. Наведите указатель мыши на находящегося вблизи монстра и щелкните левой кнопкой, чтобы атаковать его. Заметьте, что игрок должен быть достаточно близко к монстру, чтобы иметь возможность его атаковать. Щелчок левой кнопкой по NPC начнет «разговор» с этим персонажем. Игроку не надо приближаться вплотную к персонажу для разговора — задачу выполняет простой щелчок по персонажу, расположенному в любом месте экрана.

Нажатие цифровых клавиш от 1 до 5, в то время как указатель мыши находится над персонажем (не являющимся NPC), приводит к произнесению заклинания, целью которого является данный персонаж. Нажатие клавиши 1 вызывает заклинание огненного шара, нажатие клавиши 2 вызывает заклинание льда, нажатие 3 — заклинание исцеления, 4 вызывает телепортацию и 5 вызывает земляной вал. У заклинаний 3 и 4 целью может быть только игрок, так что не имеет значения, на какого персонажа вы указываете, произнося эти заклинания, их эффект всегда будет действовать на игрока. Заметьте, что произносить можно только известные заклинания, а чтобы определить, какие заклинания знает игрок, следует открыть окно состояния персонажа.

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

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

Планирование хода игры

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

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

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

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

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

Игрок поднимается по скату и через вторую дверь уровня попадает на балкон башни, где его ждет обманчиво неподвижное каменное существо (Гранит). После разговора это создание атакует игрока. После смерти этого существа открывается путь в покои Злого Лорда.

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

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

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

Например, в начале игры исполняется скрипт scene1.mls. Тип персонажа игрока меняется на NPC и ему назначается маршрут. Это заставляет игрока идти в деревню, и, как только он достигает конечной точки назначенного маршрута, в действие вступает новый скрипт, добавляющий к уровню монстра. Затем монстр следует по маршруту. Когда монстр достигает конечной точки, запускается новый скрипт, отображающий диалог между игроком и монстром. По завершении диалога тип персонажа игрока меняется обратно на PC, и начинается сражение.

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

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

Использование флагов замечательно демонстрируется в The Tower — просмотрите каждый используемый файл скрипта, чтобы лучше понять применение флагов. Все игровые скрипты вы найдете на прилагаемом к книге CD-ROM.


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

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