Программы для создания игр на Android. Лучшие инструменты для создания крутых игр на андроид Написание игр на андроид

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

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

Преимущество 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-игр

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

Да, огромные приложения с 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 . К сожалению, шанс, что игрой новичка сразу заинтересуются, невелик, но попробовать стоит. Разумеется, первые проекты лучше создавать для более узкого круга людей, узнавать мнение друзей, близких и т. д.

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

Приветствую всех читателей моего блога! Сегодня я хочу поговорить о таком интересном деле, как создание игр для ОС 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 абсолютно бесплатен для пользователей – при условии, что игры, разработанные с его помощью, распространяются на бесплатной основе. К этому движку я также прикладываю видео обзор, в котором будет показано как именно можно создавать игры:

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

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

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

Идея

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

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

Список особенностей

Так как создавать игры на "Андроид" невозможно без их детальной проработки, на данном этапе придется продолжить работу в и описать особенности, которые будут в игре. Приведем пример: серия God of War - это слэшер. Оружие главного героя - кнут. Во время боя можно делать длинные красивые комбо-атаки. Каждый уровень завершается схваткой с боссом.

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

Диздок

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

  • Объектной модели и функциональности сущностей.
  • Функциональных спецификаций.
  • Контента игры.
  • Интерфейса.
  • По необходимости может быть добавлена база знаний.
  • Объектная модель.

Объектная модель

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

Под функциональностью следует понимать:

  • Можно ли надеть\снять\купить\продать\улучшить.
  • Останется ли в инвентаре после смерти.
  • Потеряет ли прочность с течением времени либо при каком-нибудь действии.
  • Повышает ли характеристики персонажа или группы.
  • Имеет ли набор особых свойств.

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

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

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

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

Контент

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

Интерфейс

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

Выбор движка или конструктора

Еще один шаг, который придется выполнить до того, как создавать игры на "Андроид", - выбрать Давно прошли те времена, когда всё необходимо было делать с нуля. Сегодня, взяв готовый конструктор, можно выполнить все работы, написав минимум кода.

Выбор движка стоит делать, основываясь на некоторых его особенностях:

  • Условия использования.
  • Возможности.
  • Цена.
  • Поддержка разработчиками.
  • Задокументированность.
  • Размер комьюнити.
  • Простота.
  • Расширяемость.

Условия использования : возможно, один раз купив конструктор, вы не станете его полноправным владельцем. Бывает, что при коммерческом успехе игры приходится выплачивать процент от прибылей разработчикам движка. Главное - перед тем как создавать игры на "Андроид", ознакомьтесь с продукта, выбранного для реализации.

Возможности : они должны полностью перекрывать потребности разработчика. Если же продукт предлагает больше, чем нужно, игру можно будет легко расширить, задействовать новые функции диздока. Но задумайтесь и о балансе! Использовать Unreal Engine для тетриса - глупо.

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

Комьюнити : каково число тех, кто использует конструктор? Если пользователей большое количество, найти документацию, уроки, мастер-классы, примеры не является проблемой. Если же пользователей сравнительно мало, эта информация может быть доступна не в том объеме, который позволит вам сделать что-то конкурентоспособное.

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

UDK

Unreal Development Kit - не самый простой в освоении игровой движок, но зато один из самых мощных. Его используют не только начинающие разработчики, но и крупные корпорации. Если вы ищете ответ на вопрос: "Как создать 3Д-игру и какой движок для этого выбрать?" - вам стоит изучить возможности UDK.

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

Torque 2D/3D

Torque - один из самых популярных конструкторов игр для мобильных платформ. Обладает всем необходимым набором редакторов и средств отладки. При разработке программисты уделили большое внимание удобству и старались сделать все утилиты наиболее простыми и доступными.

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

Для написания скриптов в Torque встроен язык Torque Script. Свойства каждого объекта могут быть определены заранее. Также в конструктор встроен набор Box2D, который занимается физическими расчетами.

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

Изучение

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

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

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

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

Как быстро написать игру для Android на Unity

В нынешнее время каждый может стать успешным разработчиком мобильных игр или приложений, не прилагая к этому титанических усилий. Примером такого случая является Донг Нгуен, разработавший Flappy Bird. В игре не было никакой сложной механики или графики, но это не помешало ей стать популярной и приносить своему создателю по пятьдесят тысяч долларов в день. Однако в игре не было ничего примечательного. Всё, что потребовалось для успеха, - оказаться в нужном месте в нужное время и немного удачи. Подобное может произойти и сегодня, вам просто нужна правильная идея.

Чтобы продемонстрировать, насколько легко написать что-то подобное, сегодня мы напишем свой Flappy Bird с помощью Unity всего за 10 минут.

Игровой персонаж

Сначала создайте новый проект и убедитесь, что выбрана опция 2D.

Загрузите свой спрайт птицы в сцену. Не забудьте включить фантазию!

Затем отрегулируйте размер спрайта как вам нравится, перетягивая его за угол в нужном направлении. Спрайт должен быть виден в окне иерархии (hierarchy) слева. В нём видны все объекты в сцене, и на данный момент их должно быть всего два: камера и птица.

Перетащите камеру на птицу и отпустите. Камера должна оказаться под птицей, это будет значить, что камера теперь «ребёнок» птицы. Теперь позиция камеры будет фиксироваться относительно птицы. Если птица двигается вперёд, то камера делает то же самое.

Снова выберите птицу в сцене или в окне иерархии. Вы увидите список опций и атрибутов справа в окне под названием Inspector . Здесь вы можете управлять различными переменными, привязанными к определённому объекту.

Теперь нажмите на Add Component . Выберите Physics2D > Rigidbody2D - это готовый набор инструкций для применения гравитации к нашему персонажу. Нажмите на Constraints в этой панели и затем выберите freeze rotation Z . Это позволит предотвратить вращение птицы вместе с камерой по кругу.

Таким же образом добавьте Polygon Collider , который говорит Unity, где находятся границы персонажа. Нажмите Play и увидите, как спрайт вместе с камерой бесконечно падает вниз.

Пока всё идёт хорошо!

Теперь пора заняться полётами персонажа, благо это будет несложно.

Сначала нужно создать C#-скрипт. Создайте для него папку (кликните правой кнопкой мыши где-нибудь в assets и создайте папку «Scripts»), сделайте клик правой кнопкой мыши и выберите Create > C# Script .

Назовём его «Character». Кликните по нему дважды, чтобы открыть его в вашей IDE, будь то MonoDevelop или Visual Studio. Затем добавьте следующий код:

Public class Character: MonoBehaviour { public Rigidbody2D rb; public float moveSpeed; public float flapHeight; // Это нужно для инициализации void Start () { rb = GetComponent(); } // Update вызывается один раз на кадр void Update () { rb.velocity = new Vector2(moveSpeed, rb.velocity.y); if (Input.GetMouseButtonDown(0)) { rb.velocity = new Vector2(rb.velocity.x, flapHeight); } if (transform.position.y > 18 || transform.position.y < -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Этот код делает две вещи. Он заставляет персонажа двигаться вперёд со скоростью, которую мы определим в инспекторе, и создаёт ощущение полёта птицы. Метод Update() вызывается повторно на протяжении игры, поэтому всё, что вы сюда поместите, будет выполняться непрерывно. В данном случае мы добавляем немного скорости нашему объекту. Переменная rb является скриптом RigidBody2D , который мы применили к нашему объекту ранее, поэтому когда мы пишем rb.velocity , мы обращаемся к скорости объекта.

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

Переменная moveSpeed будет отвечать за скорость движения, а переменная flapHeight - за увеличение высоты полёта птицы после каждого нажатия. Поскольку эти переменные объявлены как public , мы сможем изменить их вне скрипта.

Метод Death() тоже объявлен как public , что значит, что другие объекты и скрипты смогут его вызвать. Этот метод просто возвращает положение персонажа в начало. Также он будет использоваться каждый раз, когда персонаж будет залетать слишком высоко или низко. Скоро вы поймёте, почему он объявлен именно как public . Строка rb.velocity = Vector3.zero; нужна, чтобы убрать импульс - мы же не хотим, чтобы после каждой смерти персонаж падал всё быстрее и быстрее?

Теперь можно выходить из IDE и добавлять скрипт как компонент к персонажу. Для этого нужно выбрать нашу птицу и нажать Add Component > Scripts > Character . Теперь мы можем определять moveSpeed и flapHeight в инспекторе (для этого и нужны public -переменные). Присвоим переменным значения 3 и 5 соответственно.

И ещё: в инспекторе нужно добавить тег к персонажу. Для этого кликните там, где написано Tag: Untagged и затем выберите Player в выпадающем списке.

Препятствия

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

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

Public class Pipe: MonoBehaviour { private Character character; // Это нужно для инициализации void Start () { character = FindObjectOfType(); } // Update вызывается один раз на кадр void Update () { if (character.transform.position.x - transform.position.x >

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

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

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

Перевёрнутые трубы

Сейчас у нас есть только один спрайт трубы. Давайте добавим ещё один. Для этого кликните правой кнопкой мыши в окне иерархии, нажмите New 2D Object > Sprite и затем выберите спрайт, который хотите использовать. Ещё проще будет просто перетащить файл в сцену ещё раз.

Назовите этот спрайт pipe_down . В инспекторе в части Sprite Renderer выберите опцию Flip Y , чтобы перевернуть трубу вверх ногами. Добавьте такое же RigidBody2D .

Теперь напишем новый C#-скрипт под названием PipeD . В нём будет похожий код:

Public class PipeD: MonoBehaviour { private Character character; //Это нужно для инициализации void Start() { character = FindObjectOfType(); } // Update вызывается один раз на кадр void Update() { if (character.transform.position.x - transform.position.x > 30) { } } void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.tag == "Player") { character.Death(); } } }

Префабы

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

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

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

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

Для этого создайте новую папку «Prefabs». Затем перетащите pipe_up и pipe_down из окна иерархии в папку.

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

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

Сначала добавьте этот код в условное выражение в методе Update() скрипта Pipe , которое мы оставили пустым:

Void Update () { if (character.transform.position.x - transform.position.x > 30) { float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); Instantiate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -10 + yRan), transform.rotation); Destroy(gameObject); } }

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

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

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

Создайте public gameObject с именем pipeDown . Затем обновите код следующим образом:

If (character.transform.position.x - transform.position.x > 30) { float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); float gapRan = Random.Range(0, 3); Instantiate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -11 + yRan), transform.rotation); Instantiate(pipeDown, new Vector2(character.transform.position.x + 15 + xRan, 12 + gapRan + yRan), transform.rotation); Destroy(gameObject); }

Возвращаемся обратно в Unity и перетаскиваем префаб pipe_down из папки с префабами (это важно!) в место, где написано «Pipe Down» (заметьте, как наш camel case заменяется пробелом) на спрайт трубы pipe up . Если вы помните, мы определили Pipe Down как public gameObject , что даёт нам возможность определять, чем является этот объект откуда угодно – в данном случае через инспектор. Выбирая префаб для этого объекта, мы убеждаемся, что при создании экземпляра трубы он будет включать в себя все атрибуты и скрипт, которые мы добавили ранее. Мы не просто создаём спрайт, но пересоздаём объект с коллайдером, который может убить персонажа.

Всё, что мы добавим в то же место в скрипте PipeD - просто Destroy(gameObject) , чтобы труба саморазрушалась при выходе за левую границу экрана.

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

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

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

Бесконечный полёт

Теперь создадим public -переменные pipe_up и pipe_down в скрипте Character . Это даст вам возможность ссылаться на созданные объекты, перетаскивая префабы на объект персонажа, прямо как когда мы добавили pipe_down в скрипт Pipe .

Нам нужно добавить эти переменные:

Public GameObject pipe_up; public GameObject pipe_down;

Затем мы напишем такой метод:

Public void BuildLevel() { Instantiate(pipe_down, new Vector3(14, 12), transform.rotation); Instantiate(pipe_up, new Vector3(14, -11), transform.rotation); Instantiate(pipe_down, new Vector3(26, 14), transform.rotation); Instantiate(pipe_up, new Vector3(26, -10), transform.rotation); Instantiate(pipe_down, new Vector3(38, 10), transform.rotation); Instantiate(pipe_up, new Vector3(38, -14), transform.rotation); Instantiate(pipe_down, new Vector3(50, 16), transform.rotation); Instantiate(pipe_up, new Vector3(50, -8), transform.rotation); Instantiate(pipe_down, new Vector3(61, 11), transform.rotation); Instantiate(pipe_up, new Vector3(61, -13), transform.rotation); }

Мы будем вызывать его один раз в методе Update() и один раз в методе Death() .

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

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

В заключение

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

Хотите писать приложения под Android, но не знаете, с чего начать? Тогда ознакомьтесь с нашей большой для изучения Android-разработки.