Создание простой адвентюры — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Добавление мини-игр)
(Добавление мини-игр)
Строка 141: Строка 141:
 
[[Файл:Pic8.jpg]]
 
[[Файл:Pic8.jpg]]
  
Машины с ''1'' по ''0'' имеют два состояния, которые приведены на рисунке ниже. При этом параметры объектов такие: al = 0,01; scale x = scale y = 3. Графический ресурс mask из базы ресурсов.
+
Машины с ''1'' по ''0'' имеют два состояния, которые приведены на рисунке ниже. При этом параметры объектов такие: al = 0,01; scale x = scale y = 3. Графический ресурс - mask из базы ресурсов. Значения для выделенного на рисунке поля: 1,2,3,4,5,6,7,8,9,0 для каждой из машин соответственно.
  
 
[[Файл:Pic9.jpg]]
 
[[Файл:Pic9.jpg]]
 +
 +
Машина ''recall'' осуществляет сброс набранного номера. По клику происходит перерисовка графического ресурса данной машины (опускается рычаг), обнуление параметров ''call'' и ''click'', которые отвечали за правильность набора и счет кликов и инит проверочной машины. Состояния для машины сброса показаны на рисунке ниже.
 +
 +
[[Файл:Pic10.jpg]]
  
 
== Упражнения ==
 
== Упражнения ==

Версия 11:32, 5 февраля 2013

Урок 10 << Оглавление >> Урок 1

Цель: создать простой адвентюрный проект

Задачи:

  • Ознакомится с понятием концепта игры и её сценария
  • Научться работать с инвентарем и книгой заданий
  • Добавить в проект миниигры
  • Подготовить игру к релизу и протестировать результат на телефоне и планшетнике

Концепт и сценарий

Создание больших игровых проектов типа адвентюр начинается с написания концепта игры. Концепт - это короткий рассказ из которого становится ясным: антураж игры, её завязка, основные сюжетные линии и финальная развязка игры. Сценарий - это подробное описание архитектуры игры, списка экранов, предметов на них и логики прохождения. Для реальной игры, обычно, концепт состоит из одной странички A4 формата. Сценарий, в зависимости от сложности игры , может занимать до 100 страниц и более.

Концепт

Сценарий

Создание игры

Задача: создать проект-адвенчуру, используя готовую базу ресурсов и текстовую базу.

Описание адвенчуры: Игра начинается в холле гостиницы, в задачнике есть первая задача - "Позвонить по номеру...", происходить диалог с администратором. Администратор просит помочь разобрать ключи, в задачник записывается вторая задача "Помочь разобрать ключи". По клику на ключи открывается мини-игрушка мемори. По прохождению мемори, открывается локация комната. По клику на телефон открывается мини-игра "набор номера", но позвонить не удается так, как телефон отключен за неуплату, следует обратиться к администратору. Администратор дает третье задание "Навести порядок во дворе". Открывается локация двор гостиницы и хидден во дворе. По прохождению хиддена в инвентарь попадают собранные предметы, с которыми игрок может передвигаться по гостинице. Для завершения третьего задания необходимо правильно применить собранные предметы во дворе. После мини-игры во дворе администратор включает телефон. Набрав правильный номер игрок завершает адвенчуру.


Экраны

Большинство проектов адвенчур содержат большое количество экранов. По-этому очень важно с самого начала создания игры продумать структуру проекта в редакторе.

Сюжет следует разделить на блоки. Блоки - на сюжетные локации. Сюжетные локации - на простые локации, экраны. Например, игрок исследует город. К сюжетной локации можно отнести вокзал, отель, больницу, магазин и т.д. Каждую из таких локаций следует разбить на простые локации, экраны. Так больницу можно разбить на холл, коридоры, кабинеты и т.д.

В дереве проекта экраны относящиеся к одной сюжетной локации следует размещать рядом, в той последовательность, в которой они следуют в игре. Названия экранов должны быть короткими и при этом давать понятие о том, что находиться на экране. Помимо человека, который создает игру, названия должны быть понятны и другим людям, которые могут работать с проектом. Например, 1_h85_out, может нести такую информацию, 1 - первый блок, h85 - локация, дом №85, out - снаружи, двор.

Кроме экранов-локаций проект может содержать экраны с встроенными мини-играми. О добавлении мини-игр в проект написано ниже.

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

Экран-локация:

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

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

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

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

1 - сцена содержащая основные графические объекты, активные зоны, навигацию и т.д., уникальные для данного экрана. На эту сцену добавим фон (bg_hotel), анимацию лица (hotel), ключи (keys), две кнопки(btn_green_up), два текстовых облака (text_cloud_1 и _2) и маску (mask). Расположим объекты на экране так, как показано на Рис.1.

Pic1.jpg

Настроим кнопки (стрелочки) и текстовые объекты (облачка). Параметры настройки приведены ниже (Рис.2). В первом окне показаны настройки text_cloud_2, во втором - text cloud_1, в третьем - правой кнопки, в четвертом - левой кнопки. Для кнопок поле перейти на заполняется после того, как будут созданы соответствующие экраны.

Pic2.jpg

Теперь настроим анимацию лица. Персонаж на экране должен говорить, когда его реплика, и замолкать по клику или по истечению некоторого времени. Следовательно, анимации меняет тип объекта на machine (Рис.3). Машина будет иметь два состояния off (молчание, анимация невидима) и on (разговор, анимация видима и длится 3 секунды).

Pic3.jpg

Маске установим такие параметры: al - 0,01; scale x - 53; scale y - 37; тип - machine. Эта маска будет воспринимать любой клик по экрану и управлять диалогами, задачником и т.д. Она должна находиться по z выше всех объектов сцены, кроме кнопок переходов между экранами.

Следующая сцена на первом экране Inv_1. Эта сцена будет содержать все задания и инвентарь, которые будут в игре добавляться на этом экране. Обязательно у этой сцены должен быть параметр память = 1.

Третья сцена game первого экрана будет содержать панель с инвентарем и задачник с задачами.

Второй экран 2_memory содержит одну сцену с мини-игрушкой memory. Как встроить мини-игру описано в соответствующем разделе.

Третий экран 3_room, в него игрок попадает по левой кнопке (стрелочке) с первого экрана. Экран содержит две сцены:

3 - сцена содержащая основные графические объекты, активные зоны, навигацию и т.д., уникальные для данного экрана. На эту сцену добавим фон (bg_hotel), кнопку(btn_green_up) и маску (mask).

Кнопку располагаем справа и настраиваем аналогично кнопке btn_yard c первого экрана, за исключение параметров: состояние - пустое поле (по умолчанию будет состояние up); перейти на - экран 1_hotel. Маску будет осуществлять переход на четвертый экран. На рисунке ниже показаны параметры, которые необходимо установить маске. Поле перейти на заполняется после того, как будет создан соответствующий экран.

Pic4.jpg

Вторая сцена game - расшариная. Зайдем на первый экран, скопируем сцену game и вставим как ссылку в экран 3_room.

Четвертый экран 4_phone ,будет содержать одну сцену с мини-игрушкой "набор номера", которая будет реализована с использованием машин и описана в разделе мини-игры. На эту сцену можно поместить все объекты из папки phone базы ресурсов.

Пятый экран 5_yard будет содержать Хидден и мини-игру "уборка во двре". На экране будет нахоться три сцены:

5 - сцена содержащая основные графические объекты, активные зоны, навигацию, хидден-объекты и т.д. На эту сцену можно поместить все объекты из папки yard базы ресурсов, кроме Inv_*.

Inv_5 - сцена содержащая инвентарные объекты, который будут добавляться на этом экране. Обязательно у этой сцены должен быть параметр память = 1.

Третья сцена game - расшариная. Зайдем на первый экран, скопируем сцену game и вставим как ссылку в экран 5_yard выше остальных сцен.

Шестой экран Options - глобальный (1), содержит одну сцену и один безресурсный объект типа Options. В процессе создания адвенчуры машиной (кнопкой и т.п.) нужно будет записывать в опции какой-то параметр.

После того, как все экраны и сцены созданы должна получиться структура как на рисунке ниже.

Pic5.jpg

Инвентарь

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

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

...

Книга задач

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

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

...

Добавление мини-игр

В адвенчуре может быть множество встроенных мини-игр. Для создания мини-игр можно использовать готовые механики (Memory, Hidden, Patchwork, Labyrinth, Match, Pipes, Puzzle), либо создавать мини-игры с помощью машины состояний. Второй способ займет много больше времени, зато позволит создать оригинальную мини-игру. Чем разнообразнее будут мини-игры, тем интереснее будет адвенчура.

Размещать мини-игру лучше всего на отдельном экране. Экран с мини-игрой следует называть так, чтоб было понятно, к какой локации он относится и какой тип игры, например, Hotel_memo (сразу понятно, что речь идет о игре Memory в локации отель).

Так же мини-игру можно размещать на отдельной сцене в экране-локации. Тогда сцену с мини-игрой можно будет включать (отключать), когда игрок открывает (закрывает) мини-игру, с помощью параметра vis. Если установить сцене параметр vis=0, то все объекты, находящиеся на сцене будут невидимы для клика. Если установить параметр vis=1, то сцена станет видимой.

Третий способ размещения мини-игры на одной сцене с объектами локации. Этот способ наиболее неудобен так, как можно легко спутать объекты относящиеся к мини-игре с объектами относящимися к локации.

У мини-игры должно быть минимальное количество "точек входа". Если в игре существует несколько моментов, когда игрок может попасть в мини-игру, то во все моменты должно вызываться одно (если позволяет сюжет) и то же состояние, в котором открывается мини-игра. По прохождению мини-игры следует записывать параметр в опции, что игра сыграна, например, hidden1=1. Тогда этот параметр можно будет использовать в различных условиях, например, если игра сыграна, то открыть сундук (дверь).

Первая мини-игра - Мемори с ключами. Открываем экран 2_memory. На сцену добавляем фон (bg_memory) и кнопку выхода(btn_red_up). Создаем безресурсный объект m_done, машину, которая будет запускаться объектом memory по завершению и записывать в опции игровой параметр. Создаем на сцене объект типа memory. Настраиваем кнопку выхода, машину и объект memory как показано на рисунке ниже.

Pic6.jpg

Вторая мини-игра - Набор номера. На рисунке ниже показано дерево проекта справа. На экране 4_phone находятся игровые объекты, расположение которых видно в центре рисунка. Слева раскрыты параметры маски, которая будет проверять набранный номер и блокировать клик. Объекты с 0 по 9 - маски воспринимающие клик, каждая маска находится над соответствующей цифрой набора. Машина phone_table будет вращаться, записывать параметры в опции и запускать проверку номера в зависимости от того, какая цифра нажата. На рисунке ниже описаны состояния машины phone_table. В состоянии init машина ничего не выполняет. Состояния с 1 по 0 однообразны, вызываются кликом на соответствующую маску, машина вращается на определенный для каждой цифры угол. Состояния 1, 5, 6, 8 отличаются тем, что в них увеличивается параметр call, если цифры нажимать в правильной последовательности (56188). В состоянии back машина возвращается в исходное положение, увеличивает параметр click на 1 (счетчик кликов, чтобы нельзя было набрать, например, 513688) и вызывает проверку.

Pic8.jpg

Машины с 1 по 0 имеют два состояния, которые приведены на рисунке ниже. При этом параметры объектов такие: al = 0,01; scale x = scale y = 3. Графический ресурс - mask из базы ресурсов. Значения для выделенного на рисунке поля: 1,2,3,4,5,6,7,8,9,0 для каждой из машин соответственно.

Pic9.jpg

Машина recall осуществляет сброс набранного номера. По клику происходит перерисовка графического ресурса данной машины (опускается рычаг), обнуление параметров call и click, которые отвечали за правильность набора и счет кликов и инит проверочной машины. Состояния для машины сброса показаны на рисунке ниже.

Pic10.jpg

Упражнения


Урок 10 << Оглавление >> Урок 1