ДИЗАЙН-ДОКУМЕНТ ИГРЫ Anaconda Anaconda © Николаев Иван Михайлович, 2010 г. voidexp@gmail.com (Последняя редакция: 21 Ноябрь, 2010 ) 1 СОДЕРЖАНИЕ I. Обзор игры 1. Общее описание 2. Жанр и целевая аудитория 3. Особенности II. Gameplay 1. Общие принципы 2. Перемещение по игровому полю 3. Сбор шариков 4. Сбор бонусов 5. Набор очков 6. Поражение III. Механика игры 1. Единица измерения 2. Движение змеи 3. Удлинение змеи 4. Столкновения 5. Появление и расположение шариков и бонусов IV. Игровые объекты 1. Игровое поле 2. Змея 3. Шарики 4. Бонусы V. Пользовательский интерфейс (GUI) 1. Вступительная заставка 2. Основное меню 1. «Начать игру» 2. «Настройки» 3. «Рекорды» 4. «Выход» 3. Игровой интерфейс 1. Игровое поле 2. Счетчик очков 3. Индикатор жизни бонусов 4. Игровое меню 1. «Продолжить игру» 2. «Выйти из игры» 5. Окно «Настройки» 1. Громкость музыки 2. Громкость звуковых эффектов 3. Скорость игры 6. Окно «Рекорды» 7. Окно добавления записи очков VI. Графика 1. Общие рекомендации по стилю 2. Стиль GUI 3. Элементы интерфейса пользователя 2 1. Окно 2. Кнопка 3. Поле ввода 4. Текст 5. Ползунок 6. Ползунок громкости 7. Индикатор прогресса 4. Игровые объекты 1. Змея 2. Игровое поле 3. Шарики 4. Бонусы VII. Звук 1. Общие рекомендации по стилю 2. Фоновое музыкальное сопровождение 3. Список действий, сопровождающихся звуковыми эффектами 3 I. ОБЗОР ИГРЫ 1. Общее описание Anaconda — это клон всем известной серии игр «Snake», ставших популярными в основном благодаря распространении вместе с ПО мобильных телефонов Nokia. В играх подобного типа игрок управляет змеёй, ползущей по закрытому игровому полю и «поедает» шарики, стараясь не столкнуться с краями поля или со своим «телом». С каждым шариком длина змеи увеличивается, а с ней и сложность игры, т.е чем длиннее змея, тем меньше места и времени чтобы развернуться для избежания столкновения. Кроме обычных шариков, на поле появляются ещё и бонусные, позволяющие игроку набрать как можно большее количество очков. По сути своей, игры такого типа являются «непроходимыми», то есть игра ведется до тех пор пока игрок не проиграет, поэтому конечная цель — набор очков. 2. Жанр и целевая аудитория Anaconda принадлежит категории классических аркадных игр, как правило у таких игр очень обширная аудитория, т.к эти игры очень легки для освоения ввиду своего простого управления и увлекают игроков всех возрастов. 3. Особенности Отличительная особенность «Anaconda» перед другими играми подобного типа, это наличие бонуса который укорачивает длину змеи, в добавление к обычному бонусу который даёт очки. 4 II. GAMEPLAY 1. Общие принципы Игрок, посредством клавиатуры, управляет змеёй, которая непрерывно ползет по игровому полю, представляющее собой замкнутое пространство. Задача игрока — собрать как можно больше шариков и бонусов чтобы увеличить свой конечный результат, при этом игрок должен избежать столкновения с краями поля и с «самим собой», т.е телом змеи. 2. Перемещение по игровому полю Управление змеёй осуществляется клавишами «W-A-S-D» или же стандартным вариантом — стрелками. Игрок может поворачивать змею вверх-вниз и вправо- влево, тем самым избегая столкновения со стенками поля или с телом змеи и добираясь до шариков. 3. Сбор шариков «Съесть» как можно больше шариков — это основная задача игрока, т.к именно сбор шариков продвигает игру вперед, увеличивая длину змеи, количество очков и влияет на появление бонусов на игровом поле. Шарики считаются «съеденными» когда змея касается их головой, в этот-же момент насчитываются очки и появляется новый шарик. 4. Сбор бонусов Чтобы «съесть» бонус надо, так-же как и с обычными шариками, коснуться его головой змеи. Однако бонусы, в отличие от обычных шариков, пребывают на поле ограниченное время и чем больше времени проходит, тем меньше их ценность в очках. 5. Набор очков Очки набираются путем сбора шариков и бонусов, ценность в очках последних значительно превосходит ценность шариков. 6. Поражение Игра заканчивается когда змея сталкивается с краем поля или сама с собой. По окончании игры, игроку предлагается возможность ввести свой результат в таблицу рекордов. 5 III. МЕХАНИКА ИГРЫ 1. Единица измерения Базовой единицей измерения в игре является отрезок величиной в 16 пикселей. Далее, под словом «единица» будет подразумеваться эта величина. 1. Движение змеи Змея движется вперед по закрытому игровому полю, без возможности остановиться. Скорость движения змеи в игре постоянна, но её значение может быть изменено в окне настроек. В медленном режиме игры, скорость составляет две единицы в секунду (32 пикселей/сек). В среднем режиме игры, скорость составляет 3 единицы в секунду (48 пикселей/сек). В быстром режиме скорость составляет 4 единицы (64 пикселей/сек). Игрок может действовать только на направление движения змеи клавишами управления. 2. Удлинение змеи Змея удлиняется как только игрок «съедает» шарик, при этом удлинение равно длине базового сегмента, то есть основной «частички» из которой строится змея. Удлинение происходит с хвоста, т.е после поедания шарика змея продвигается вперед а хвост остается на месте до тех пор пока змея не «вырастит» до нового размера, соответствующего предыдущему плюс длине базового сегмента. 3. Столкновения Как только голова змеи касается границы игрового поля или какой-либо части своего тела, игрок проигрывает. 4. Появление и расположение шариков и бонусов. Каждые 5 съеденных шариков на игровом поле появляется бонус (вместе с шестым шариком). Тип бонуса, а точнее увеличивает ли он очки или укорачивает длину, опеределяет случай, шансы того что выпадет бонус первого или второго типа равны. Как и шарики так и бонусы, появляются в случайном месте игрового поля, но в любом случае не за его пределами и не на поверхности, занятой змеёй. У бонусов ограниченное время жизни, продолжительностью в 3.5 секунды, по истечению которого бонус исчезает. У шариков времени жизни нет, а их значение в очках, в отличие от бонусов, не зависит от продолжительности их нахождения на игровом поле. 6 IV. ИГРОВЫЕ ОБЪЕКТЫ 1. Игровое поле Игровое поле представляет собой прямоугольник величиной 600x400 пикселей (размер может подвергаться изменениям), ограниченный «стенками». Стенки не выступают на игровое поле, то есть они находятся вне отведенных 600х400 пикселей. 2. Змея Тело змеи, в начале, состоит из головы и одного базового сегмента. Величина головы — 16х16 пикселей, базового сегмента — 32х16 . Каждый шарик увеличивает длину змеи на один базовый сегмент, а каждый бонус, укорачивающий длину, на один сегмент сокращает. 3. Шарики Шарики представляют собой объекты величиной в 16х16 пикселей, которые появляются в случайных местах игрового поля. Каждый съеденный шарик увеличивает количество очков на 50. 4. Бонусы Бонусы имеют ту-же форму что и шарики, но они отличаются цветом/текстурой. Существует два типа бонуса — Бонус Очков , увеличивающий очки до 500 единиц и Бонус Длины , укорачивающий змею на один сегмент и добавляющий до 250 очков. У бонусов ограниченное время жизни — 3.5 секунды. С момента появления бонуса, время его жизни начинает отсчитываться в обратном порядке, об отсчете свидетельствует индикатор, чем больше времени проходит тем меньше значение бонуса в очках. • Бонус Очков — увеличивает очки на 500 единиц максимум, за 0.1 секунду до исчезновения его ценность составляет 50 очков. Не влияет на длину змеи. • Бонус Длины — увеличивает очки на 250 единиц максимум, за 0.1 секунду до исчезновения его ценность так-же составляет 50 очков. Кроме этого, данный бонус укорачивает длину змеи на один базовый сегмент. Если длина змеи равна начальной (48х16), укорачивания не происходит. 7 V. ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС (GUI) 1. Вступительная заставка Сразу после запуска игры, пользователю представлена вступительная заставка, на которой отображены иконки и названия технологий, использовавшихся для создания игры и имя разработчика(ов). После нескольких секунд, заставка плавно растворяется, переходя в основное меню. 2. Основное меню После показа вступительной заставки, игроку отображается основное меню, посредством которого можно войти в игру, настроить её, просмотреть список игроков, добившихся самых больших результатов и выйти из игры. Структура меню примерно следующая: 2.1 «Начать игру» Нажав на эту кнопку пользователь, собственно, запускает игру. В игре не предусмотрена возможность сохранения, поэтому каждый раз игрок начинает с нуля. 2.2 «Рекорды» Этот пункт меню позволяет просмотреть имена игроков достигнувших самых высоких очков. 2.3 «Настройки» С помощью этого меню пользователь может настроить некоторые аспекты игры и игрового процесса. 8 2.4 «Выход» Закрывает игру. 3. Игровой интерфейс При нажатии кнопки «Начать игру» в основном меню, игроку представляется основной игровой интерфейс, схематически представленный в следующем виде: 3.1 Игровое поле Игровое поле (2) представляет собой прямоугольник шириной в 600 пикселей и высотой в 400, расположенный в центре окна. 3.2 Счетчик очков Счетчик очков (1) отображает текущее количество набранных игроком очков и расположен в левом верхнем углу окна. 3.3 Индикатор жизни бонусов Индикатор (3), расположенный в верхнем правом углу окна игры, активируется когда какой-то бонус появляется на игровом поле. С момента активации красная полоса начинает плавно укорачиваться в левую сторону, пропорционально истечению времени, и когда остается жизни бонуса остается меньше секунды, начинает мигать. Как только змея съедает 9 бонус, или бонус исчезает с поля, индикатор останавливается и деактивируется. 4. Игровое меню Во время игры можно вызвать меню, которое позволяет приостановить игровой процесс и предлагает пользователю возможность продолжить его или выйти в основное меню. Игровое меню вызывается нажатием клавиши «Esc», убрать его можно нажатием этой-же клавиши или нажав на одну из кнопок. Меню отображено над игровым интерфейсом, то есть «всплывает», не скрывая из виду игровой процесс. Структура меню схематически выглядит так: 4.1 «Продолжить игру» Нажав на эту кнопку пользователю возвращается управление игровым процессом, который возобновляется с момента на котором было вызвано меню. 4.2 «Выйти из игры» Нажатие на эту кнопку останавливает игру и возвращает игра в основное меню. Сохранения очков не происходит. 5. Окно «Настройки» Из основного меню, можно открыть окно настроек, нажав на соответствующую кнопку. Это окно позволяет пользователю изменить некоторые установки игры на своё осмотрение, такие как громкость звука и скорость игры. Вернуться в основное меню можно с помощью кнопки «Назад» (4), изменения вступают в силу после нажатия кнопки «Применить» (5). Ниже представлена схематическая структура окна настроек: 10 5.1 Громкость музыки С помощью этого ползунка (1), пользователь может установить громкость фоновой музыки. Минимальная позиция слайдера, т.е значение 0, означает отключение фоновой музыки. Максимальная позиция — самый громкий возможный уровень звука. 5.2 Громкость эффектов Этот ползунок (2) влияет на громкость звуковых эффектов, т.е звуков которые сопровождают некоторые игровые события, например поедание бонусов и столкновение со стенками игрового поля. 5.3 Скорость игры С помощью этого ползунка (3) пользователь может настроить скорость игры, от самого медленного режима (а поэтому легкого) до самого быстрого и сложного. Скорость игры отражается на скорости передвижения змеи и только, не затрагивая систему очков и бонусов. Реальные скорости передвижения змеи описаны в разделе «Механика игры». 6. Окно «Рекорды» Вызвав из основного меню окно рекордов, пользователь может просмотреть список 10-и лучших игроков, отсортированный по количеству очков в убывающем порядке. Каждая запись состоит из места, занятого игроком, его имени и количества очков. Выглядит окно рекордов примерно так: 11 Если игровых записей меньше 10-и, то список соответственно состоит из меньшего количества элементов. Вернуться в основное меню можно с помощью кнопки «Назад». 7. Окно добавления записи очков Когда игрок проигрывает, если его конечный результат превышает кого-то из существующих записей, а так-же если записей очков меньше 10-и, то ему предлагается создать новую запись. Для этого игроку представляется окно выглядящее примерно следующим образом: Игрок должен ввести своё имя в поле ввода (1) и нажать на кнопку «ОК» (2) чтобы занести результат в базу рекордов. После сохранения записи, игрок перенаправляется в основное меню. 12 VI. ГРАФИКА 1. Общие рекомендации по стилю Стиль графического наполнения игры — на усмотрение художника. Единственная рекомендация — выполнение содержимого в «мультяшном» стиле. Палитра так-же выбирается художником. 2. Стиль GUI Стиль элементов графического интерфейса пользователя так-же отдается на усмотрение художника, естественно стиль GUI должен сочетаться со стилем графики игры. 3. Элементы интерфейса пользователя. Система GUI игры Anaconda довольно проста и состоит всего из нескольких базовых элементов. Излишняя «продвинутость» интерфейса пользователя просто неуместна для такой простой игры. Ниже подробнее рассмотрены отдельные элементы. 3.1 Окно Окно является прямоугольным контейнером определенного размера и имеющим произвольное расположение в реальном игровом окне (последнее создается и обрабатывается графической подсистемой операционной системы на которой запущена игра), в котором могут располагаться другие элементы интерфейса пользователя. В плане отображения окно может иметь (или не иметь) рамки и фоновое изображение (текстуру). 3.2 Кнопка Кнопка — это прямоугольный элемент GUI имеющий метку (текстовое название) и который можно активировать нажатием левой кнопки мыши. При активации, кнопка анимируется (эффект «нажатия») и вызывает привязанное к ней действие. Кнопки содержатся в окнах, а в свою очередь содержать другие элементы пользовательского интерфейса не могут. Визуально кнопки являются прямоугольниками, с произвольной позицией и размером, заполненными определенным цветом или текстурой, посреди которых отображена их текстовая метка и в момент нажатия может воспроизводится соответствующая анимация. 3.3 Поле ввода Поля ввода — это прямоугольные элементы которые активируются нажатием левой кнопки мыши или могут быть активными по-умолчанию, (с так называемым, «установленным фокусом») в которых пользователь может вводить произвольный текст. Введенные данные сохраняются в памяти и могут быть использованы игрой. Поля ввода содержатся в окнах и так-же как и кнопки не могут содержать других элементов GUI. Поля ввода отображаются как прямоугольники с произвольным положением и 13 размером, при активации которых может воспроизводится некая анимация и/или мигание курсора. Если реализован курсор, то при активации поля ввода он переносится после последнего введенного символа, соответственно «прокрутив» избыточный текст, если он превышает длину поля. Поля ввода могут отображаться с рамками или без а так-же должны поддерживать возможность заполнения текстурой и установки шрифта отображения введенного текста. 3.4 Текст Текст, или текстовая метка — это статический элемент пользовательского интерфейса, имеющий производный шрифт, цвет и позицию и предоставляющий возможность отображать символы и цифры. С текстом пользователь не может производить никаких действий. 3.5 Ползунок Ползунок — это элемент GUI который позволяет установить некое произвольное значение перемещением ярлыка (1) вдоль оси произвольной длины (2). Возможны два типа ползунков — горизонтальный и вертикальный. Оба являются по сути двумя прямоугольниками: один маленький (ярлык) расположенный на другом, узком и длинном (ось). В случае горизонтального ползунка, когда меньший прямоугольник («ярлык», интерактивный элемент с которым пользователь может взаимодействовать нажатием с удерживанием левой кнопки мыши и движением мыши вправо-влево) находится на левом конце оси, значение которое представляет ползунок — минимальное из возможного, по мере передвижения вправо, значение возрастает. Аналогично, для вертикального ползунка, минимальное значение представлено самой нижней позицией ползунка, максимальное — верхней. В плане визуального отображения, возможности настройки ползунков должны позволять изменять цвет ярлыка и оси, их размер и расположение 14 оси в окне (позиция ярлыка «привязана» к оси). Ползунок не может содержать в себе другие элементы GUI а сам содержится в окне. 3.6 Ползунок громкости Этот специальный тип ползунка полностью идентичен обычному по функционалу, единственное различие — визуальное представление. Ползунки громкости отображены как «нарастающие» цветовые индикаторы подобной формы: Пользователь взаимодействует с ползунком нажатием с удерживанием левой кнопки мыши и соответственно её перемещением вправо-влево. По мере перемещения влево, заполнение ползунка уменьшается вплоть до исчезновения, символизирующее 0%. Передвигая мышь вправо, удерживая нажатой её левую кнопку, пользователь устанавливает все большее значение (вплоть до 100%), об этом символизирует нарастающее заполнение индикатора. Если пользователь кликает на индикатор и сразу отжимает левую кнопку, то значение устанавливается мгновенно на соответствующей позиции указателя мыши. В плане визуализации ползунок громкости должен поддерживать произвольный размер, расположение, цвет или текстуру фона и заливки (на рисунке фон ползунка — белый). 3.7 Индикатор прогресса Индикатор прогресса, или progress-bar, является динамическим прямоугольным элементом GUI который отображает степень полноты некоторого феномена. Например, индикаторы подобного типа в том или ином виде используются в программах для загрузки файлов из интернета, отображая количество скачанной информации. 4. Игровые объекты Игровых объектов в игре всего несколько (речь идет о графических объектах, видимых игроку), их визуальное представление довольно простое а их дизайн отдается на усмотрение художника. 15 4.1 Змея Как было описано ранее, змея — это активный игровой объект. «Физически»-же змея состоит из двух частей — головы и тела. Размер головы должен умещаться в квадрате величиной в 16х16 пикселей. Тело в свою очередь состоит из сегментов, высота (если смотреть на сегмент расположенный горизонтально) которых не должна превышать 16 пикселей а ширина — 32. 4.2 Игровое поле Игровое поле отображается как большой прямоугольник размером 600х400 пикселей и заполненный каким либо цветом или текстурой, которые определяются художником. 4.3 Шарики Шарики — это круглые объекты диаметр которых не должен превышать 16 пикселей, т.е они должны умещаться в квадрате со стороной в 16px. Вид и цвет шариков определяется художником. 4.4 Бонусы У бонусов такая-же форма и размер как у шариков, отличаются они только видом. 16 VI. ЗВУК 1. Общие рекомендации по стилю Звуковое сопровождение игры должно быть легким, не носящим нагрузки на мозг. 2. Фоновое музыкальное сопровождение Единственное требование к фоновой музыке — простота и отсутствие «отвлекающих» моментов, т.е музыка не должна мешать вниманию игрока. Отдельные звуковые дорожки проигрываются в нижеописанных ситуациях: • Запуск игры и вступительный экран • Навигация по основному меню • Игра 4. Список действий, сопровождающихся звуковыми эффектами Ниже представлен список игровых событий для которых должны быть предусмотрены соответствующие звуковые эффекты. • Нажатие кнопки GUI • Взаимодействие с ползунками • Начало игры • Поражение • Столкновение со стенкой поля или с телом змеи • «Поедание» шарика • «Поедание» бонуса 17