На чем пишут игры для android. Как сделать приложение или игру для андроид Android создание онлайн игр

Игровая индустрия за последние несколько лет сильно изменилась. Раньше по-настоящему большие проекты выходили раз-два в год, если не меньше, в наше время ситуация совсем другая. На официальном сайте Steam была опубликована новость, в которой приводилась подробная статистика: за этот год было выпущено 38% всех игр площадки (более 4200, из них около 80% - Indie.). Кто-то скажет, что из-за количества страдает качество, но на самом деле это не всегда оказывается правдой. В данной статье мы описали несколько программ для создания игр, с помощью которых вы сможете разрабатывать свои проекты на различные платформы: PC, IOS, Android, PS4, Xbox One.

Unity3D

Unity Technologies - уникальная компания. Она создала движок Unity3D - один из самых популярных инструментов для создания игр во всей игровой индустрии. Игровой движок Unity несомненно является доминирующим глобальным поставщиком программного обеспечения для разработки игр. Больше всего игр сделано именно на этом движке. Так, за 2015 год было создано 220 тысяч видео игр, а установки превысили 4,2 миллиарда раз. Все больше геймеров играют в игры, сделанные на Unity, и все больше разработчиков полагаются на их инструменты и сервисы для управления своим бизнесом. Мы уже писали о Unity 5 на нашем сайте, сравнивая его с другими игровыми движками: . Сейчас мы вкратце расскажем о нём.

Игровой движок Unity 5 предлагает широкий спектр функций и довольно простой для понятия интерфейс. Это кросс-платформенный движок, который с легкостью портирует игры на Android, IOS, Windows Phone 10, BlackBerry , делая его замечательным инструментом для создания мобильных игр. Он также имеет возможность создания видеоигр для консолей нового поколения: PS4 PRO, Xbox One S .

Unity поддерживает 3D форматы различных программ: 3ds Max, Maya, Blender, CINEMA 4D, Softimage и так далее. Новый Unity3D поддерживает гибкую настройку Спрайтов (Sprites) и 2D физики, что делает его отличным игровым движком для создания 2D и 2.5D игр. Именно поэтому многие компании, нацеленные на создание мобильных проектов, выбирают Unity, потому что быстрая разработка, минимальные вложения, портирование на все возможные платформы - это то, что по-настоящему нужно небольшим компаниям.

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

Unity 5 имеет несколько тарифных планов. Если раньше их было все 2: бесплатная версия и платная за $75/месяц, то сейчас их куда больше. Personal версия - бесплатная сборка для тех, кто только знакомится с этим игровым движков. Доход в данном случае не должен повышать $100.000 долларов за квартал. Вам будут доступны все функции, вы сможете начать работать сразу, как только зарегистрируетесь и установите его.
Версия Plus - сборка, подходящая для продвинутых художников. Одной из главной особенности этой сборки является замена скина UI редактора, замена начального экрана и ряд других возможностей, недоступных для пользователей с бесплатной версией.
PRO версия - для мастеров своего дела. С Unity Pro у вас есть возможность посмотреть исходный код, получить премиум поддержку, ассеты можно купить на Asset Store со скидкой 40%, что очень неплохо.
И последняя версия - Enterprise . Данную сборку нельзя купить обычным способом, вам будет необходимо связываться с Unity Technologies для получения самой профессиональной сборки для 20+ сотрудников.

Unity часто ассоциируется с мобильными играми, но с выходом Unity 5 и новым рендером наблюдается огромный рост графических возможностей игрового движка, включая такие вещи, как Physically Based Shading, Global Illumination в реальном времени и HDR Reflection Probes , а также многие другие улучшения.

Unity 5 предлагает некоторые функции, которые делают его сильным соперником среди игровых движков Unreal Engine 4 и CryEngine 3. Скачать можно с официального сайта Unity.com .

Unreal Engine

Unreal Engine - игровой движок, разработанный компанией Epic Games . Она известна по ряду игр: FPS шутер "Unreal ", блокбастер "Gears of War ", "Infinity Blade " на IOS. С этим инструментом можно создать игры на Windows, Mac, Xbox One S, PS 4K, IOS, Linux, Android, Ouya, VR и для HTML5 Web браузеры.

Если Unity знают по Indie играм (Crossy Road, Superhot, I am Bread и так далее), то Unreal Engine, наоборот, выпускает огромные проекты, будь то Smite, Paragon, Day by Daylight ... Эта программа имеет полный набор инструментов для создания своей собственной игры, начиная с мобильной 2D, заканчивая консольным VR блокбастером. Он использует встроенный визуальный скриптинг - Blueprint, который сильно упрощает процесс создания игры.

В Unreal Engine 4 любому пользователю будет доступен исходный код, с которым можно настроить программу под себя, использовать необходимые плагины и написать свои. Присоединившись к Epic Games вы сможете посмотреть 3 миллиона строк кода, доступных на GitHub. Скачать с официального сайта: ссылка .

Kobold2D

Ready-To-Go решение для разработки игр на IPhone . Открытый код, ARC включен, для IOS и Mac OS. Kobold2D - это расширенная и улучшенная версия знаменитой программы для создания игр - Cocos2D для IPhone. Все, что вы знали о Cocos2D, может быть применено в новом движке. Новая версия более удобна в использовании, более мощный и гибкий вариант, чем Cocos2D, вся документация доступна в интернете и в автономном режиме. Используйте эту программу для создания игр под Iphone, Ipod Touch, Ipad и Mac Os X для Apple App Store.

Kobold2D использует популярный cocos2D-iphone игровой движок, добавляет часто используемый код, интегрирует популярные библиотеки и хочет, чтобы вы были более продуктивными и получали удовольствие от обучения и разрабатывания IOS и Mac OS X игр. Kobold2D предоставляет обширную документацию и множество примеров кода для быстрого старта.

ZGame Editor

Создавайте игры размером всего 64KB или меньше, используя процедурный контент. Программа использует OpenGL для графики и Real-Time синтезатор для аудио. ZGameEditor - это бесплатная Open Source программа. Для более подробного изучения посетите веб-сайт с документацией.

ZGameEditor - инструмент для создания несложных аркадных игр. Особенности: Встроенное окружение для разработки, где вы можете работать и тестировать свою игру, Cross-Platform: Редактор только для Windows, но также можно запускать на Linux, Mac OS X и Android, 3D ассеты и геймлпей компоненты, импортируйте свои текстуры, MIDI файлы для музыки и 3DS файлы для 3D ассетов. Игры, созданные на ZGE, можно распространять бесплатно (Royalty Free). Исходный код можно посмотреть здесь (Pascal): .

GameGuru

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

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

Рендер: игровой движок поддерживает технологию Level of Detail (LOD), чтобы обеспечить плавную картинку и высокую частоту кадров. Каскадный мэппинг теней, динамические тени в реальном времени. Возможность запекания теней, добавления дополнительных реалистичных теней, поддержка Ambient Occlusion, Sky maps и Occlusion Culling System.

Геймплей: экшен FPS, быстрая, классическая FPS механика, Third Person Shooter механика, стратегия в реальном времени, Фэнтези-анимации, готовый мультиплеер (Просто создайте или присоединитесь к созданной игре в GameGuru, используя Steam Multiplayer и Steam Workshop. )

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

GameMaker: Studio

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

Импортируйте изображения, анимации, аудио и шрифты через Studio"s Resource Tree . Разработав игру, вы сможете портировать её сразу на несколько платформ, используя кросс-платформенные решения от GameMaker.

Недавно YoYo Games анонсировали вторую часть программы для создания игр - GameMaker Studio 2 . Движок был полностью переделан, поменялся интерфейс, кодовая база и был добавлен ряд новых функций. Из нового: Room Editor, Brush Based Editing, Drag/Drop, Animation Support, удобные Tile Brushes и многое другое. Прочитайте полный список здесь: .

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

javascript gamedev html5 canvas

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

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

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

Начало

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

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

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

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

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

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

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

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

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

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

Этап 3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Меню игры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реклама

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

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

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

Разработка идеи

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

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

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

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

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

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

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

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

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

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

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

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

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

Программирование происходит на языке Java. Это один из самых популярных языков. Без начального уровня вы не сможете работать в Андроид Студии. Он строго типизирован, при этом в освоении намного легче C или C++. Следует найти насколько книг по Java, а затем постепенно изучать все особенности этого языка программирования. Параллельно обязательно выполняйте различные практические задания, чтобы закрепить теорию. Это трудный путь, но он предлагает максимальные возможности в реализации своего проекта. С Андроид-студией также можно создать онлайн-игры.

Если вы не сильны в программировании, попробуйте воспользоваться конструктором приложений. Разработка игр при помощи конструктора сводится к созданию уровней, персонажей и других элементов при помощи специального редактора. Многие конструкторы основаны на принципе WYSIWYG – «что видишь, то и получаешь». Пользователь может разработать уровни, персонажей и другие элементы, выставляя их в специальном редакторе и изменяя настройки/свойства. Это намного проще, чем с нуля программировать игру.

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

Первые строчки по популярности занимает Construct 2. Имеется бесплатная начальная версия, в которой имеется широкий функционал для создания игры любого жанра. Программа позволяет разработать игру не только под операционную систему Android, но и для iOS, и даже для браузера (используется HTML5). Программу без труда освоят даже новички. Если функционала вам недостаточно, можете приобрести полную версию за 129 долларов.

Одним из крайне популярных является конструктор Clickteam Fusion. Он отличается простым интерфейсом, возможностью бесплатно создавать браузерные приложения, различные онлайн-игры, поддерживает аппаратное ускорение, работает с различными платформами (в том числе с Андроид).

Программа имеет визуально устаревший интерфейс, который насчитывает всего 8 окон. Но за счет этого повышается удобство использования. В данной программе можно создать практически любую 2d игру: головоломки, карточные игры, квесты и другое. Купить полную версию вы можете всего за 100 долларов.

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

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

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

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

Приложение для создания игр на "Андроид" Game Maker

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

Создание 2D-игр на "Андроиде" - это главное предназначение программы Game Maker. Меню софта обеспечивает доступ к различным локациям, сценариям, звукам, объектам, движущейся графике. Продвинутые пользователи могут воспользоваться GML - интегрированным языком программирования, с помощью которого можно сделать игры более интересными и функциональными.

В этой программе нет встроенного русского языка, но существует возможность установить русификатор.

Игровой движок DX Studio

Dx Studio - программа для создания игр на "Андроид". Разработка приложений проходит при поддержке OpenGL ES и DirectX.

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

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

Игровой движок Dreemchest

Это еще одна программа для создания игр на "Андроид". С ее помощью можно разработать 2D-приложение для различных операционных систем. Программный код Dreemchest работает на скриптовых языках AS2 и Lua.

Игровой движок отличается приятным и понятным интерфейсом, встроенным WYSIWYG-редактором с системой Drag and drop. Теперь уровни можно создавать без использования скриптов за очень краткий промежуток времени.

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

Dreemchest использует для разработки игр технологии OpenGL ES 1.0 и DirectX 9.0. Это позволяет запускать созданные проекты как на всех современных платформах, так и на старых телефонах.

Встроенный физический движок Box2D отвечает за регулирование линий поведения различных объектов.

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

Android4Basic

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

Чтобы создать собственную игру на "Андроид", не нужно даже изучать основы Java, что значительно ускоряет процесс.

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

В итоге вы получите файл с расширением.apk.

У Android4Basic есть только один недостаток - стоимость программы составляет 59 американских долларов.

Unity 3D

Создавать игры на "Андроид" можно не только в формате 2D. К примеру, Unity 3D позволяет разрабатывать приложения с трехмерной графикой. Кроссплатформенный движок софта предполагает создание программных продуктов для различных операционных систем: Linux, Blackberry, iOS, Mac OS, Windows и Android. Также есть поддержка форматов приложений для приставок Wii и Xbox 360 PlayStation 3.

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

Подведем итоги

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

Как быстро написать игру для 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-разработки.