Создать игры для андроид

Содержание

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

Удобство Dreemchest

Движок для написания 2D игр для Android поддерживает работу с IOS, Flash, Windows и MacOS X. Распространяется он через официальный сайт абсолютно бесплатно. Для использования Dreemchest все-таки придется подучить скриптовые языки, такие как Lua и AS2.

Программа заточена под пользователя. У нее грамотный и приятный глазу дизайн оболочки конструктора, а также редактор типа WYSIWYG (“what you see is what you get”). Исходя из названия, понятно, что во время работы вы видите объект так, как он будет выглядеть на выходе. Благодаря этому вы можете быстро создавать уровни, так как не нужно будет тратить время на то, чтобы прописать-запустить-проверить-переписать.

В графическом плане движок поддерживает DirectX 9.0 и OpenGL. Физику в этом конструкторе регулирует Box2D. Этот конструктор еще молод, но составляет достойную конкуренцию соседям по рынку. Пока что он заточен исключительно под создание 2D игр, но этого более чем достаточно.

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

Отнеситесь к занятию с должным упорством – и тогда вы обязательно добьетесь результатов. И включайте свое воображение на полную катушку. Программа для создания игр на Андроид – ваш лучший помощник. Творите и делитесь своими играми!

Уровень сложности создания 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, либо в браузеры – решать вам.

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

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

Если моя игра находится в Google Play, ее можно обновлять? Обновление на Google Play будет доступно только тогда, когда вы сами его выпустите, поскольку являетесь разработчиком приложения. Какая средняя стоимость игры, выпущенной пользователем-самоучкой со средним уровнем программирования? Здесь все зависит от конкретных факторов: размер игры, ее графика, продолжительность, качество. Если говорить о мировом рынке, то около 100 долларов. Можно ли 2D игру перевести в 3D? Да, с помощью специальных программ это вполне возможно, но процедура непростая. Есть ли ограничения по времени для использования бесплатной версии Constructor 2? Нет, бесплатной версией можно пользоваться постоянно. Платная покупается по желанию.

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

Создаем игру на Android

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

Способ 1: Онлайн-сервисы

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

  1. Перейдите на главную страницу сервиса по ссылке выше или через поиск в любом удобном браузере.
  2. Нажмите на кнопку «Создать».
  3. Выберите жанр проекта, который хотите сделать. Мы рассмотрим обычный раннер.
  4. Ознакомьтесь с описанием жанра приложения и переходите к следующему шагу.
  5. Добавьте изображения для анимации. Вы можете нарисовать их самостоятельно в графическом редакторе или загрузить из интернета.
  6. Выберите врагов, если это необходимо. Вам нужно только указать их количество, параметр здоровья и загрузить картинку.
  7. Каждая игра имеет главную тему, которая отображается, например, при входе или в главном меню. Кроме этого присутствуют различные текстуры. Добавьте эти изображения в категории «Background and game images».
  8. Кроме самого процесса каждое приложение отличается использованием подходящей под жанр музыки и оформления. Добавьте шрифты и файлы аудио. На странице AppsGeyser вам предоставят ссылки, где можно загрузить бесплатную музыку и шрифты, не защищенные авторским правом.
  9. Назовите свою игру и переходите далее.
  10. Добавьте описание, чтобы заинтересовать пользователей. Хорошее описание способствует увеличению количества загрузок приложения.
  11. Последним шагом является установка иконки. Она будет отображаться на рабочем столе после инсталляции игры.
  12. Сохранить и загрузить проект можно только после регистрации или входа в AppsGeyser. Выполните это и следуйте далее.
  13. Сохраните приложение, нажав на соответствующую кнопку.
  14. Теперь вы можете опубликовать проект в Google Play Market за небольшую плату в двадцать пять долларов.

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

Способ 2: Программы для создания игр

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

Подробнее: Выбираем программу для создания игры

Мы же рассмотрим принцип создания проекта в Unity:

  1. Загрузите программу с официального сайта и установите на компьютер. Во время инсталляции не забудьте добавить все необходимые компоненты, которые будут предлагаться.
  2. Запустите Unity и перейдите к созданию нового проекта.
  3. Задайте название, удобное место сохранения файлов и выберите «Create Project».
  4. Вы будете перемещены в рабочую область, где и происходит процесс разработки.

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

Подробнее:

Способ 3: Среда разработки

Теперь давайте рассмотрим последний, самый сложный метод – использование языка программирования и среды разработки. Если предыдущие два способа позволяли обойтись без знаний в области кодинга, то здесь вам обязательно потребуется владеть Java, C# или, например, Python. Присутствует еще целый список языков программирования, которые нормально работают с операционной системой Android, однако официальным и наиболее популярным считается Java. Чтобы написать игру с нуля вам сначала нужно выучить синтаксис и ознакомиться с основными принципами создания кода на выбранном языке. В этом помогут специальные сервисы, например, GeekBrains.

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

Кроме всего, если ваш выбор на Java, а вы никогда раньше не работали с языками программирования, рекомендуем ознакомиться с JavaRush. Уроки там проходят в более развлекательном стиле и больше подходят для детей, однако при нулевом багаже знаний сайт будет полезен и взрослым.

Само программирование происходит в среде разработки. Наиболее популярной Integrated Development Environment для рассматриваемой операционной системы считается Android Studio. Ее можно загрузить с официального сайта и сразу же приступить к использованию.

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

Подробнее:
Выбираем среду программирования
Как написать программу на Java

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

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

Что необходимо знать

Итак, что же нужно, чтобы стать автором уникального шедевра:

  1. Идея или сценарий.
  2. Желание и терпение.
  3. Конструктор игр.

И если с первыми двумя составляющими успеха более-менее всё понятно, то на третьей составляющей нужно остановиться подробнее.

Что такое Конструктор игр

Речь идёт о программе, существенно упрощающей разработку игр, делая её доступной для людей, не обладающих навыками программирования. В конструкторе игр объединены интегрированная среда разработки, игровой движок и редактор уровней, который работает как визуальный редактор (WYSIWYG – англ. аббревиатура «что видишь, то и получишь»).

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

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

Как выбрать нужный конструктор

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

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

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

Топ 5 лучших конструкторов игр

Construct 2

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

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

Для освоения работы с Construct 2 нет необходимости покупать лицензию, в бесплатной Free-версии предложен вполне достаточный инструментарий и возможность экспорта готового проекта на некоторые платформы. Однако, кодирование готового продукта на мобильные платформы и доступ к полному объёму функционала даст за 129 долларов Personal-лицензия. Если же ваше мастерство в создании игр достигло апогея, и вы уже стали получать доход от своего проекта более 5 тыс.долл., придётся раскошелиться на Business-вариант, который обойдётся в 429 долл.

А теперь, посмотрите несколько практических видеоуроков по созданию игровых приложений с помощью Construct 2:

(Scirra)

Clickteam Fusion

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

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

Платная Developer-версия программы недоступна для жителей РФ, но её лицензионный диск можно будет заказать с того же Amazon, облегчив личный бюджет в среднем на 100 долларов. Возможна русификация меню через сторонний русификатор.

Как работать с приложением, смотрим специальный видео курс:

(Clickteam)

Stencyl

Stencyl – ещё один отличный инструмент, позволяющий осуществлять разработку простых компьютерных 2D-игр без специальных знаний кодов, а также языков программирования для всех популярных платформ. Здесь предстоит работа со сценариями и схемами, которые представлены в виде блоков, а перетаскивать объекты или характеристики можно мышкой, что очень удобно.

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

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

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

Программа распространяется на бесплатной основе, но экспорт в десктопные форматы требует подписки, которая будет стоить 99$ на год, а лицензия для мобильных игр — 199 долл. В год.

Смотрим ускоренный курс по работе со Stencyl:

Game Maker

Программа существует в платной и бесплатной версии. Бюджетный вариант позволяет создавать добротные двухмерные игры под десктоп. В то время, как платная версия даёт возможность написать довольно «навороченные» 3D-игрушки для Виндовс, iOS и Андроид. Нас же пока интересует бесплатная возможность научиться реализовывать себя в игровой индустрии, а Game Maker – тот самый вариант, который позволит создавать игры с собственным сценарием без ограничений в выборе жанра.

Программа предлагает выбор готовых шаблонов локаций, объектов, а также, персонажей, звуков и фонов. Так что, вся творческая работа сводится к перетаскиванию в рабочую зону выбранные элементы и выбору условий – местонахождение и взаимодействие с другими объектами. Хоть знание языка программирования и не понадобится, но пользователи, которые «в теме» смогут использовать GML, чем-то схожим с JS и C++.

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

Кого заинтересовала эта программа, предлагаем посмотреть обучающее видео:

*Примечание: На видео представлена только первая часть обучающего курса, чтобы посмотреть вторую, , и заключительная, четвёртая часть.

Unity 3D

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

Игры, созданные с помощью Unity совместимы со всеми востребованными платформами от мобильных устройств на iOS или Android до SMART TV телевизионных приёмников.

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

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

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

Серия занятий по созданию игр с помощью Unity 3D:

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

Сколько стоит сделать мобильную игру?

Меня зовут Евгений Литвинов, я разрабатываю компьютерные игры. Я успел поработать в больших компаниях и маленьких студиях программистом, а также у меня есть хобби: делать небольшие мобильные игры целиком: придумывать, рисовать, программировать.
Сейчас я заканчиваю игру Out of Brakes и хочу на ее примере посчитать, сколько же стоит разработать игру своими силами для App Store?
Итак, я начал с выбора технологии, на которой я буду делать свою игру. Идея и представление, как игра должна выглядеть у меня уже были, поэтому я определился быстро — это unity3d. Поддержка мобильных платформ, бесплатность и простота использования — то, во что должен был превратиться Flash, но так и не превратился.
После этого я подобрал площадку под svn. Контроль версий необходим, если вы работаете один, если вы работаете в команде — он необходим вдвойне. Я работаю под Windows, Macbook используется только для сборки: после рабочего дня забираем все изменения на мак и делаем сборку для iPhone/iPad. Можно развернуть контроль версий на собственной машине, или воспользоваться площадкой, предоставляющей бесплатное пространство ограниченного размера: для небольшого проекта должно хватить.
После того, как прототип игры был готов, пришла пора опробовать его на устройстве. Я не включаю в статью расходы на покупку iPhone/iPad. Для меня вопрос выбора платформы состоит из того, какой смартфон лежит у меня в кармане и чья методология мне ближе. Вообще, как бывший пользователь Android оговорюсь, что с ним на ранних этапах работать удобней: во-первых, сборку можно делать и под Windows, и под MacOS, во-вторых, для Android не обязательно покупать сертификат разработчика, пока вы не решили делать платный контент. Что на счет мака? Тут все немного сложней. Сертификат разработчика обойдется в 100$ вне зависимости, будете Вы делать платные или бесплатные игры. Тут нужно оговорится, что скачать xCode и собрать игру на свой iPhone или iPad возможно и без сертификата, но чтобы пощупать iTunes и пройти весь процесс от идеи до App Store — без него не обойтись. Я этого не знал, так что сертификат был куплен сразу – 100$.
Еще одна сложность при вхождении на рынок яблочников, это обязательное наличие Macbook (xCode под Windows отсутствует). Но, как говорит Барон Мюнхаузен: «Безвыходных ситуаций не бывает». Можно развернуть виртуальную машину, например, WMWare Player бесплатен для некоммерческого использования. В открытое море на таком дырявом тазу не выйдешь, но для ознакомления может сгодиться: тормозит, глючит, но билдит. Можно пойти другим путем и поискать б/у технику: Macbook Pro 2008 года обошелся мне в 250$ — кто ищет, тот всегда найдет.
Далее была продумана схема монетизации игры: я остановился на freetoplay и внутриигровых покупках. Тут два пути: писать свой плагин или купить готовое решение, например prime31, 70$. Можно конечно, сделать игру платной в сторе, но таким образом я бы лишился козыря: возможности бесплатно предлагать продукт, что при отсутствии рекламного бюджета резко снижает шансы на успех.
Еще один момент, который обязателен для любой современной игры, это социальная интеграция, шаринг игрового прогресса и система лидербордов/ачивок. Я решил добавить поддержку AirDrop: в Unity Store можно найти плагин от 10$ (Diffusion — iOSSocialNetworking) до 65$ (prime31 — iOSSocialNetworkingPlugin), или написать свое решение. Добавление социальных фишек — обязательная штука, которая выводит «сарафанное радио» на новый уровень — еще один козырь в рукаве инди-разаботчика. Я выбрал prime31 — более дорогой, но и функциональный плагин – 65$.
Лидерборды и ачивки – достаточно стандартного пакета SocialPlatforms, который входит в Unity3d, статья на тему: Unity3d: эксперименты с Social Interface.
Когда прототип игры был готов, а его демонстрация друзьям прошла тепло, были куплены 2 домена (9$ + 9$ = 18$ на год): под студию Pixelfresh Games и под игру Out of Brakes, а также хостинг под них (25$ на год): заявлять о себе намного выгодней от имени компании.
Когда основная часть работы уже сделана и я был готов поделится проделанной работой с публикой, я продумал и сделал видео-ролик. Когда же я захотел разместить его на youtube, я столкнулся с пунктом непредвиденных расходов: дело в том, что создать аккаунт на youtube может только пользователь gmail, что не входило в мои планы. Изучив вопрос, оказалось, что нужно использовать Google Apps for Business: он позволяет «связать» собственный домен с сервисами от Google. Раньше это было бесплатно, сейчас уже нет. Для создания youtube-канала пришлось подписаться: 4$ в месяц за одного пользователя. 3 месяца для 2-х пользователей – 24$.
Продолжая социализироваться, я создал страницы в Facebook , ВК и Twitter – наконец-то что-то удалось сделать бесплатно.
На купленный хостинг был залит сайт Out of Brakes — мой дизайн + 35$ за верстку.
Так как дизайн игры – пиксельный, нужно было подобрать соответствующий шрифт. Большой выбор бесплатных шрифтов можно найти тут www.dafont.com.
Музыка и дизайн звуков. Я считают, что звук — это отражение и продолжение игры, поэтому с самого начала я хотел, чтобы музыку мне писали, а не искать подходящую композицию на стоках или бесплатных сайтах, таких, как Freesound или Newgrounds. Мне повезло, один из моих друзей(Валентин Пархоменко) — композитор, согласился написать музыку и звуковые эффекты за 300$ — в ключе текущих расходов это большая сумма, но на мой взгляд, оно того стоило.
Локализация — это странная статья расходов, к которой я долго привыкал. Понятное дело, что в наше время мы все владеем английским, и некоторые даже хорошо, так что есть соблазн сделать все самому, но, в конечном счете, я решил, что если бы я играл в игру на ломаном русском или украинском, я бы ее быстро удалил. Тут же встал вопрос, может стоит заказать и другие локализации? Например, французы неохотно качают англоязычные игры, хоть и владеют им. Поэтому я решил делать поддержку следующих языков: English, Français, Deutsch, Italiano, Русский язык, Українська мова. Вообще, в процессе выяснилось, что Испанский более распространен, чем Итальянский. Так что логичнее было начинать с него.
В качестве сайтов по переводу рассматривались 3 кандидата:
ICanLocalize — пожалуй, самый дешевый, плюс можно торговаться и сотрудничать с одними и теми же переводчиками, что удобно в долгосрочной перспективе. Но кол-во переводчиков с русского языка невелико.
Tethras — крутой функционал, поддеркжа всевозможных форматов локализаций, мгновенный парсинг, подсчет цены, возможность добавлять комментарии на каждую строку локализации. Одна беда, не переводят с русского языка.
Alconost — отечественный ресурс, автоматизация заменена теплым общением с менеджером через почту. Переводами занимаются носители языка (если верить сайту), работают быстро, дают фитбек переводчиков, если им что-то не ясно или есть предложения, и главное, переводят с русского.
Вообще, средняя цена перевода оказалсь примерно одинаковой — 0.09$ за слово, в моем случае – это около 30$ за локализацию.
Воспользовавшись сервисом Alconost, 4 локализации мне обошлись в 142$.
Качество – все баги не починишь, все пожелания не учтешь, но приложить к этому все усилия – обязанность любого разработчика. Помимо личного тестирования и тестирования близкими друзьями 50$ было выплачено знакомому тестировщику. Это нужно, во-первых, для первоначального глубокого тестирования, а во-вторых – для регрессионного тестирования перед запуском, после финальной шлифовки продукта.
На этом статья расходов подошла к концу, пора подвести итоги:
• 100$ — сертификат разработчика Apple;
• 250$ — б/у MacBook Pro 2008;
• 70$ — Unity3d-plugin prime31 StoreKitiOS (внутриигровые покупки);
• 65$ — Unity3d-plugin prime31 SocialNetworking iOS (интеграцияiOS AirDrop, Facebook, Twitter);
• 43$ — домен и хостинг на 1 год;
• 24$ — GoogleAppsforBusiness на 3 месяца (2 пользователя);
• 35$ — дизайн сайта;
• 300$ — оригинальная музыка и звуки;
• 142$ — локализация (English, Français, Deutsch, Italiano);
• 50$ — тестирование;
• 1079$ — полная сумма разработки игры Out of Brakes.
В общем вышло не дорого, тем более, что половина расходов ушла на сертификат, плагины и MacBook Pro, которые можно использовать и для следующих проектов.
Из этих затрат можно сделать два вывода: личный опыт и связи позволяют сэкономить на многих аспектах разработки, а возможность спродюссировать свой продукт самостоятельно освобождают время и нервы, необходимые на поиск и работу с инвестором.

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

Обзор команды Scorocode

В закладки

Маркетолог облачной backend-платформы Scorocode Михаил Епихин написал для vc.ru колонку про отрасль разработки мобильных приложений — как заказчикам сэкономить время и деньги на создании приложений, а программистам — снизить себестоимость разработки и поддержки.

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

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

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

Сроки

Первое, из чего складывается стоимость и время разработки — это сложность приложения. Второе — количество платформ (iPhone iOS, iPad iOS, Android phone, Android tablet, Windows Phone), на которых оно будет работать. Да, планшеты и смартфоны нередко считаются отдельно, но не всегда, ниже объясню почему.

Кстати, приложение под Android делать процентов на 20-30 дольше и по крайней мере на треть дороже, чем под iOS, потому что его нужно тестировать на большем количестве девайсов. В результате находится больше багов и приходится вносить больше правок. В часах разница в затраченном времени начинается от 20 для простого приложения (все данные — от эксперта рынка Николаса Райта, опубликованные в блоге Upwork) и заканчивается числами за сотню для сложного.

Разделение по категориям сложности у каждой студии свое. Тот же Николас, например, выделяет:

  • простые (делаются по шаблонам, без баз данных, 70-140 часов для устройств Apple);
  • поддерживающие интеграцию с базами данных (делаются с помощью backend-платформ типа Scorocode, 140-210 часов для iOS);
  • для предприятий (интегрируются с бизнес процессами, используют как базы данных, так и память устройства, от 210 часов для iOS);
  • игровые (сингплэеры и мультиплэеры, от 420 часов для iOS).

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

Простые приложения

Обычно под простыми приложениями понимают те, которые содержат около 5 экранов, не обмениваются данными ни с какими вашими и чужими базами (сами не обновляют списки свободных столов, оставшихся билетов), не собирают аналитику действий пользователей, а личный кабинет в них если и есть, то с регистрацией только по email.

Простые приложения — это, как правило, или визитки (информация о компании, адрес, карта проезда), или программы, созданные для одного несложного процесса вроде оформления заказа без выбора товара и добавления в корзину. Для iOS и Android-смартфонов и планшетов специализированные агентства создают подобное за месяц-два, затрачивая 100-300 часов своих специалистов.

Приложение на одной платформе можно сделать быстрее и дешевле — в рамках месяца (150 часов) — но немногие клиенты согласны ограничиваться одним устройством. Для них и тех, кто хочет сэкономить, есть решение в виде кросс-платформенной разработки, но там много подводных камней вроде ограниченности функциональности, визуализации и производительности, правда, для некоторых заказов это не критично (обо всем этом можно почитать обзоры Mashable, Forbes или заметки на Habrahabr).

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

Стоимость

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

Аренда помещения

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

Одновременно такой штат может вести 8 проектов (тоже по аналогии с материалом по ссылке выше), то есть за каждый месяц работы с вами они потратят как минимум 15 тысяч на аренду офиса под ваш заказ. Таким образом, для простых приложений, которые делаются за месяц-два, расходы составят 15-30 тысяч, для средних (3-6 месяцев) — 45-75, для сложных — от 90.

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

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

Плюс компании, которые используют BaaS-платформы (Backend as a service) вроде нашей, тратят на разработку значительно меньше (об этом ниже), соответственно, их услуги должны стоить дешевле. Эту информацию можно и нужно запрашивать на этапе переговоров, как и оценки всех работ с разбивкой по часам сотрудников. Лучше попросить выставить реальную стоимость разработки в часах с отдельно указанной комиссией, так вам будет проще сравнить предложения разных студий друг с другом и с цифрами из нашей статьи.

Проектирование и дизайн

Этим может заниматься и команда от трех специалистов (UX-дизайнер, UI-дизайнер и графический дизайнер), и один мастер на все руки. В первом варианте качество выше (цена тоже), но обычно студии используют второй. В нем на дизайн в среднем уходит 80 часов при затратах на разработку в 500 часов и 160 — при разработке в 900. Со средней московской зарплатой соответствующего дизайнера в 80 000 рублей в месяц (по данным hh.ru) и средним количеством рабочих часов в месяц 165 (по производственному календарю) получаем округленно 15 000 для простого приложения (около 270 часов на создание), 40 000 для среднего (около 670), 80 000 для сложного (около 1 150).

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

Разработка

Делится на backend и frontend, но мобильные программисты, специализирующиеся на определенной ОС, занимаются и тем, и другим. Исходя из среднего оклада сотрудника в 100 000 в месяц (по данным Superjob), получаем стоимость разработки простого приложения примерно в 120 000, среднего — 290 тысяч, сложного – 515 тысяч (количество часов на создание берем то же, что выше).

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

Есть вариант упростить обе части разработки, создав приложения по шаблону. За него вы ежегодно будете платить всего 3-4 тысячи рублей, но качество таких продуктов обычно очень далеко от современного понимания прекрасного. Дальше, чем качество шаблонов сайтов и email-рассылок, например.

Второй вариант – упростить только программирование серверной части, воспользовавшись платформами backend-разработки. Это эффективно, потому что доля backend-работ (включая core) в программировании приложений составляет около 80% – на front уходит только пятая часть времени. Вы получаете готовый SDK, который включает в себя моделирование данных, PUSH, email- и SMS-уведомления, облачное хранилище, серверный код на JavaScript, аналитические инструменты и управление пользователями. Он помогает сократить количество задействованных сотрудников (даже в сложных приложениях можно обойтись без архитектора и разработчика баз данных, системного администратора и одним-двумя системными разработчиками вместо двух-трех) и снижает долю серверного программирования в разработке до 30%.

Это особенно положительно влияет на сроки создания всего продукта (то, что без BaaS-платформы можно написать за 18 месяцев, с ней делается в 2-3 раза быстрее), потому что больше всего времени на серверную функциональность тратится в начале, и пока не создана база, frontend писать невозможно. Плюс автоматически решается вопрос с облачными сервисами для хостинга данных и инструментами анализа серверной нагрузки на приложение. За использование платится комиссия, как у любого облачного сервиса.

Тестирование и публикация

Этим обычно занимается менеджер проекта или специальные тестировщики ПО, но зарплаты у них примерно одинаковые — около 80 тысяч в среднем (снова данные Superjob и HeadHunter). По практике, на тестирование и выкладывание в сторы уходит от 2 дней до 2 недель непрерывной работы, то есть от 16 до 80 часов. Для простого приложения это будет стоить 8 000 рублей, для сложного в районе 40, для среднего – около 25.

Прибавим сюда управление проектом, которое, скорее всего, будет осуществлять тот же менеджер. По опыту, он потратит на это около 3 дней непрерывной работы (включая первую встречу с клиентом, сбор требований и т.п.) в простом варианте, 7 — в среднем и от 14 — в сложном. В деньгах такие траты — это 12 000, 27 000 и 54 000 рублей соответственно.

Кстати, выкладывание приложения в магазин далеко не последняя по сложности задача. Гайдлайны App Store и Google Play содержат довольно много причин, по которым ваш продукт могут отклонить, например, возрастной рейтинг. Кроме того, каждая итерация проверки занимает довольно много времени – около недели (но есть способы ускорить процесс), что добавляет проблем тем, у кого к чему-то приурочены дедлайны по выкладке. Почитать инструкции, хитрости и опыт других других людей, который поможет в этом непростом деле, можно на Хабре.

Если говорить об итоговых цифрах времени и денег, на которые надо рассчитывать, по словам самих исполнителей, то здесь данные студий очень разнятся. Например, 2Nova Interactive озвучивает рамки от 600 тысяч рублей до нескольких миллионов. Минимальный срок разработки у них — 1,5 месяца (без учёта времени согласований и публикации в сторах).

У MST в портфолио есть и проекты, которые были сделаны менее чем за 2 недели, и такие, работы по которым ведутся уже несколько лет (продолжается доработка дополнительной функциональности). В AGIMA нам рассказали, что простое приложение делают за 2-3 месяца и относят к таким все, что дешевле 1 млн рублей (среднее они создают за 3-6 месяцев и стоит оно 2-4 млн, сложные – от 6 месяцев, и стоят они уже от 4 миллионов). Кстати, стоимость может быть как фиксированной, так и пересматриваться в процессе разработки, если у вас горят сроки и нет времени определяться с объемом функционала в начале проекта. Правда, во втором варианте, вы, скорее всего, переплатите за срочность.

Прогнозы

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

Например, уже сейчас есть гибридная система React Native, разработанная компанией Facebook, которая работает с нативными компонентами операционных систем iOS и Android. То есть это вариант кроссплатформенной разработки, которая, за счет взаимодействия с разными ОС напрямую, выглядит так, как будто приложение писали под каждое устройство отдельно. Пока технология ещё очень молодая (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 абсолютно бесплатен для пользователей – при условии, что игры, разработанные с его помощью, распространяются на бесплатной основе. К этому движку я также прикладываю видео обзор, в котором будет показано как именно можно создавать игры:

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

А знаете ли Вы, какие бесплатные программы для редактирования фотографий, являются лучшими?

Туториал: Создание простейшей 2D игры на андроид

Этот туториал предназначен в первую очередь для новичков в разработке под андроид, но может быть будет полезен и более опытным разработчикам. Тут рассказано как создать простейшую 2D игру на анроиде без использования каких-либо игровых движков. Для этого я использовал Android Studio, но можно использовать любую другую соответствующее настроенную среду разработки.
Шаг 1. Придумываем идею игры
Для примера возьмём довольно простую идею:
Внизу экрана — космический корабль. Он может двигаться влево и вправо по нажатию соответствующих кнопок. Сверху вертикально вниз движутся астероиды. Они появляются по всей ширине экрана и двигаются с разной скоростью. Корабль должен уворачиваться от метеоритов как можно дольше. Если метеорит попадает в него — игра окончена.
Шаг 2. Создаём проект
В Android Studio в верхнем меню выбираем File → New → New Project.
Тут вводим название приложения, домен и путь. Нажимаем Next.
Тут можно ввести версию андроид. Также можно выбрать андроид часы и телевизор. Но я не уверен что наше приложение на всём этом будет работать. Так что лучше введите всё как на скриншоте. Нажимаем Next.
Тут обязательно выбираем Empty Activity. И жмём Next.
Тут оставляем всё как есть и жмём Finish. Итак проект создан. Переходим ко третьему шагу.
Шаг 3. Добавляем картинки
Скачиваем архив с картинками и распаковываем его.
Находим папку drawable и копируем туда картинки.
Позже они нам понадобятся.
Шаг 4. Создаём layout
Находим activity_main.xml, открываем вкладку Text и вставляем туда это:

<?xml version=»1.0″ encoding=»utf-8″?> <LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android» xmlns:tools=»http://schemas.android.com/tools» android:layout_width=»match_parent» android:layout_height=»match_parent» android:orientation=»vertical» tools:context=»com.spaceavoider.spaceavoider.MainActivity»> <LinearLayout android:id=»@+id/gameLayout» android:layout_width=»match_parent» android:layout_height=»match_parent» android:orientation=»vertical» android:layout_weight=»100″/> <LinearLayout android:layout_width=»match_parent» android:layout_height=»wrap_content» android:orientation=»horizontal»> <Button android:id=»@+id/leftButton» android:layout_width=»match_parent» android:layout_height=»wrap_content» android:layout_weight=»50″ android:text=»Left» /> <Button android:id=»@+id/rightButton» android:layout_width=»match_parent» android:layout_height=»wrap_content» android:layout_weight=»50″ android:text=»Right» /> </LinearLayout> </LinearLayout>
На вкладке Design видно как наш layout будет выглядеть.
Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать .
Шаг 5. Редактируем MainActivity класс
В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
Добавим в класс нужные нам статические переменные (переменные класса):
public static boolean isLeftPressed = false; // нажата левая кнопка public static boolean isRightPressed = false; // нажата правая кнопка
В процедуру protected void onCreate(Bundle savedInstanceState) {
добавляем строки:
GameView gameView = new GameView(this); // создаём gameView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout gameLayout.addView(gameView); // и добавляем в него gameView Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch) rightButton.setOnTouchListener(this);
Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.
Теперь добавляем процедуру:
public boolean onTouch(View button, MotionEvent motion) { switch(button.getId()) { // определяем какая кнопка case R.id.leftButton: switch (motion.getAction()) { // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isLeftPressed = true; break; case MotionEvent.ACTION_UP: isLeftPressed = false; break; } break; case R.id.rightButton: switch (motion.getAction()) { // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isRightPressed = true; break; case MotionEvent.ACTION_UP: isRightPressed = false; break; } break; } return true; }
Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:
package com.spaceavoider.spaceavoider; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity extends AppCompatActivity implements View.OnTouchListener { public static boolean isLeftPressed = false; // нажата левая кнопка public static boolean isRightPressed = false; // нажата правая кнопка @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GameView gameView = new GameView(this); // создаём gameView LinearLayout gameLayout = (LinearLayout) findViewById(R.id.gameLayout); // находим gameLayout gameLayout.addView(gameView); // и добавляем в него gameView Button leftButton = (Button) findViewById(R.id.leftButton); // находим кнопки Button rightButton = (Button) findViewById(R.id.rightButton); leftButton.setOnTouchListener(this); // и добавляем этот класс как слушателя (при нажатии сработает onTouch) rightButton.setOnTouchListener(this); } public boolean onTouch(View button, MotionEvent motion) { switch(button.getId()) { // определяем какая кнопка case R.id.leftButton: switch (motion.getAction()) { // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isLeftPressed = true; break; case MotionEvent.ACTION_UP: isLeftPressed = false; break; } break; case R.id.rightButton: switch (motion.getAction()) { // определяем нажата или отпущена case MotionEvent.ACTION_DOWN: isRightPressed = true; break; case MotionEvent.ACTION_UP: isRightPressed = false; break; } break; } return true; } }
Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.
Для начала сделаем чтобы на экране отображался космический корабль, и чтобы он двигался по нажатию управляющих кнопок. Астероиды оставим на потом.
Шаг 6. Создаём класс GameView
Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.
public static int maxX = 20; // размер по горизонтали public static int maxY = 28; // размер по вертикали public static float unitW = 0; // пикселей в юните по горизонтали public static float unitH = 0; // пикселей в юните по вертикали
unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:
private boolean firstTime = true; private boolean gameRunning = true; private Ship ship; private Thread gameThread = null; private Paint paint; private Canvas canvas; private SurfaceHolder surfaceHolder;
Конструктор будет таким:
public GameView(Context context) { super(context); //инициализируем обьекты для рисования surfaceHolder = getHolder(); paint = new Paint(); // инициализируем поток gameThread = new Thread(this); gameThread.start(); }
Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:
@Override public void run() { while (gameRunning) { update(); draw(); control(); } } private void update() { if(!firstTime) { ship.update(); } } private void draw() { if (surfaceHolder.getSurface().isValid()) { //проверяем валидный ли surface if(firstTime){ // инициализация при первом запуске firstTime = false; unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните unitH = surfaceHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); // добавляем корабль } canvas = surfaceHolder.lockCanvas(); // закрываем canvas canvas.drawColor(Color.BLACK); // заполняем фон чёрным ship.drow(paint, canvas); // рисуем корабль surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas } } private void control() { // пауза на 17 миллисекунд try { gameThread.sleep(17); } catch (InterruptedException e) { e.printStackTrace(); } }
Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.
Шаг 7. Создаём класс SpaceBody
Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:
protected float x; // координаты protected float y; protected float size; // размер protected float speed; // скорость protected int bitmapId; // id картинки protected Bitmap bitmap; // картинка
и методы
void init(Context context) { // сжимаем картинку до нужных размеров Bitmap cBitmap = BitmapFactory.decodeResource(context.getResources(), bitmapId); bitmap = Bitmap.createScaledBitmap( cBitmap, (int)(size * GameView.unitW), (int)(size * GameView.unitH), false); cBitmap.recycle(); } void update(){ // тут будут вычисляться новые координаты } void drow(Paint paint, Canvas canvas){ // рисуем картинку canvas.drawBitmap(bitmap, x*GameView.unitW, y*GameView.unitH, paint); }
Шаг 8. Создаём класс Ship
Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.
Напишем конструктор:
public Ship(Context context) { bitmapId = R.drawable.ship; // определяем начальные параметры size = 5; x=7; y=GameView.maxY — size — 1; speed = (float) 0.2; init(context); // инициализируем корабль }
и переопределим метод update()
@Override public void update() { // перемещаем корабль в зависимости от нажатой кнопки if(MainActivity.isLeftPressed && x >= 0){ x -= speed; } if(MainActivity.isRightPressed && x <= GameView.maxX — 5){ x += speed; } }
На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды. При столкновении с кораблём игра заканчивается.
Шаг 9. Создаём класс Asteroid
Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.
Добавим нужные нам переменные:
private int radius = 2; // радиус private float minSpeed = (float) 0.1; // минимальная скорость private float maxSpeed = (float) 0.5; // максимальная скорость
Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.
public Asteroid(Context context) { Random random = new Random(); bitmapId = R.drawable.asteroid; y=0; x = random.nextInt(GameView.maxX) — radius; size = radius*2; speed = minSpeed + (maxSpeed — minSpeed) * random.nextFloat(); init(context); }
Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.
@Override public void update() { y += speed; }
Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.
public boolean isCollision(float shipX, float shipY, float shipSize) { return !(((x+size) < shipX)||(x > (shipX+shipSize))||((y+size) < shipY)||(y > (shipY+shipSize))); }
Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.
((x+size) < shipX) — корабль слева от астероида.
(x > (shipX+shipSize)) — корабль справа от астероида.
((y+size) < shipY) — корабль сверху астероида.
(y > (shipY+shipSize)) — корабль снизу астероида.
Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.
Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.
Про определение пересечения более сложных фигур можно почитать .
Шаг 10. Добавляем астероиды в GameView
В GameView добавляем переменные:
private ArrayList<Asteroid> asteroids = new ArrayList<>(); // тут будут харанится астероиды private final int ASTEROID_INTERVAL = 50; // время через которое появляются астероиды (в итерациях) private int currentTime = 0;
также добавляем 2 метода:
private void checkCollision(){ // перебираем все астероиды и проверяем не касается ли один из них корабля for (Asteroid asteroid : asteroids) { if(asteroid.isCollision(ship.x, ship.y, ship.size)){ // игрок проиграл gameRunning = false; // останавливаем игру // TODO добавить анимацию взрыва } } } private void checkIfNewAsteroid(){ // каждые 50 итераций добавляем новый астероид if(currentTime >= ASTEROID_INTERVAL){ Asteroid asteroid = new Asteroid(getContext()); asteroids.add(asteroid); currentTime = 0; }else{ currentTime ++; } }
И в методе run() добавляем вызовы этих методов перед вызовоом control().
@Override public void run() { while (gameRunning) { update(); draw(); checkCollision(); checkIfNewAsteroid(); control(); } }
Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().
private void update() { if(!firstTime) { ship.update(); for (Asteroid asteroid : asteroids) { asteroid.update(); } } }
Такой же цикл добавляем и в метод draw().
private void draw() { if (surfaceHolder.getSurface().isValid()) { //проверяем валидный ли surface if(firstTime){ // инициализация при первом запуске firstTime = false; unitW = surfaceHolder.getSurfaceFrame().width()/maxX; // вычисляем число пикселей в юните unitH = surfaceHolder.getSurfaceFrame().height()/maxY; ship = new Ship(getContext()); // добавляем корабль } canvas = surfaceHolder.lockCanvas(); // закрываем canvas canvas.drawColor(Color.BLACK); // заполняем фон чёрным ship.drow(paint, canvas); // рисуем корабль for(Asteroid asteroid: asteroids){ // рисуем астероиды asteroid.drow(paint, canvas); } surfaceHolder.unlockCanvasAndPost(canvas); // открываем canvas } }
Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
Игра, конечно, примитивна. Но её можно усовершенствовать, добавив новые функции. В первую очередь следует реализовать удаление вылетевших за пределы экрана астероидов. Можно сделать чтобы корабль мог стрелять в астероиды, чтобы игра постепенно ускорялась, добавить таймер, таблицу рекордов и прочее. Если это будет вам интересно — напишу продолжение, где всё это опишу.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.

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

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