Как сделать игры на телефон. Создание игр на Андроид с нуля – от идеи до разработки

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

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

Сделать игру на Андроид можно с помощью следующих бесплатных программ (выбраны самые популярные):

  • DX Studio;
  • GameMaker MIPS;
  • Dreemchest.

Подробнее рассмотрим каждую из них.

DX Studio и GameMaker MIPS

Эта интегрированная среда, впервые опубликованная в 2005 году, предназначена для создания 2D и 3D игр для Android. Также можно создавать и обычные программы для операционных систем Android и Windows. Вы сразу видите свой конечный продукт, для чего используются DirectX и OpenGl ES. Большой плюс программы — наличие всех необходимых инструментов. Скрипты создаются с помощью JavaScript.

Этот движок для создания игр может гордиться хорошим графическим исполнением. В нем качественно проработаны все тени и отражения объектов, возможно добавление разнообразных световых эффектов и шейдеров. Все редактируемые файлы конструктора можно сохранять в популярных форматах 3Ds MaX, DirextX, AutoCAD.

Физика используется от именитого движка NVIDIA PhysX, что делает перемещение всех объектов в пространстве очень органичным. Довольно просто и комфортно для пользователя редактируются карты уровней и ландшафты, к каждому предмету на карте можно указать материал, из которого он должен быть сделан. Вместе с объемным звуком эти особенности позволяют создавать хорошие атмосферные игры.

На вопрос о том, как сделать игру на Андроид, ответила небезызвестная команда YoYo Games. Вместе с MIPS Technologies они представили программу-конструктор для написания игр. Среду назвали просто GameMaker. Она не требует знания какого-либо языка программирования для создания продукта, ею можно пользоваться, даже не зная основ JavaScript. В среду встроен собственный язык программирования. Благодаря этому время на создание качественной игры значительно уменьшается. Также в конструкторе уже присутствует анимированная графика, некоторое музыкальное сопровождение и простые звуковые эффекты. Команда разработчиков GameMaker не ставит какие-либо ограничения на созданные с помощью их конструктора игры. За небольшую плату можно открыть дополнительные возможности программы, но и без них конструктор более чем функционален.

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

Методы создания

Преимущество Android платформы заключается в широких возможностях. Делать проекты на Андроид смартфоны могут, как малые независимые студии, так и крупные кампании.

Для рядовых или начинающих разработчиков существует три типа инструментов для создания игры на Андроиде:

  1. Онлайн сервисы позволяют заниматься разработкой прямо в браузере. Предлагают пользователям готовые и рабочие шаблоны для работы с разнообразными игровыми жанрами. Требуют минимального количества навыков в программировании.
  2. Программы обладают более подробным функционалам. Аналогично с онлайн сервисами предлагают набор готовых шаблонов и скриптов. Требуют определенных знаний в программировании, поскольку понадобится писать код для каждого действия.
  3. Среда разработки – сложный инструмент, требующий навыков в программировании. Здесь необходимо знать конкурентный язык программирования, на котором будет писаться игра. Без специальных курсов и знаний написать игры, например, на языке Java невозможно. Для самоучек придуманы специализированные форумы. Наиболее популярный – GeekBrains .

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

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

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

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

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

Объектная модель и спецификации

Увлекательный геймплей и яркая графика – это не единственные факторы успешного приложения. Немаловажными являются такие пункты, как объектная модель и спецификации. Представленные параметры выполняют две важнейшие функции:

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

Пример объектной модели игровой сущности:

  • Основной раздел – предметы:
    • Специальная классификация – оружие:
      • Вид № 1 – меч ;
      • Вид № 2 – лук .

Контент и интерфейс

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

  1. Использовать интуитивно понятные значки (меню настроек – шестеренки).
  2. Применять минималистские объекты , которые не будут отвлекать от игры.
  3. Структурировать информацию.

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

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

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

Выбор движка

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

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


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

Процесс создания игры

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

В качестве конструктора используем Game Maker – это один из лучших инструментов для новичков. В первом примере рассмотрим разработку простой аркады:

  1. Создаем основной фон – локацию, где будут протекать основные события.
  2. Делаем главного персонажа : рисуем самостоятельно или загружаем готовый шаблон.
  3. Проектируем предметы для взаимодействия: монетки, ловушки, враги и т.п.
  4. Программируем событие , которое случится при взаимодействии с предметом: наступил на ловушку – игра окончена, подобрал монетку – путь продолжается.

Для того чтобы показать различие между игровыми жанрами рассмотрим более сложный пример. Теперь используем конструктор Unity 3D, а игровой жанр меняем на ККИ:

  1. Первый пункт остается неизменным – создание фона для будущего проекта.
  2. Место главного персонажа занимают карты , их намного больше, поэтому работа более время затратная.
  3. Проектируем логические взаимодействия между картами (самый сложный этап).
  4. Определяем количество игроков .
  5. Конвертируем игровое меню из трехмерного измерения в двухмерное пространство.
  6. Определяем условия , при которых матч будет считаться завершенным.

Лучшие конструкторы

Construct 2 и 3

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

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

Construct 3 – улучшенный движок, который планомерно вытесняет Construct 2. Расширение привычных опций и предоставление новых функции – преимущества обновленной версии. Однако в этой ревизии отсутствует бесплатная подписка . Зато имеется обратная совместимость с предыдущей версией утилиты.

– распространяется в трех вариантах: «бесплатная версия», «обычная вариация», и «профессиональная ревизия». Разумеется, что чем разнообразнее функционал версии, тем выше ее цена.

Clickteam Fusion – это мультиплатформенный движок, позволяющий создавать игры для различных платформ, а также заниматься их портированием. Основная специализация – 2D. Однако существует возможность писать и в 3D. Именно на этом движке был написан Five nights at Freddy’s (Пять ночей с Фредди).

Движок – это еще один представитель конструкторов, предъявляющие минимальные требования к знаниям программирования. Презентованный движок – мультиплатформенный инструмент, позволяющий писать игры, как на мобильные, так и на старшие платформы. Обладает интерфейсом Drag & Drop.

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

GameMaker – движок, специализирующийся на создании двухмерных проектов, которые являются популярными на мобильных платформах. Движок ориентирован на начинающих разработчиков , обладающих базовым набором знаний. Посредством GameMaker разрабатывался Hotline Miami и прочие 2D шедевры. Из очевидных плюсов движка выделяют:


Unity – наиболее популярный движок среди разработчиков. Представленный движок – самая гибкая система в сегодняшнем списке. Здесь удобно работать с 2D и 3D проектами. На этой платформе разрабатывались видеоигры для различных систем:

  • PS 3 – Cuphead, Escape from Tarkov, Life Is Strange: Before the Storm.
  • Android и IOs – Angry Birds 2, Hitman Go, Heartstone.
  • PC – Pillars of Eternity, Ori and the Blind Forest.

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

Теперь наглядно сравним вышеперечисленные конструкторы.

Конструктор Цена Преимущества
Construct 2 и 3 Бесплатная/199 $ Мультиплатформа, оперативность обработки данных, простой внутренний язык.
Clickteam Fusio 148 $ Создание прототипов, минимальные требования к программированию, создание полноценного коммерческого продукта.
Бесплатно/99 $/199 $ Интерфейс Drag & Drop, ориентированность на 2D игры, имитация панели управления Photoshop.
Game Make Бесплатно Мультиплатформа, регулярные обновления, активное пользовательское сообщество, простая панель управления.
Бесплатная Мультиплатформа, вариативность игровых настроек, готовые шаблоны для создания игр, популярность среди разработчиков, открытая система

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

  • наличие мультиплеера ;
  • собственные познания в программировании ;
  • сложность проекта: двухмерная или трехмерная игры;
  • степень совместимости с другими игровыми платформами;
  • финансовые возможности (стоимость платных инструментов).

Онлайн сервис AppsGeyser

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

Разберем создание игры в качестве примера:


Обратите внимание, что загружать и сохранять проекты можно только после прохождения регистрации в AppsGeyser. Пройдя регистрацию, разработчики смогут публиковать результаты работ в Google Play Market. Однако эта процедура будет стоить 25 долларов за публикацию.

Лучшие приложения

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

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


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

Apper

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

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


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

Пример создания игры

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

Геймплей

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

Начало разработки

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

Для фона используем спрайт под названием «background ». В примере применяется серый цвет. При желании цветовая палитра изменяется.

Второй шаг – создание скрипта «menu.cs ». Путь команды: Правой кнопкой мыши на строке скрипта – «Create» – «C# Script ». Не забудьте повесить его на «background». Содержимое скрипта выглядит следующим образом:

Using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary; using System.IO; public class menu: MonoBehaviour { public GUIStyle mystyle; //объявляется для того чтобы изменять начертание GUI компонентов(шрифт, размер и.т.п.) string score; //переменная для хранения пройденной дистанции void Start () { StreamReader scoredata = new StreamReader (Application.persistentDataPath + "/score.gd"); //создание файловой переменной score = scoredata.ReadLine (); //чтение строки scoredata.Close (); //закрытие файловой переменной } void Update () { } void OnGUI(){ GUI.Box (new Rect (Screen.width*0.15f, Screen.height*0.8f, Screen.width*0.7f, Screen.height*0.1f), "MAX DISTANCE:"+score,mystyle); //создаем небольшое окошко для показа пройденного расстояния if (GUI.Button (new Rect (Screen.width*0.15f, Screen.height*0.25f, Screen.width*0.7f, Screen.height*0.1f), "Start game",mystyle)) //создаем кнопку для запуска игровой сцены { Application.LoadLevel(1);//Загрузка игровой сцены } if (GUI.Button (new Rect (Screen.width*0.15f, Screen.height*0.4f, Screen.width*0.7f, Screen.height*0.1f), "Exit",mystyle)) //создаем кнопку для выхода из игры { Application.Quit();//Выход из игры } } }

В конечном итоге на экране должно получить примерное такое окно:

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

Игровое окно

Перед началом работы необходимо определить ключевые элементы, которые расположены на этом рисунке.

В их число входят:

  • автомобиль;
  • бензобак;
  • дорога.

Рассмотрим создание каждого элемента в отдельности.

Дорога

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

Приступим:

  1. Загружаем на сцену с гейплеем, подгоняя ее по размерам камеры.
  2. Далее добавляем в качестве дочерних объекта внутри дороги четыре блока с преградами и иконку бензобака.
  3. Не забудьте прибавить к ним Box Collider 2D. Дополнительно требуется отметить иконку Is Triger , чтобы объекты пересекались с машиной.
  4. Создайте скрипт под названием «moveroad.cs » и повесьте его на трассу. Далее прописываем код: using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary; using System.IO; public class moveroad: MonoBehaviour { public GUIStyle mystyle;//создание стиля int f,fuelst; float score=0,speed=-0.2f,data,fuelpos;// переменные для хранения расстояния, скорости и рекорда public GameObject block;// игровой объект для размещения блока public GameObject block1; public GameObject block2; public GameObject block3; public GameObject fuel; bool turbotriger=false; void Start () { StreamReader scoredata = new StreamReader (Application.persistentDataPath + "/score.gd"); data = float.Parse(scoredata.ReadLine ());//чтение с файла информации о рекорде scoredata.Close (); } void Update () { transform.Translate (new Vector3 (0f,speed,0f));//движение дороги с заданной выше скоростью score = score + (speed*-10);// подсчет расстояния if (transform.position.y < -19f) // если дорога уходит за пределы камеры то она "теле портируется" вверх { transform.position=new Vector3(0f,33.4f,0f);//новая позиция дороги block.transform.position=new Vector3(10.15f,block.transform.position.y,block.transform.position.z); block1.transform.position=new Vector3(8.42f,block1.transform.position.y,block1.transform.position.z); block2.transform.position=new Vector3(6.62f,block2.transform.position.y,block2.transform.position.z); block3.transform.position=new Vector3(4.95f,block3.transform.position.y,block3.transform.position.z); fuel.transform.position=new Vector3(11.86f,fuel.transform.position.y,fuel.transform.position.z); //скрытие за пределы камеры всех препятствий(блоков) f = Random.Range (0, 5);//случайное появление на дороге 1-го из 4-х блоков или канистры с бензином switch (f) { case 0:block.transform.position=new Vector3(2.40f,block.transform.position.y,block.transform.position.z); break; case 1:block1.transform.position=new Vector3(0.90f,block1.transform.position.y,block1.transform.position.z); break; case 2:block2.transform.position=new Vector3(-0.80f,block2.transform.position.y,block2.transform.position.z); break; case 3:block3.transform.position=new Vector3(-2.35f,block3.transform.position.y,block3.transform.position.z); break; case 4: fuelst=Random.Range(0,4); if(fuelst==0){fuelpos=2.40f;} if(fuelst==1){fuelpos=0.90f;} if(fuelst==2){fuelpos=-0.80f;} if(fuelst==3){fuelpos=-2.35f;} fuel.transform.position=new Vector3(fuelpos,fuel.transform.position.y,fuel.transform.position.z); break; } if (score>data)// если текущее пройденное расстояние превышает то что записано в файле рекорда то идет обновление данных { StreamWriter scoredata=new StreamWriter(Application.persistentDataPath + "/score.gd");//создаем файловую переменную для хранения пройденного расстояния scoredata.WriteLine(score);//записываем новое значение в файл scoredata.Close();//закрываем файловую переменную } } } void OnGUI(){ GUI.Box (new Rect (0, 0, Screen.width, Screen.height*0.05f), "Distance(m): " + score,mystyle);//создаем окно для подсчета расстояния } }

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

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

Автомобиль

Киньте спрайт машины на сцену.

Установите авто в любое место на трассе. Создайте скрипт carcontroller.cs и повести его на машину. Ниже находится содержимое скрипта:

Using UnityEngine; using System.Collections; using UnityStandardAssets.CrossPlatformInput; public class carconroller: MonoBehaviour { void Start () { } public void Update () { if (transform.rotation.z !=0) //проверка столкновения коллайдера автомобиля и препятствия, при столкновении происходит загрузка меню { Application.LoadLevel (0); } } } public void OnGUI() { if (GUI.RepeatButton (new Rect (Screen.width*0.1f, Screen.height*0.9f, Screen.width*0.2f, Screen.height*0.08f), "L")) //создаем кнопку для движения влево { if (transform.position.x > -2.4f) { transform.Translate (new Vector3 (-0.05f, 0f, 0f)); } } if (GUI.RepeatButton (new Rect (Screen.width*0.7f, Screen.height*0.9f, Screen.width*0.2f, Screen.height*0.08f), "R")) //создаем кнопку для движения вправо { if (transform.position.x < 2.4f) { transform.Translate (new Vector3 (0.05f, 0f, 0f)); } } } }

Посредством скрипта автомобиль получит возможность перемещаться .

Бензобак

Для создания показателя наполненности бензобака необходимо использовать одинаковые спрайты разных цветов .

Сделайте зеленый спрайт дочерним. Следующий аналогичен с предыдущими пунктами: создать скрипт (fuelscript.cs) и повесить его на бензобак (fuel) с таким содержанием:

Using UnityEngine; using System.Collections; public class fuelscript: MonoBehaviour { public GameObject fuelall; float mytimer=100f;// задание плавающего числа // Use this for initialization void Start () { } void Update () { mytimer = 100f; mytimer -= Time.deltaTime;//изменения числа с течением времени if (mytimer/mytimer==1f) //проверка на период времени в 1 секунду { fuelall.transform.position=new Vector3(fuelall.transform.position.x-0.0011f,fuelall.transform.position.y,fuelall.transform.position.z); fuelall.transform.localScale = new Vector3(fuelall.transform.localScale.x-0.001f, 1, 1); //выше идет сдвижение влево и уменьшение по ширине зеленой полосы для имитации шкалы } if (fuelall.transform.localScale.x < 0) //если шкала исчезла то загрузка идет загрузка главного меню { Application.LoadLevel(0); } } }

Трасса в нашем меню называется road183 , а ее копия – road183(1) . В дочерний объект fueltrack добавьте скрипт, отвечающий за восполнение бензобака при его контакте с автомобилем. Следующим шагом будет создание скрипта triger.cs. Повесьте его на fueltrack в каждой трассе. И отметьте объект, как Is Triger с таким кодом:

Using UnityEngine; using System.Collections; public class triger: MonoBehaviour { public GameObject fuel;//добавляем сюда greenfuel // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.name == "playercar") //проверка пересечения автомобиля и объекта fuel { fuel.transform.position=new Vector3(0,fuel.transform.position.y,fuel.transform.position.z); fuel.transform.localScale = new Vector3(1, 1, 1); //восстановление у объекта fuel стандартных значений } } }

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

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

Сегодня же создание игр и для компьютеров, и для мобильных платформ сильно упростилось, так как появились универсальные движки и среды разработки, или говоря простым языком – программы для создания игр для Андроид и персональных компьютеров. Примерно полгода назад я рассматривал , а сегодня мы будем говорить об инструментах для создания полноценных игр.

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

Unity 3d

Наиболее функциональным инструментом для разработки мобильных игр является движок Unity 3d. Он использовался для таких известных андроид игр, как: Dead Trigger , The Silent Age , Shattered Planet . Эта программа для создания игр на Андроид позволяет легко создавать игры любых жанров: шутеры и экшены от первого и третьего лица, гонки, RPG, стратегии, платформеры, головоломки – все что угодно. Многие разработчики создают отдельные библиотеки и наборы инструментов для Unity, выкладывая их в свободный доступ, так что пользователь, решивший эту программу для создания игр для Андроид скачать, получит доступ к различному контенту (моделям персонажей, уровням, текстурам, звукам и так далее), которые он сможет добавить в свои игры.

Пример использования Unity 3d:



Для неопытных пользователей разработчики программы для создания Андроид игр Unity 3d приготовили большое количество видеоуроков, поэтому освоить этот движок при должном терпении сможет каждый. Игры, разработанные при помощи этой утилиты, можно распространять в магазине Google Play, но с определенными условиями – узнать их можно, прочитав лицензионное соглашение Unity и Google Play. Таким образом, создатель игр может не только приобрести полезные навыки разработчика, но и получить прибыль, если разработанные им проекты станут успешными. Ниже я приведу видео обзор, который поможет поближе познакомиться с этим движком.

DX Studio

Следующая популярная программа для создания игр на Андроид, скачать которую можно совершенно бесплатно, называется DX Studio. Этот движок позволяет разрабатывать игры на платформы андроид и виндовс: для первой используется графический API OpenGL ES, а для второй – DirectX.

При помощи этой программы для создания 3d игр на Андроид пользователь может разрабатывать достаточно качественные проекты, в которых содержатся современные шейдеры, система частиц, различные эффекты, достоверная физическая модель, лайтмапинг и динамические тени, объемный звук. Работая в этой программе, можно использовать сторонние библиотеки (в том числе из AutoCAD, 3Ds MAX) и создавать собственные объекты – возможности для пользователя обширны.
Движок DX Studio абсолютно бесплатен для пользователей – при условии, что игры, разработанные с его помощью, распространяются на бесплатной основе. К этому движку я также прикладываю видео обзор, в котором будет показано как именно можно создавать игры:

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

А знаете ли Вы, какие , являются лучшими?

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

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

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

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

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

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

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

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

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

Какую игру лучше всего создать

Четких ограничений нет, выбор в конструкторах обычно предоставляется обширный: квест, карточная игра, догонялки, стрелялки, экшн. Обилием жанров больше всего славится приложение Construct 2 .

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

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

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

Как создать игру на Андроид с нуля без навыков программирования

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

Construct 2 — простая платформа для 2D приложений

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

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

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

Большая часть создания – это обыкновенное перетаскивание элементов и установка их взаимодействия. Например, персонаж цепляется за камень, и уровень заканчивается; одна часть фона представляет собой траву, другая, верхняя – небо, играет нейтральная музыка и характерные звуки. Вот и все, можно считать, самая простая и элементарная игра практически создана.

К сожалению, существует и минус: в бесплатной версии можно экспортировать творения в браузеры, а оттуда открывать их на совершенно любой платформе, но бесплатно создать игру только для Андроид не получится. Для этого придется вкладывать деньги в платную версию, стоимость которой немного превышает 100 долларов. Зато потом возможности намного расширяются, игры без проблем можно делать чисто на Андроид или iOS, а с помощью установочных файлов открывать приложения на персональном компьютере.

Видео-инструкция как сделать игру на Андроид с помощью Construct 2 и Construct 3

Unity 3D — мощный движок для разработки 3D проектов

Если предыдущая программа позволяла создавать только 2D-игры, то Unity 3D уже выходит на новый уровень и предоставляет разработчикам все условия для создания отличного трехмерного проекта . Программа оснащена различными готовыми моделями, изображениями, скриптами и текстурами на любой вкус. Компиляция имеет высокую скорость, редактор, несмотря на свою многофункциональность, очень прост в использовании.

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

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

Видео-инструкция по созданию игры с помощью Unity 3D за 45 минут

Game Maker — самый легкий вариант для новичка

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

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

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

Видео-мануал по программе Game Maker

Этапы создания игр

Делаем простую игру

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

  • Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
  • Делаем главного персонажа, им может выступать и животное, и человечек;
  • Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
  • Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.

Для пошаговых действий и подробной инструкции смотрите видео, которое прилагается к этому разделу.

Делаем карточную игру

Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:

  • Делаем основной фон для карт;
  • Проектируем сами карты, то есть, инвентарь;
  • Задаем взаимодействия;
  • Определяем количество игроков;
  • Переводим меню игры из 3D в 2D;
  • Определяем конец игры.

Создаем РПГ-игру

Отличной программой для такого жанра является программа RMXP или тот же Unity3D , выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.

  • Придумываем основную идею будущей Андроид игры;
  • Пишем основной сценарий;
  • Рисуем базовую карту и добавляем объекты;
  • Создаем события.

Как создать онлайн-игру для Андроид

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

Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры.

Три 100% способа, чтобы заработать на своей игре


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

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

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

Ответы на ваши главные 4 вопроса о создании игр на Андроид

Какая средняя стоимость игры, выпущенной пользователем-самоучкой со средним уровнем программирования?

Можно ли 2D игру перевести в 3D?

Да, с помощью специальных программ это вполне возможно, но процедура непростая.

Есть ли ограничения по времени для использования бесплатной версии Constructor 2?

Нет, бесплатной версией можно пользоваться постоянно. Платная покупается по желанию.

Как видим, создание игры на Андроид с нуля – довольно легкий и интересный процесс , справиться с которым самому не составит проблем. За получением помощи можете смело писать в комментарии. Успехов!

Пишем игру на HTML5/JS

javascript gamedev html5 canvas

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

Как создать игру на Андроид с нуля самому

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

Начало

  • — библиотечка работы со спрайтами
  • — подгрузка ресурсов
  • — библиотека ввода с клавиатуры
  • — основной файл игры

Для плавности анимации будем использовать. Подробно о нем ознакомиться можно здесь

Разделим разработку нашей игры на несколько этапов:

  1. Создание и инициализация холста (canvas) на странице
  2. Добавление основной функции-цикла игры
  3. Обработка событий ввода пользователя
  4. Математика и расчет столкновений объектов в игре

Этап 1. Создание и инициализация холста

Первым делом что мы должны сделать — это создать элемент и добавить его к тегу основной страницы игры.

  • Создаем объект
  • Указываем, что мы создаем 2D игру (далее будем использовать везде в коде объект)
  • Задаем размеры холста
  • Добавляем холст к тегу на странице

Этап 2. Добавление основной функции-цикла

Основной цикл необходим для обновления и рендера игры.

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

Этап 3.

Инициализация и рендер объектов и ресурсов игры

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

В функции загружаем мир и добавлеем хэндлер кнопки, после game over.

Начальное состояние

Обновление состояния игрового процесса

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

Здесь же используем. Всю функцию можно посмотреть в исходниках.

Этап 4. Обработка событий ввода пользователя

Наш герой должен уметь двигаться вверх, вниз, влево, вправо. Соответственно привожу ниже реализацию данного решения

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

Этап 5. Математика и расчет столкновений объектов в игре

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

Логика обновления анимации спрайтов башни. И создаем патроны для каждой башни в своем массиве.

Динамика пуль башни:

Напомню, что нашей целью было чтобы башни стреляли случайным образом во всех направлениях.

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

Полный код функции можно посмотреть в исходникак на GitHub.

Математика расчета столкновений хорошо описана в статье автора (раздел Collision Detection) используемого мной 2d бутстрапа.

Этап 6. Game Over и рестарт

Когда пауки доползают до нашего героя наступает конец игры.

Показываем окно GAME OVER и кнопку «Начать заного». Кликаем ее и все начинается сначала 🙂

Заключение

В итоге, я для себя понял, что в много плюсов:

  • Весело и интересно проводишь время
  • Повторяешь курс школьной геометрии. Если игра серьезней, то и универ вспоминаешь 🙂
  • Практика программирования игр
  • Удовлетворение от проделанной работы

Посмотреть исходники можно тут, поиграть здесь.

Разработка типичной игры

Создание игр — это увлекательное занятие для программиста. Но все игры строятся по общему сценарию. Есть несколько экранов для взаимодействия с пользователем:

Экран-заставка Заставка с изображением логотипа компании, сценки из игры, версии и т.д. Появляется на несколько секунд, а затем исчезает. Может воспроизводиться фоновая музыка Меню Второй экран, на котором пользователь может переходить по пунктам меню, напрмер, Играть, Счет, Настройки, Справка Основной экран Здесь собственно происходит игровой процесс Настройки Экран настроек параметров игры Счет Окно, на которое можно перейти из меню. Здесь можно отображать статистику достижений, таблицу рекордов Справка Выводится инструкция по игре: описание, управление, советы

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

  • SplashActivity — активность по умолчанию. Выводится на несколько секунд. После нее должна выводиться активность MenuActivity
  • MenuActivity — содержит кнопки, картинки и другие элементы, с помощью которых можно запустить другие активности
  • GameActivity — основной экран игры, где выводится графика, идет подсчет очков и т.д.
  • SettingsActivity — сохраняем различные настройки дли игры
  • ScoresActivity — загружает данные о достижениях игроков и выводит его пользователю для просмотра
  • HelpActivity — выводит справочную информацию. Если текст большой, то нужно также предусмотреть прокрутку

У каждого класса активности должен быть собственный файл разметки со своим набором элементов. Ваша задача научиться управлять состоянием приложения, пользоваться настройками, запускать нужные активности.

Также удобно создать еще один базовый класс Activity с общедоступными компонентами, например, BaseActivity.

Контекст приложения

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

Получить доступ к контексту приложения текущего процесса можно через метод getApplicationContext() :

Поскольку класс Activity происходит от класса Context, вы можете использовать ключевое слово this вместо явного указания контекста приложения.

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

Мы знаем, что класс Activity — это основной класс любого приложения на Android. Значит, нам понадобится пять различных классов Activity для нашей цели. В процессе игры пользователь будет переходить из одной активности в другую (кроме первой активности, где будет предусмотрен автоматический переход).

Есть несколько вариантов запуска активностей

  • Через указание в файле манифеста — так запускается автивность по умолчанию. В нашем случае это Splash-заставка
  • C помощью контекста приложения при помощи startActivity
  • Запуск дочерней активности из родительской активности

Заставка-экран

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

Меню игры

Экран меню игры служит для навигации по различным экранам игры.

Разработка типичной игры

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

Экран справки

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

Счет или таблица рекордов

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

Экран настроек

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

Основной экран

Здесь происходит основное действие игры. Если игра завершена, то нужно осуществить переход к экрану таблицы рекордов, чтобы посмотреть на результат игры.

Реализация прототипа приложения

Создадим новый проект с активностью SplashActivity, которая будет вызываться первой. Далее нам нужно создать файлы макетов для каждой активности. Так как первой у нас будет вызываться заставка, то переименуйте файл main.xml в splash.xml. Затем можно сделать пять копий splash.xml и дать им новые имена: game.xml, help.xml, menu.xml, scores.xml и settings.xml.

Теперь открываем каждый файл разметки и меняем строчку android:text=»@string/hello» на android:text=»@string/splash» и т.п.

После этой операции вы не будете путаться в экранах.

Сразу можно позаботиться о новом значке для игры и добавить его в папку /drawable.

Мы уже договорились, что у нас будет основной класс BaseActivity. Создайте файл класса BaseActivity.java и вставьте минимальный код:

Вернитесь к файлу SplashActivity.java и расширьте (extends) его из класса BaseActivity вместо класса Activity.

Скопируйте активность SplashActivity и создайте новые классы MenuActivity, HelpActivity, ScoresActivity, SettingsActivity и GameActivity.

В каждом созданном классе нужно заменить в строчке setContentView(R.layout.splash); ресурс макета на соответствующий, например, для экрана настроек, это будет R.layout.settings .

Для проверки можно запустить проект на эмуляторе. Если все сделано правильно, то в окне эмулятора появится экран Заставки, который содержит текст Splash Screen.

Создание экрана-заставки

Наша задача — создать экран, который исчезнет сам после короткой паузы. Для игры можно использовать анимационную заставку, а также выводить информацию о версии, разработчике и т.д. Напоминаю, что для макета заставки у нас используется файл splash.xml в папке layout.

После анимации нужно запустить новый экран с меню и закрыть текущий экран.

Реклама

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.



Понравилась статья? Поделитесь ей
Наверх