Как создать игру на андроид?

Уровень сложности создания Android-игр

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

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

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

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

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

Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:

  • Идея, образное представление, о чем будет игра, знание ее основного сюжета;
  • Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
  • Установленная на компьютере программа для создания продукта;
  • Свободное время, внимательность и желание трудиться.

Графическое оформление

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

  • Объектные модели;
  • Функциональные спецификации;
  • Игровой контент;
  • Интерфейс.

Рассмотрим каждый из пунктов более подробно.

Объектные модели

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

Функциональные спецификации

Здесь описывается геймплей, основные возможности каждого персонажа. Также здесь дается описание особенностей игровых предметов – оружия, аптечек, брони и других. По сути, функциональные спецификации – это правила, по которым происходит игровой процесс. Чем лучше будет проработан данный раздел, тем легче будет создать качественную Андроид-игру.

Игровой контент

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

Интерфейс

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

Пример разработки простой 2D-игрушки Андроид

Наша игра Android Studio развивается по известному сюжету. Пользователь управляет космическим кораблем, уворачивающимся от метеоритов (астероидов). Последние падают с верхней части экрана, корабль – движется внизу вправо или влево, в зависимости от решений участника. При столкновении аппарата с космическим объектом объявляется Game Over.

Начнем с открытия проекта. Для этого последовательно выберем в меню программы File, New, New Project. Придумываем проекту название, вводим домен и место, где будет храниться папка. Окно, появившееся после нажатия Next, лучше оставить без изменений. В следующем выбираем Empty Activity и движемся дальше. Кликнув по клавише Finish, мы получим готовый проект.

Следующим шагом станет скачивание необходимых картинок и копирование их в папку drawable. Это изображения корабля и метеоров. После этого нужно создать layout. Открываем Text в activity_main.xml и вставляем следующий код:

Код для layout

MainActivity, GameView, SpaceBody

Для редактирования класса MainActivity меняем определение, придав ему следующий вид: public class MainActivity extends AppCompatActivity implements View.OnTouchListener {. После этого нужно задать перемены для нажатия левой (public static boolean isLeftPressed = false) и правой (public static boolean isRightPressed = false) кнопок. Следующие действия мы расписывать не будем. В итоге MainActivity должен принять следующий вид:

Код для MainActivity

Разобравшись с классом MainActivity, переходим к GameView. В определение добавляем extends SurfaceView implements Runnable. Теперь нужно задать разрешение. У современных гаджетов разные параметры. Дисплей старого мобильника не может сравниться с новым большим планшетом.

Чтобы добиться одинакового изображения на любом устройстве, поделим монитор на одинаковые «клетки» 20х28 (первый показатель – горизонталь). Если эти части будут распределены неравномерно, картинка получится сжатой или растянутой. Задаем переменные:

Переменные для «уравнивания» графики

Для метода run() устанавливается бесконечный цикл, стартующий с update(). Задачей последнего является вычисление новых координат космического корабля. По окончании расчетов на экране будет сформирован сам аппарат (draw()). Control() завершает цикл, обеспечивая паузу на 17 миллисекунд. Затем снова запускается run(). Выглядеть это будет так:

Бесконечный цикл для run()

Чтобы появился сам корабль и астероиды, нужен родительский class SpaceBody. Зададим переменные и методы:

Код для родительского класса SpaceBody

Теперь отдельный класс Ship для корабля:

Код космического корабля

После этого останется произвести компиляцию и запуск программы. На дисплее Android Studio должен возникнуть корабль, который можно кнопками перемещать вправо и влево. Следующим шагом станет добавление астероидов. Для этого разработаем class Asteroid, тоже являющийся дочерним для SpaceBody. Зададим переменные:

Код для метеоров

Суть в том, чтобы астероиды произвольно возникали в разных точках «потолка» экрана и двигались с непредсказуемой скоростью. Мы задали код, определяющий столкновение метеоров с кораблем. Добавим астероиды в GameView:

Вписываем астероиды в GameView

На этом изготовление элементарной 2D-игры можно считать завершенным. Остается скомпилировать и запустить программу. Ничто не мешает добавлять в нее новые опции. Например, стрельбу по метеорам или постоянное ускорение их движения. Но это уже тема отдельного разговора.

Препятствия

Теперь добавим препятствия: трубы. Кто-то в трубах находит грибы, а кто-то — свою смерть.

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

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

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

Итак, у нас есть одна труба, которая время от времени будет исчезать и появляться на другом конце экрана. Врежешься в неё — умрёшь.

Что такое конструктор и как его правильно выбрать?

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

Как правильно выбрать конструктор?  Как ни странно, но начинать его выбор нужно ориентируясь в первую очередь на свои знания – от навыков программирования до уровня владения английским языком. Если первый пункт у вас нулевой, то рекомендую выбрать программы для новичков, они проще в использовании. Второй критерий выбора – требуемый функционал.

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

Ниже я приведу несколько примеров самых распространённых конструкторов, которые советуют профессионалы новичкам.

Создаем проект-заготовку для будущей Android игры

Я не буду здесь подробно расписывать процесс установки Android SDK и Eclipse, за рамками повествования я оставлю и элементарные действия по созданию Android проекта. В интернете валяется огромное количество уроков и статей, посвященных этой теме. Создайте новый проект. В поле Project Name введитеDroidz. В качестве целевой платформы выберите Android 2.2 или выше. В Package Name — «ru.mobilab.gamesample«. Не забудьте поставить галочку около Create Activity. В качестве имени главной activity введитеDroidzActivity.Откройте файл src/ru.mobilab.gamesample/DroidzActivity.java

package ru.mobilab.gamesample;import android.app.Activity;import android.os.Bundle;public class DroidzActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}

Метод onCreate вызывается при создании activity во время запуска приложения. Этот метод можно рассматривать, как точу входа в программу. Класс R.java автоматически генерируется Eclipse и содержит в себе ссылки на ресурсы. Каждый раз, когда вы изменяете ресурсы в Eclipse класс R пересобирается.

Stencyl

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

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

Программа бесплатно, но если вы захотите конвертировать свое творение в форматы, которые «понимает» персональный компьютер, то придется покупать лицензионную подписку, и это, несомненно, минус, ведь подписка эта не из дешевых, она стоит почти 100 долларов в год.

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

Выбор движка

Игровой движок – это набор инструментов, упрощающих разработку игр. Главное преимущество движка – автоматизация наиболее используемых функций игры. Разумеется, написать игровой движок можно самостоятельно, но этот процесс крайне трудоемкий и затратный по времени. Каждый игровой движок подходит для реализации тех или иных целей.

Каждый движок способен выполнять те или иные задачи и применяется для различных жанров. Рассмотрим на примерах различных движков:

  • Mages Engine – ориентирован на мини-игры, многопользовательские ММОРПГ и пошаговые стратегии. Реализация проектов осуществляется при помощи GUI и мощного API.
  • Catcake – специализируется на локальном мультиплеере, где присутствует функция разделения экрана. Поддерживает отображение трехмерных объектов. Подходит для проектов любого жанра.
  • Unreal Engine – еще один популярный движок, регулярно используемый Epic Games (создатели Unreal Tournament 2016, Gears of War 3, Fortnite и других). Основное направление – консольные и компьютерные видеоигры. Одна из главных фишек Unreal Engine – качественная графика. Однако и на мобильных платформах уже выпущены успешные приложения: Fortnite и PUBG.
  • AndEngine – бесплатный движок, ориентированный на 2D. Обладает открытым исходным кодом. Распространяется свободно. Как и другие популярные платформы использует OpenGL для рендеринга и Box2D для физики.
  • Phaser — это фреймворк для разработки HTML5. Базируется на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, и т.п.

Исключением из правил являются фирменные движки разработчиков. Например, компания Rockstar (создатели серии GTA Red Dead Redemption) используют собственный движок, находящийся в закрытом доступе.

Создание объектной модели и спецификации

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

  • Объектная модель.
  • Функциональные спецификации.
  • Интерфейс и контент.

Объектная модель представляет собой подробное описание каждого объекта в игре. Это может быть непосредственно сам игрок, какие-либо предметы (оружие, броня и так далее), уникальные свойства, объекты окружающего мира.

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

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

К интерфейсу относится и расположение клавиш

Сенсорные экраны телефонов, как правило, имеют диагональ до 5 дюймов, поэтому важно компактно, но в то же время удобно разместить все управляющие кнопки

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

Construct 2

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

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

Из недостатков – странные лицензии, способные ограничить разработку и заставить платить за релиз под определенные платформы (например, Андроид) от 100 до 500 долларов. Причем в указанный ценник разработчики Construct 2 закладывают еще и «популярность» автора – чем больше загрузок, тем цена выше.

Насколько сложно создать игру на андроид

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

Создание игр на андроиде под силу каждому

Самое главное — человеку вовсе не нужно тратить большое количество денег, чтобы самому создать игру на телефоне. Конечно, чтобы заниматься созданием игры, потребуется наличие хотя бы минимальных навыков программирования. Разговор не идет о каких-то сложных 3Д играх, которые создаются профессионалами.

Обратите внимание! Чтобы создать игру на андроид, также нужны знания английского языка. Что касается программирования, необходимо будет освоить хотя бы простую Java

При этом среди основ не обязательно профессиональное владение дизайнерскими программами или фотошопом.

Основные моменты, которые потребуются пользователю, решившемуся заняться разработкой собственного игрового приложения:

наличие проработанной идеи

Здесь важно все, начиная от персонажей и заканчивая построением сюжета;
минимальные навыки владения Java. Без этого в любом случае не обойтись;
программа для дальнейшей разработки;
достаточное количество времени и желания трудиться.

Важно! Создание игровых приложений, пусть даже и самых простых — это кропотливый труд. Без желания, усидчивости и терпения тут не обойтись

Работа с Java

Идея и сценарий

Если начинающий автор думает, что идея и сценарий – это атрибуты только крупных ААА проектов, то он глубоко заблуждается. Рассмотрим утверждение на примере Subway Surfer:

  • Сюжет: парень, рисовавший на поезде был замечен полицейским и теперь пытается убежать от него.
  • Цель: убежать от полицейского.

Чтобы сделать игру на Андроид необходимо, чтобы игровой процесс отвечал на вопросы:

  1. Стороны конфликта: пример Angry Birds – птицы и свиньи.
  2. Как решается этот конфликт – птицы летят в свиней на рогатке.
  3. Где разворачиваются основные события?

Пример сценария для ранера на Android: главный герой – белка, которая готовится к зимней спячке. Ее задача, насобирать, как можно больше припасов на зиму. В качестве преград выступают деревья и другие лесные жители. Разумеется, чем сложнее игра, тем больше вопросов задается для ее создания. Но вопросы «зачем», «почему» и «как» применяются для любого проекта.

Добавляем взаимодействие с экраном

Чтобы показать, как в Android обработать касания, напишем небольшой пример. Будем выходить из программы, когда пользователь коснется нижней части экрана. Если касание произошло где-то выше — будем просто выводить в лог соответствующие координаты. Добавим в класс MainThread следующие строки:

private SurfaceHolder surfaceHolder;private MainGamePanel gamePanel;public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) { super(); this.surfaceHolder = surfaceHolder; this.gamePanel = gamePanel;}

тем самым мы определили переменные gamePanel и  surfaceHolder, взяв соответствующие значения из параметров конструктора. Нам нужно запомнить эти значения, чтобы потом иметь возможность блокировать поверхность на время рисования, а это можно сделать только через  surfaceHolder.Измените строку в классе MainGamePanel, добабвив в конструктор вновь объявленные параметры

thread = new MainThread(getHolder(), this);

Мы передаем текущий обработчик и панель в новый конструктор. Это позволит нам иметь к ней доступ из потока. В gamePanel мы создадим метод update и будем переключать его из потока, но пока оставим все как есть.

Графическое оформление

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

  1. Объектные модели;
  2. Функциональные спецификации;
  3. Игровой контент;
  4. Интерфейс.

Рассмотрим каждый из пунктов более подробно.

Объектные модели

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

Функциональные спецификации

Здесь описывается геймплей, основные возможности каждого персонажа. Также здесь дается описание особенностей игровых предметов – оружия, аптечек, брони и других. По сути, функциональные спецификации – это правила, по которым происходит игровой процесс. Чем лучше будет проработан данный раздел, тем легче будет создать качественную Андроид-игру.

Игровой контент

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

Интерфейс

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

Идея

Первое, что требуется для создания игры — идея. На первом этапе ее можно записать в любом виде. Желательно, чтобы она «цепляла» и была понятна. Вероятнее всего, в процессе воплощения она будет изменена. Что-то придется добавить, а что-то — полностью убрать или переделать. В этом нет ничего странного — при дальнейшей проработке деталей функционал не только придется досконально описать, но и проверить его на пригодность.

Не стоит полностью отказываться от первичного описания идеи и начинать создавать русские игры на «Андроид», пропустив эту стадию. Сбор мыслей — главная точка старта, из которой легче всего начинать движение. К тому же идеи, изложенные на бумаге, позволят взглянуть на задуманное объективнее, возможно, заранее отметить и исправить слабые места.

Уровень сложности создания Android-игр

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

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

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

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

Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:

  • Идея, образное представление, о чем будет игра, знание ее основного сюжета;
  • Минимальное владение языком Java, ведь полностью без программирования (без нужных знаний) не обойтись;
  • Установленная на компьютере программа для создания продукта;
  • Свободное время, внимательность и желание трудиться.

Где учиться делать игры на Android

Если вы планируете профессионально заниматься разработкой игр на Android, получить все необходимые знания можно в ВШБИ НИУ ВШЭ в Москве. Мы приглашаем всех желающих пройти обучение по программам “Основы создания игр” и “Менеджмент игровых проектов”. Во время занятий начинающие разработчики игр освоят работу в различных игровых конструкторах и создадут свой уникальный проект.

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

Еще больше информации вы найдете на канале
на YouTube. Подписывайтесь и не пропускайте свежие записи с открытых мероприятий ВШБИ НИУ ВШЭ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector