Главная » Программирование игр под Android » ДИЗАЙН ИГРЫ: КАРАНДАШ СИЛЬНЕЕ КОДА – РАЗРАБОТКА ИГР ДЛЯ ОС ANDROID

0

 

Как я говорил ранее, очень соблазнительно сразу запустить IDE и сколотить впечатляющее демо. Вполне нормально написать код-прототип игровой механики и посмотреть на его работу. Однако сразу после этого забудьте о нем. Возьмите карандаш, пачку бумаги, садитесь на удобный стул и начинайте думать о высокоуровневых аспектах вашей игры. Не стоит пока концентрироваться на технических подробностях – вы займетесь этим позже. Прямо сейчас вам необходимо сосредоточиться на разработке пользовательского интерфейса игры. Для меня лучший способ сделать это – нарисовать эскизы главных компонентов: основную механику игры;  черновой сюжет и основные персонажи; черновые наброски графического оформления игры; эскизы всех экранов, а также схема переходов между ними вместе с инициаторами переходов (например, окончание игры).

Если вы заглядывали в содержание, то уже поняли, что мы собираемся написать Android-вариант знаменитой Змейки (Snake). Это одна из самых популярных в истории игр для мобильных телефонов. Если вы никогда не слышали о Змейке, поищите ее в Сети, я подожду…

Итак, возвращаемся. Теперь, когда вы знаете суть Змейки, притворимся, что эта великолепная идея пришла в голову нам. Будем придумывать дизайн игры. Начнем с основной механики игры.

Основная механика игры

Перед тем как заняться этим важным делом, проверьте наличие всего необходимого. У вас должны быть: ножницы; что-то, чем вы будете рисовать; О много бумаги.

На данном этапе разработки дизайна игры нам хватит и этого. Вместо того чтобы тщательно прорисовывать изображения в Paint, Gimp или Photoshop, я предлагаю создать черновые варианты на бумаге и составить из них таблицу. Мы легко сможем перемещать листы с эскизами, не мучаясь с мышкой в редакторе. Когда дизайн нас удовлетворит, мы отсканируем или сфотографируем эскизы для использования в будущем.

Начнем с создания набросков базовых компонентов. На рис. 3.11 продемонстрирована моя версия элементов, необходимых для обеспечения основной механики игры.

Рис. 3.11. Основные элементы дизайна

Прямоугольник слева – экран (размером примерно как у моего Nexus One). Здесь мы будем размещать все остальные элементы. Следующие компоненты – две кнопки, с помощью которых мы будем управлять змейкой. Как обойтись без ее головы, нескольких хвостовых звеньев и того, что она будет есть? Кроме того, я нарисовал (и потом вырезал) здесь несколько цифр, которые пригодятся нам для демонстрации результатов. Рисунок 3.12 иллюстрирует мое видение стартового игрового поля.

Рис. 3.12. Стартовое игровое поле

Определимся с общей механикой: змейка движется в том направлении, куда смотрит ее голова, волоча за собой хвост. Голова и хвост созданы из частей одинакового размера, лишь немного различающихся внешне. При достижении змейкой границ экрана она появляется с его противоположной стороны. При нажатии кнопки Вправо или Влево змейка поворачивается на 90° по часовой или против часовой стрелки соответственно. Если змея кусает себя за хвост, игра заканчивается. При касании элемента головой он исчезает, счет увеличивается на 10, а на не занятом змейкой участке экрана появляется новый. Змейка при этом увеличивается в размерах – ее хвост растет.

Довольно подробное описание для столь простой игры, не правда ли? Обратите внимание – я расположил элементы игры в соответствии с их сложностью, поэтому описание поведения игры при пожирании змейкой элемента оставил напоследок. Более продуманные игры, конечно, не могут быть описаны так быстро. Обычно разработчик разбивает элементы игры на несколько групп разрабатывает их по отдельности, впоследствии соединяя в единое целое. Игра имеет явное условие завершения: она заканчивается при заполнении всего пространства экрана змейкой.

Теперь, когда наша абсолютно оригинальная игра обрела механику, попробуем придумать для нее сюжет.

Сюжет и оформление

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

Итак, добро пожаловать в мир мистера Нома – бумажной змеи, очень любящей поедать капли чернил, падающие неизвестно откуда на его бумажную страну. Мистер Ном крайне эгоистичен и посвятил свою жизнь одной не слишком благородной цели – стать самой большой бумажной змеей в мире, питающейся чернилами.

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

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

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

Рис. 3.13. Мистер Ном, его шляпа, чернильные пятна и логотип

Экраны и трансформации

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

Первое, что увидят пользователи, запустив нашу игру, – экран главного меню. Из чего состоит удачное главное меню? Хорошим тоном является демонстрация на главном экране названия игры, поэтому мы поместим туда наш логотип. Чтобы экран не выглядел чуждым элементом, стоит добавить фон, который мы возьмем из игрового экрана. Обычно игру запускают для того, чтобы в нее играть, поэтому нелишней будет и кнопка PLAY (Играть) (это будет первый интерактивный компонент экрана). Игроки любят отслеживать свои достижения, поэтому добавим кнопку просмотра лучших результатов (HIGHSCORES), также интерактивную. Возможно, в мире существуют еще люди, не знающие правил игры в Змейку, – для них мы добавим кнопку вызова помощи (HELP) для перехода к соответствующему экрану. Хотя звуковое оформление нашей игры обещает быть завораживающим, некоторые предпочитают играть в тишине. Специально для таких игроков на экране будет присутствовать включатель/выключатель звука.

Как разместить все эти элементы на экране – дело вкуса. Вы можете изучить подраздел информатики, называющийся Взаимодействие человека и компьютера (Human Computer Interfaces, HCI), чтобы познакомиться с новейшими научными воззрениями на этот счет. Но в случае с Мистером Номом это выглядит как стрельба из пушек по воробьям. Мой вариант размещения элементов на экране главного меню представлен на рис. 3.14.

Рис. 3.14. Экран главного меню

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

Давайте пока проигнорируем игровой экран и сконцентрируемся для начала на лучших результатах. Волевым решением я буду хранить их локально, поэтому нам будут доступны достижения только для однопользовательского режима. Кроме того, я обеспечу хранение только пяти лучших результатов. Таким образом, экран лучших достижений будет выглядеть примерно как на рис. 3.15. Он состоит из большой надписи HIGHSCORES (Рекорды) сверху, пяти высших достижений и кнопки со стрелкой, предназначенной для возврата назад. Здесь мы вновь в качестве фона используем фон игрового экрана.

Рис. 3.15. Экран лучших результатов

Следующий экран – помощь. Он расскажет игроку предысторию и пояснит основные принципы игры. В данном случае информации слишком много для размещения на одном экране. Поэтому наш экран помощи будет разделен на несколько экранов, каждый из которых будет содержать важную часть информации для пользователя: кто такой этот мистер Ном и чего он хочет добиться; как им управлять, чтобы он мог поедать кляксы; а также чего мистер Ном не любит делать (а именно, поедать себя). Итого у нас три экрана, как мы видим на рис. 3.16. Заметьте – я добавил кнопку на каждом из них, благодаря которой игрок знает, что доступна дополнительная информация.

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

Рис. 3.16. Экран помощи

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

Если вдруг мистер Ном укусит себя за хвост, игроку надо сообщить об окончании игры. Для этого можно нарисовать отдельный экран или просто показать большое сообщение Game Over (Игра окончена) поверх игрового. В данном случае выберем второй вариант.

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

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

И это все о переходах. Неплохо, не так ли? Рисунок 3.18 наглядно демонстрирует все переходы с помощью стрелок между интерактивными компонентами.  Для большей ясности я также нарисовал здесь все элементы наших экранов.

Рис. 3.17. Игровой экран в четырех состояниях

Рис. 3.18. Все элементы дизайна и переходы

Таким образом, дизайн нашей игры можно считать созданным. Осталось всего ничего – реализовать его в виде исполняемого приложения.

ПРИМЕЧАНИЕ

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

Источник: Mario Zechner / Марио Цехнер, «Программирование игр под Android», пер. Егор Сидорович, Евгений Зазноба, Издательство «Питер»

По теме:

  • Комментарии