Проектирование экранов игры — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Модификаторы)
м
 
(не показаны 44 промежуточные версии 5 участников)
Строка 1: Строка 1:
*'''Лейаут''' - Проект с заданными параметрами физического разрешения экрана
+
[[Файл:Layout.png|right]]
*'''Экран''' - Основной объект используемый для проектирования уровней игр, должен содержать как минимум одну сцену.
+
Немного вводных терминов для начала проектирования экранов игры.  
*'''Сцена''' - принадлежит экрану, содержит объекты игры
 
  
 +
Игра обычно запускается на различных устройствах (телефон, планшетник, десктоп), важным понятием является лейаут (layout).
 +
Условно ''layout'' - это различные мониторы, имеющие то или иное разрешение в пикселях и разное соотношение высоты и ширины. Игра может проектироваться только для одного лейаута, однако чаще поддерживается сразу несколько лейаутов.
  
[[Файл:Layout.png]]
+
Игра состоит из набора экранов. На каждом экране может находится одна или более сцена.
 +
Например, пусть на экране находится игровое поле и панель с интерфейсными кнопками. Эти две области можно оформить при помощи различных сцен. Сцены содержат игровые объекты. Ими могут быть картинки, базовые элементы управления (кнопки, чекбоксы), миниигры, универсальные машины состояний (программирующие логику) и т.д.  
  
 +
*'''Лейаут''' - Проект с заданными параметрами физического разрешения экрана
 +
*'''Экран''' - Основной объект используемый для проектирования уровней игр, должен содержать как минимум одну сцену.
 +
*'''Сцена''' - принадлежит экрану, содержит объекты игры. Размеры сцены могут отличаться от размеров лейаута.
  
  
 +
==Принципы формирования сцен и их наполнения==
  
== Параметры Экрана ==
+
*Сцены следует формировать по группам. То есть в одну сцену необходимо выносить меню миниигры, в другую фон, в третью - группы объектов.  
 
+
*Также, в некоторых случаях, чаще всего в адвентюрах, в отдельные сцены одного экрана можно выносить несколько не нагруженных локаций для быстрого перехода между ними. В таком варианте одна сцена выключается, другая - включается.  
=== Глобальность экрана ===
+
*В Хидденах в отдельную сцену можно выносить хидденобъекты и фон, т.к. при наличии "утки" фон тоже должен быть масштабирован.  
 
+
*В отдельую расшаренную сцену также целесообразно выносить объекты которые будут использоваться на нескольких экранах - инвентарь, навигационные кнопки и машины и другие объекты.
Если 1, то экран глобальный - объекты этого экрана доступны из любого другого экрана.
 
 
 
Если 2, то экран глобальный + мы на него переходим в обязательном порядке после потери фокуса.
 
 
 
=== Сохраняемость ===
 
 
 
0 - не сохраняемый
 
 
 
1 - сохраняемый при выходе (то есть если мы закроем приложение на устройстве, а потом запустим, то оно откроется с этого же экрана если он сохраняемый)
 
 
 
=== Цвет экрана ===
 
 
 
обычно это 000000(черный).
 
 
 
== Параметры Сцены ==
 
 
 
=== Инициализация ===
 
                   
 
Выравнивание - начальные размер и положение сцены, значения от 0 до 3.
 
 
 
Левый бордюр -  левый бордюр сцены (значение в пикселях на сколько мы может оттянуть левый край сцены от левого края экрана)
 
 
 
Правый бордюр - правый бордюр сцены (значение в пикселях на сколько мы может оттянуть правый край сцены от правого края экрана)
 
 
 
Верхний бордюр - верхний бордюр сцены (значение в пикселях на сколько мы может оттянуть верхний край сцены от верхнего края экрана)
 
 
 
Нижний бордюр - нижний бордюр сцены (значение в пикселях на сколько мы может оттянуть нижний край сцены от нижнего края экрана)
 
 
 
[[Файл:Screen.jpg]]
 
 
 
Смещение по горизонтали - допустимое смещение сцены по горизонтали при перетаскивании
 
 
 
Смещение по вертикали - допустимое смещение сцены по вертикали при перетаскивании
 
 
 
После смещения когда мы отпускаем сцену она возвращается в свое крайнее (левое, правое, верхнее, нижнее) положение, заданное бордюрами. 
 
 
 
Время восстановления - время анимации востановления начальных размеров(при скейле) и положении(при смещении) сцены.
 
 
 
=== Положение ===
 
 
х - Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены
 
 
 
у - Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены
 
 
 
'''''Обычно для того чтоб сцена расположилась в центре экрана нужно координаты сцены задать в два раза меньше размера экрана. (Если размер экрана 960*640 то сцена с координатами 480*320)'''''
 
 
 
=== Размер ===
 
 
 
w - ширина сцены в пикселях
 
 
 
h - высота сцены в пикселях
 
 
 
=== Модификаторы ===
 
 
 
alpha - прозрачность: от 0 (прозрачен) до 1 (не прозрачен)
 
 
 
angle - угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы
 
 
 
scale x - масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.)
 
 
 
scale y - масштаб по оси y (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.)
 
 
 
z - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим
 
 
 
память - если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)
 
 
 
=== Показ сцены ===   
 
                           
 
время - Время в ms показа сцены в рабочем состоянии (если определено поле переход)
 
 
 
переход - Экран к которому нужно перейти после окончания времени показа сцены
 
  
растягиваемая - Если 1, то сцена может быть растянута
+
==Принципы формирования экранов в книгах==
  
таскаема - Если 1, то сцену можно таскать мышкой, если 2, то ее можно таскать даже за объекты
+
При создании книги, полезно использовать следующие сцены:
 +
[[Файл:scene_book.jpg|left|500pix]]
 +
1. Flurry - сцена, для отсылки действий пользователя на сервер. Нужна для сборки статистики. Как правило, отсылаются: экран, количество секунд, проведённых на нём, действия игрока на сцене. Как правило, сцена не делается расшаренной, однако при помощи групп можно сделать её расшаренной, с некоторыми локальными модификациями.
  
границы - Если 1, то сцена, при таскании упирается в границы экрана (если она больше, то снаружи, если меньше, то изнутри
+
2. Интерактивная начинка книги. Уникальная сцена для каждой страницы книги. Содержит "игровые" элементы книги. Например, котик, мурчащий при клике на него, зайчик, убегающий при клике и т. п.
  
двойной тач - Если 1, то сцена обрабатывает двойной тач
+
3. Стрелки. Стрелки переключения на следующую/предыдущую страницу книги.
  
=== Утка (Масштабирование мультитачем) ===
+
4. Всплывающий список страниц - расшаренная сцена, всплывающая при клике на неё. Содержит уменьшенные картинки страниц книги, при клике на которые происходит переход на соответствующую страницу.
 
min scale - Минимальный коэффициент масштабирования (0.1)
 
  
max scale - Максимальный коэффициент масштабирования (4)
+
5. Текст - текст книги и управление озвучкой.
  
=== Открытие ===
+
6.  Уши. Части экрана, которые будут видны, если соотношение сторон на устройстве, отличается от оригинального соотношения сторон в книге.
  
Сцена может открыться (появится) не сразу, а выполнив определенные действия (выехать, проявиться по прозрачности и т.п.)
+
7. Меню - обработка нажатия функциональных кнопок устройства (например, когда игрок закрывает приложение)
  
пауза - Время в ms перед началом появления сцены
+
[[Файл:scene_book_2.jpg]]
  
время - Время в ms процесса открытия сцены
+
==Принципы формирования экранов в хидденах==
  
x - Начальная координата x из которой сцена будет выезжать при открытии
+
1. Flurry - сцена, для отсылки действий пользователя на сервер. Нужна для сборки статистики. Как правило отсылается количество предметов, найденных игроком и информация об использовании подсказок
  
y - Начальная координата y из которой сцена будет выезжать при открытии
+
2. Игровая сцена - содержит поисковые объекты и подложки/накладки поисковых объектов, музыку и пр. уникальные элементы, характерные конкретно для этого уровня.
  
alpha - Начальная прозрачность сцены (0-прозрачна, 1-непрозрачна) при старте анимирования открытия
+
3. Игровое меню - глобальная сцена, реализующая игровое меню с интерфейсными окнами
сцены
 
  
angle - Начальный угол (в градусах) от которого сцена будет вращаться при появлении до рабочего угла
+
4. Меню устройства - меню, которое реализует нажатие кнопок устройства.
  
scale x - Начальный масштаб по оси x от которого сцена начнет открываться к масштабу, указанному в общем списке параметров
+
[[Файл:scene_hidden.jpg]]
  
scale y - Начальный масштаб по оси y от которого сцена начнет открываться  к масштабу, указанному в общем списке параметров
+
==Принципы формирования экранов в квестах==
 +
[[Файл:scene_quest.jpg|right]]
 +
При создании квеста, сцены располагаются, как правило, в следующем порядке:
  
 +
1. Главная сцена (Main) - сцена-менеджер. В этой сцене располагается 1 объект (main), который, в звисимости от того, на какую сцену переходит игрок включает/выключает сцены или объекты сцен. Эта сцена должна быть расположенной первой в списке сцен, дабы её объект обрабатывался раньше других. Если у вас громоздкая сцена, и вы не можете добавить на экран другие сцены, по причине переполнения памяти — необходимость в сцене-менеджере сцен отпадает.
  
=== Закрытие ===
+
2. Игровые сцены — семейство сцен, каждая из которых представляет собой отдельный игровой экран. Несколько сцен объединяются в один экран для увеличения скорости работы проекта, т. к. одновременно может быть загружен только 1 экран, и при переходе между экранами, игра может слегка притормаживать. Игровая сцена практически всегда содержит фон. Также, если сцена сложная, разумно добавить менеджер сцены.
  
Сцена может закрыться (исчезнуть) не сразу, а выполнив определенные действия (уехать, растять по прозрачности и т.п.)
+
3. Общие сцены — сцены, объекты которых нужны в нескольких сценах из п. 2. Например, у нас есть экран, содержащий 2 сцены: дверь персонажа и комната персонажа. В обоих случаях диалоги с персонажем используются, однако координаты рамок отличаются. Разумно логику диалогов и рамки диалогов вынести в отдельную сцену.
  
время - Время в ms процесса закрытия сцены
+
4. Инвентарные объекты — все инвентарные объекты должны быть расположены в одной сцене. Это нужно для экономии памяти.
  
x - Конечная координата x куда сцена будет уезжать при закрытии
+
5. Расшаренные сцены. По сути, на экране присутствует только ссылка на сцену. Т. е., сцена используется на многих экранах, при этом логика её описана в одном месте. Такие сцены используют для различных интерфейсных элементов: инвентарь, разнообразные панели, меню, хиддены и т. п. При этом, очень помогает в работе объект типа Group. В расшаренной сцене присутствует обращение к группе, а на самой сцене присутствует объект типа этой группы. Например, таким образом полезно обрабатывать кнопку подсказки. Сама кнопка переводит объект группы в новое состояние, а на сцене присутствует объект, принадлежащий к этой группе, и имеющий указанное состояние. Также, следует помнить о том, что одновременно видимым может быть только один объект принадлежащий к группе, иначе возникнет ошибка.
  
y - Конечная координата y куда сцена будет уезжать при закрытии
+
===Об экономии памяти===
  
alpha - Финальная прозрачность сцены (0-прозрачна, 1-непрозрачна) при её закрытии
+
Следует отдельно отметить, что вся графика сцены упаковывается в отдельный текстурный атлас (или множество атласов). Поэтому, не следует злоупотреблять разделением на сцены.
  
angle - Конечный угол (в градусах) к которому сцена будет вращаться при закрытии от рабочего угла
+
===Об инвентарных объектах===
  
scale x - Конечный масштаб по оси x к которому сцена будет закрываться
+
Не следует помещать инвентарные объекты на расшаренную сцену, без крайней необходимости. В противном случае, вы получите лишние 1-2 МБ памяти, занятых Вашим приложением. Вместо этого, поступают следующим образом:
 +
1. Создаёте сцену где объект берётся в инвентарь
 +
2. Временно расшариваете эту сцену на экране, где этот предмет применяется
 +
3. Прописываете все необходимые применения предмета
 +
4. Удаляете расшаренную сцену. При этом, связи предмета не пропадут.
 +
5. Если нужно сделать изменения в применении предмета, возвращаетесь к п. 2
  
scale y - Конечный масштаб по оси y к которому сцена будет закрываться
+
[[Category:Projects]]

Текущая версия на 07:00, 16 сентября 2014

Layout.png

Немного вводных терминов для начала проектирования экранов игры.

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

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

  • Лейаут - Проект с заданными параметрами физического разрешения экрана
  • Экран - Основной объект используемый для проектирования уровней игр, должен содержать как минимум одну сцену.
  • Сцена - принадлежит экрану, содержит объекты игры. Размеры сцены могут отличаться от размеров лейаута.


Принципы формирования сцен и их наполнения

  • Сцены следует формировать по группам. То есть в одну сцену необходимо выносить меню миниигры, в другую фон, в третью - группы объектов.
  • Также, в некоторых случаях, чаще всего в адвентюрах, в отдельные сцены одного экрана можно выносить несколько не нагруженных локаций для быстрого перехода между ними. В таком варианте одна сцена выключается, другая - включается.
  • В Хидденах в отдельную сцену можно выносить хидденобъекты и фон, т.к. при наличии "утки" фон тоже должен быть масштабирован.
  • В отдельую расшаренную сцену также целесообразно выносить объекты которые будут использоваться на нескольких экранах - инвентарь, навигационные кнопки и машины и другие объекты.

Принципы формирования экранов в книгах

При создании книги, полезно использовать следующие сцены:

500pix

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

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

3. Стрелки. Стрелки переключения на следующую/предыдущую страницу книги.

4. Всплывающий список страниц - расшаренная сцена, всплывающая при клике на неё. Содержит уменьшенные картинки страниц книги, при клике на которые происходит переход на соответствующую страницу.

5. Текст - текст книги и управление озвучкой.

6. Уши. Части экрана, которые будут видны, если соотношение сторон на устройстве, отличается от оригинального соотношения сторон в книге.

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

Scene book 2.jpg

Принципы формирования экранов в хидденах

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

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

3. Игровое меню - глобальная сцена, реализующая игровое меню с интерфейсными окнами

4. Меню устройства - меню, которое реализует нажатие кнопок устройства.

Scene hidden.jpg

Принципы формирования экранов в квестах

Scene quest.jpg

При создании квеста, сцены располагаются, как правило, в следующем порядке:

1. Главная сцена (Main) - сцена-менеджер. В этой сцене располагается 1 объект (main), который, в звисимости от того, на какую сцену переходит игрок включает/выключает сцены или объекты сцен. Эта сцена должна быть расположенной первой в списке сцен, дабы её объект обрабатывался раньше других. Если у вас громоздкая сцена, и вы не можете добавить на экран другие сцены, по причине переполнения памяти — необходимость в сцене-менеджере сцен отпадает.

2. Игровые сцены — семейство сцен, каждая из которых представляет собой отдельный игровой экран. Несколько сцен объединяются в один экран для увеличения скорости работы проекта, т. к. одновременно может быть загружен только 1 экран, и при переходе между экранами, игра может слегка притормаживать. Игровая сцена практически всегда содержит фон. Также, если сцена сложная, разумно добавить менеджер сцены.

3. Общие сцены — сцены, объекты которых нужны в нескольких сценах из п. 2. Например, у нас есть экран, содержащий 2 сцены: дверь персонажа и комната персонажа. В обоих случаях диалоги с персонажем используются, однако координаты рамок отличаются. Разумно логику диалогов и рамки диалогов вынести в отдельную сцену.

4. Инвентарные объекты — все инвентарные объекты должны быть расположены в одной сцене. Это нужно для экономии памяти.

5. Расшаренные сцены. По сути, на экране присутствует только ссылка на сцену. Т. е., сцена используется на многих экранах, при этом логика её описана в одном месте. Такие сцены используют для различных интерфейсных элементов: инвентарь, разнообразные панели, меню, хиддены и т. п. При этом, очень помогает в работе объект типа Group. В расшаренной сцене присутствует обращение к группе, а на самой сцене присутствует объект типа этой группы. Например, таким образом полезно обрабатывать кнопку подсказки. Сама кнопка переводит объект группы в новое состояние, а на сцене присутствует объект, принадлежащий к этой группе, и имеющий указанное состояние. Также, следует помнить о том, что одновременно видимым может быть только один объект принадлежащий к группе, иначе возникнет ошибка.

Об экономии памяти

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

Об инвентарных объектах

Не следует помещать инвентарные объекты на расшаренную сцену, без крайней необходимости. В противном случае, вы получите лишние 1-2 МБ памяти, занятых Вашим приложением. Вместо этого, поступают следующим образом: 1. Создаёте сцену где объект берётся в инвентарь 2. Временно расшариваете эту сцену на экране, где этот предмет применяется 3. Прописываете все необходимые применения предмета 4. Удаляете расшаренную сцену. При этом, связи предмета не пропадут. 5. Если нужно сделать изменения в применении предмета, возвращаетесь к п. 2