что нужно для разработки игр под android
📱 Как начать разрабатывать мобильные игры для Android?
Сергей Кравченко
Перспективы и направления
Популярные жанры
На рынке мобильных игр представлено множество жанров на любой вкус. Новые появляются каждый день – невозможно перечислить каждую нишевую категорию, поэтому выделим самые популярные.
Multiplayer Battle Arenas представляет собой смесь стратегии в реальном времени и экшена. Игроку предоставляется контроль над одним персонажем, известным как «чемпион» или «герой», которого можно выбрать из большого списка. Нужно собрать команду и разрушить базу противников, защищая собственную.
Battle Royale
MMORPG
Многопользовательские ролевые онлайн-игры – это онлайн-RPG, в которой игроки повышают уровень персонажей и приобретают новые способности. При этом сотни аккаунтов одновременно взаимодействуют друг с другом в одном мире и в режиме реального времени.
Головоломки
Более половины пользователей смартфонов и планшетов играют в головоломки. Candy Crush и Tetris популярны даже среди аудитории, которая не идентифицируют себя как геймеров. Логические игры сосредоточены на простых для понимания, но сложных в освоении механиках и требуют использования быстрого мышления.
Казуальные игры
Эта категория доминирует на рынке игр для мобильных устройств. Казуальные игры являются наиболее популярным жанром среди пользователей Android. Их можно легко начать и отложить в любой момент, что позволяет использовать потенциально короткие периоды игры.
Выбор движка
Unity
Unreal
В новом движке Unreal Engine 4 много изменений по сравнению с предыдущими версиями. В качестве языка сценариев используется C++, который полностью заменил популярный некогда UnrealScript, а Kismet заменен более удобной системой Blueprint. Из-за этих перемен даже опытным дизайнерам игр придется пройти обучение, чтобы освоить обновленную версию.
Unreal поставляется с инструментами для использования технологий виртуальной и дополненной реальности для разработки мобильных игр. В «Библиотеке программиста» вы найдете подробный туториал по созданию первого объекта и освоению Unreal Engine 4.
Solar2D
Это далеко не полный список игровых движков, но одна из популярных платформ может стать вашим счастливым билетом в мир геймдева.
Основные этапы разработки
Чтобы создать мобильную игру под Android, нужно пройти определенные этапы. Предлагаем вашему вниманию пошаговый план для начинающих:
Идея и план
Идея – самый сложный и ответственный шаг к созданию успешной мобильной игры. Ключ к поиску идеи – придумать что-то новаторское и увлекательное. Идея должна понравиться массовой аудитории.
Правильное планирование или его отсутствие могут обеспечить успех или провал проекта. Найдите время, чтобы записать идеи, придумать уникальных персонажей, поиграть с разными стилями и подумать о типе игрового процесса, который сделает вашу игру увлекательной. Раскрыть потенциал проекта поможет история: в игровом мире она имеет огромное значение. Чтобы пройти путь до конца, пользователю нужна цель, а для этого понадобится история, какой бы простой та ни была.
Выбор языка и инструментов
Графика
Создание игрового дизайна намного сложнее создания дизайна обычного приложения. Приходится учитывать множество факторов: историю, персонажей и финальный внешний вид. В первую очередь именно дизайн отличает вашу игру от конкурентов, однако обсчет сложных деталей требует вычислительной мощности – нужно соблюдать баланс между хорошей графикой и производительностью, учитывая возможности мобильных устройств под Android. Далеко не у всех пользователей будут крутые флагманы.
Работа в команде
Небольшие проекты можно делать в одиночку, но для реализации более амбициозных стоит обзавестись командой единомышленников. Вне зависимости от бюджета и сложности, выбор программистов, менеджеров и дизайнеров для совместной работы является важным фактором успеха.
Тестирование, запуск и монетизация
Перед запуском игры ее стоит всесторонне протестировать, но не стоит на этом зацикливаться. Многие начинающие разработчики чересчур усердно пытаются сделать программу идеальной, все время задерживая выпуск. Это серьезная ошибка – лучше быстрее выпустить релиз без критичных багов. Если игра понравится аудитории, ее можно будет улучшить.
Стоит подумать и о монетизации проекта. Существует несколько распространенных способов о ней позаботиться:
Развитие проекта
Если ваша игра собрала значительную аудиторию, не стоит останавливаться на достигнутом. Обновления и улучшения позволят сделать ее лучше и привлечь большее количество довольных геймеров.
Стремительное развитие смартфонов за 10 лет изменило игровую индустрию кардинально. От простых карманных консолей Game Boy мобильные игры эволюционировали до многопользовательских платформ со сложной механикой и интересной визуальной составляющей. Это не должно вас пугать: даже простые проекты в стиле платформеров и казуальных игр могут найти свою аудиторию благодаря доступности и простому управлению.
📱 Как стать Android-разработчиком: с нуля до публикации приложения на Google Play
Егор Арефьев Aref`ev
Android-разработчик – профессия будущего. Основные тенденции в развитии мобильных технологий в ближайшие годы будут связаны со следующими направлениями:
Но какие навыки нужны, чтобы стать успешным Android-разработчиком? С чего начать?
1. Выберите язык программирования
Два основных языка программирования для разработки приложений на Android – Java и Kotlin. По факту, если вы будете заниматься разработкой серьезно, то вам не обойтись без обоих языков. Однако на конференции Google I/O 2019 было объявлено, что Kotlin является предпочтительным и официальным языком для Android. Использование Kotlin сокращает число ошибок в коде, язык легко интегрируется в существующие приложения. Чтобы освоить этот язык, вы можете воспользоваться нашей подборкой ресурсов для изучения Kotlin.
2. Выберите интерактивную среду для Android-разработки
Выбор среды разработки – дело вкуса. Однако на первом этапе целесообразнее использовать Android Studio. Последняя версия IDE 4.0 от мая 2020 года, доступна для загрузки на официальном сайте Android. О последнем релизе мы писали в нашей публикации.
3. Изучите манифест и компоненты Android-приложения
Файл манифеста содержит уникальный идентификатор приложения и описывает компоненты приложения. Пройдитесь по этому списку компонентов, вам станет понятно, что потребуется изучить:
4. Изучите основные элементы пользовательского интерфейса Android-приложения
Основные элементы пользовательского интерфейса приложения представляют собой:
Макеты экранов приложения (UI Layouts) имеют разную структуру:
5. Изучите хранилища данных Android
Узнайте, как хранить данные приложения и пользователя на устройстве: в парах ключ-значение, базе данных или других типах данных.
Важно также научиться обмениваться данными между приложениями и устройствами. Полезно освоить работу со службами резервного копирования, чтобы пользователи могли хранить информацию в облаке, синхронизировать ее между устройствами и восстанавливать при приобретении нового устройства.
6. Изучите, как работает сборка Android-приложений и плагин Gradle
Система сборки Android собирает ресурсы приложения и исходный код, упаковывает их в APK-файлы. Их можно тестировать и распространять. Android Studio использует Gradle – продвинутый инструмент автоматизации и управления процессом сборки. Это позволяет определить разные настройки конфигурации для разных проектов.
7. Научитесь создавать многопоточные Android-приложения
Каждый Android-разработчик сталкивается с необходимостью использования потоков. Когда приложение запускается, оно создает основной поток выполнения. Чтобы приложение сохраняло отзывчивость, необходимо избегать использования основного потока для выполнения операций, которые приводят к его блокировке: сетевые операции, обращение к базе данных, загрузка компонентов. Такие процессы выполняются в отдельных потоках. Android предоставляет множество способов создания и управления потоками. При использовании языка Kotlin для этих задач можно использовать Coroutines.
8. Изучите методы отладки Android-приложения
Отладка приложения – это процесс поиска и исправление ошибок и другого некорректного поведения кода. Чтобы разобраться, что происходит и найти ошибку, мы можем с помощью отладки поставить выполнение программы на паузу в нужном нам месте и посмотреть содержимое объектов и переменных.
Окно для отладки приложения в Android Studio
Отладка приложения осуществляется стандартными средствами, предоставляемыми средой разработки Android Studio.
9. Научитесь работать со сторонними библиотеками
Далеко не любую задачу можно решить с помощью стандартных средств Android. Для многих задач уже разработаны собственные решения, которыми грех не воспользоваться. Для обработки и загрузки изображений это Glide и Picasso, для внедрения зависимостей (Dependency Injection) – Dagger, Koin, Kodein и Hilt, для сетевых взаимодействий – Retrofit, для многопоточного программирования – RxJava. Не поленитесь также изучить библиотеки Google: Firebase, Google Play Services, Google Maps. Знакомство с устройством сторонних библиотек также научит вас писать более качественный код в собственных проектах.
10. Изучите Android Jetpack – набор библиотек и инструментов, ускоряющих работу Android-разработчика
Android Jetpack – это набор библиотек и инструментов, созданный командой Google для упрощения разработки под Android. Библиотеки, входящие в Jetpack, разделены на четыре вида:
11. Изучите архитектурные шаблоны проектирования
По мере роста приложения вы неизбежно столкнетесь с вопросами проектирования, использования наработанных практик и опыта других разработчиков. Вместо того чтобы изобретать велосипед, быстро и элегантно катайтесь на проверенных моделях. Как можно раньше начните разбирать шаблоны проектирования – они описывают типичные способы решения распространенных проблем при проектировании Android-приложений.
Распространены три шаблона проектирования:
12. Изучите методы тестирования Android-приложений
Тестирование приложения является неотъемлемой частью процесса разработки. Постоянно выполняя тесты, вы можете проверить правильность, функциональность и удобство использования приложения до его публикации.
Тестирование дает следующие преимущества:
13. Изучите вопросы обеспечения безопасности Android-приложения
14. Изучите работу с сенсорами
Программирование – это круто, но ещё более классно использовать физические компоненты телефона: GPS, камеру, NFC, акселерометр. Работы с этими датчиками по увлекательности близка к высокоуровневому программированию микроконтроллеров – приятно видеть, как написанный тобой абстрактный алгоритм взаимодействует с внешним миром.
15. Опубликуйте приложение на Google Play. Поздравляем, вы Android-разработчик!
Наконец, остается лишь опубликовать приложение. У этого процесса также есть собственный механизм и свои тонкости. Но это уже куда проще, чем написание кода приложения.
С описанным багажом знаний вы смело можете двигаться вперёд! Вопросы, рассмотренные в данной статье, помогут в создании портфолио и трудоустройстве.
В программе образовательного курса GeekBrains рассмотрены практически все вопросы данной статьи: языки программирования Java и Kotlin, основные компоненты и элементы пользовательского интерфейса Android-приложения, жизненный цикл компонентов Activity и Fragment, работа с базами данных, архитектурные шаблоны проектирования, работа со сторонними библиотеками и тестирование приложений. Также рассматриваются сопутствующие вопросы: работа с системой контроля версий Git, подготовка к собеседованию Android-разработчика, поиск работы и трудоустройство.
Туториал: Создание простейшей 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 и вставляем туда это:
На вкладке Design видно как наш layout будет выглядеть.
Сверху поле в котором будет сама игра, а снизу кнопки управления Left и Right. Про layout можно написать отдельную статью, и не одну. Я не буду на этом подробно останавливаться. Про это можно почитать тут.
Шаг 5. Редактируем MainActivity класс
В первую очередь в определение класса добавляем implements View.OnTouchListener. Определение класса теперь будет таким:
Добавим в класс нужные нам статические переменные (переменные класса):
В процедуру protected void onCreate(Bundle savedInstanceState) <
добавляем строки:
Классы LinearLayout, Button и т.д. подсвечены красным потому что ещё не добавлены в Import.
Чтобы добавить в Import и убрать красную подсветку нужно для каждого нажать Alt+Enter.
GameView будет подсвечено красным потому-что этого класса ещё нет. Мы создадим его позже.
Теперь добавляем процедуру:
Если кто-то запутался ― вот так в результате должен выглядеть MainActivity класс:
Итак, класс MainActivity готов! В нём инициирован ещё не созданный класс GameView. И когда нажата левая кнопка — статическая переменная isLeftPressed = true, а когда правая — isRightPressed = true. Это в общем то и всё что он делает.
Для начала сделаем чтобы на экране отображался космический корабль, и чтобы он двигался по нажатию управляющих кнопок. Астероиды оставим на потом.
Шаг 6. Создаём класс GameView
Теперь наконец-то создадим тот самый недостающий класс GameView. Итак приступим. В определение класса добавим extends SurfaceView implements Runnable. Мобильные устройства имею разные разрешения экрана. Это может быть старенький маленький телефон с разрешением 480×800, или большой планшет 1800×2560. Для того чтобы игра выглядела на всех устройствах одинаково я поделил экран на 20 частей по горизонтали и 28 по вертикали. Полученную единицу измерения я назвал юнит. Можно выбрать и другие числа. Главное чтобы отношение между ними примерно сохранялось, иначе изображение будет вытянутым или сжатым.
unitW и unitW мы вычислим позже. Также нам понадобятся и другие переменные:
Конструктор будет таким:
Метод run() будет содержать бесконечный цикл. В начале цикла выполняется метод update()
который будет вычислять новые координаты корабля. Потом метод draw() рисует корабль на экране. И в конце метод control() сделает паузу на 17 миллисекунд. Через 17 миллисекунд run() запустится снова. И так до пока переменная gameRunning == true. Вот эти методы:
Обратите внимание на инициализацию при первом запуске. Там мы вычисляем количество пикселей в юните и добавляем корабль. Корабль мы ещё не создали. Но прежде мы создадим его родительский класс.
Шаг 7. Создаём класс SpaceBody
Он будет родительским для класса Ship (космический корабль) и Asteroid (астероид). В нём будут содержаться все переменные и методы общие для этих двух классов. Добавляем переменные:
Шаг 8. Создаём класс Ship
Теперь создадим класс Ship (космический корабль). Он наследует класс SpaceBody поэтому в определение класа добавим extends SpaceBody.
и переопределим метод update()
На этом космический корабль готов! Всё компилируем и запускаем. На экране должен появиться космический корабль. При нажатии на кнопки он должен двигаться вправо и влево. Теперь добавляем сыплющиеся сверху астероиды. При столкновении с кораблём игра заканчивается.
Шаг 9. Создаём класс Asteroid
Добавим класс Asteroid (астероид). Он тоже наследует класс SpaceBody поэтому в определение класса добавим extends SpaceBody.
Добавим нужные нам переменные:
Астероид должен появляться в случайной точке вверху экрана и лететь вниз с случайной скоростью. Для этого x и speed задаются при помощи генератора случайных чисел в его конструкторе.
Астероид должен двигаться с определённой скорость вертикально вниз. Поэтому в методе update() прибавляем к координате x скорость.
Так же нам нужен будет метод определяющий столкнулся ли астероид с кораблём.
Рассмотрим его поподробнее. Для простоты считаем корабль и астероид квадратами. Тут я пошёл от противного. То есть определяю когда квадраты НЕ пересекаются.
((x+size) (shipX+shipSize)) — корабль справа от астероида.
((y+size) (shipY+shipSize)) — корабль снизу астероида.
Между этими четырьмя выражениями стоит || (или). То есть если хоть одно выражение правдиво (а это значит что квадраты НЕ пересекаются) — результирующие тоже правдиво.
Всё это выражение я инвертирую знаком!. В результате метод возвращает true когда квадраты пересекаются. Что нам и надо.
Про определение пересечения более сложных фигур можно почитать тут.
Шаг 10. Добавляем астероиды в GameView
В GameView добавляем переменные:
также добавляем 2 метода:
И в методе run() добавляем вызовы этих методов перед вызовоом control().
Далее в методе update() добавляем цикл который перебирает все астероиды и вызывает у них метод update().
Такой же цикл добавляем и в метод draw().
Вот и всё! Простейшая 2D игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Разработка игр для Android с нуля
Современный мир просто переполнен пользователями смартфонов и других телефонов, которые работают на операционной системе Android. И только ленивый сейчас не зарабатывает деньги на создании приложений для этой ОС,а именно на разработке игр для Android. Именно поэтому, если у вас зародилась идея сделать свой бизнес в этой сфере стоит действительно взвесить все за и против, и начать действовать.
Заработок на разработке игр под Android
Своя фирма по разработке игр для Android это выгодно, потому что зарабатывать на приложениях достаточно легко. Продавать их можно через GooglePlay, как делают большинство предпринимателей в этой сфере. Сделать все просто, достаточно предложить свой продукт, защитить авторские права. Также иметь долларовые счет, на который и будут начисляться честно заработанные своим умом деньги. Конечно, продавать свой товар через GooglePlay сможет только зарегистрированный предприниматель. Поэтому без ненавистного всем ИП не обойтись.
Налогообложения тоже не избежать, и его процент составит около шести, от общей суммы начисления. Стандартный вариант для каждого предпринимателя. Безусловно, можно воспользоваться и посредниками, для того, чтобы не регистрироваться, и избежать платы за налоги. Но тогда у вас не будет никаких гарантий того, что ваши авторские права будут защищены. И что более предприимчивый посредник не станет реализовывать ваш продукт под своим именем. Поэтому гарантии безопасности играют большую роль.
Сколько стоит создание игры для Android
А фирма по разработке игр для Android начинается с подбора персонала на главную роль. Потребуются вам для начала: программист, дизайнер, обязательно маркетолог и тестировщик. Если у вас нет начального капитала для создания наиболее удобных условий работы своего персонала, на этом можно сэкономить, и найти работников удалено. Вам не придется платить за аренду офиса и специального оборудования. Удаленная работа специалистов привлекательна для предпринимателя тем, что при минимальных затратах денежных средств, вы будете получать превосходный результат не выходя из дома. Для большей экономии, в роли тестировщика и маркетолога вы можете выступить самостоятельно.
Вырабатывая свой продукт, вы должны предложить что-то действительно выгодное и удобное. Разработка игр для Android это сложный процесс. Поэтому главные критерия создания приложения это:
Если пройтись по этим пунктам, можно получить качественный продукт, который будет пользоваться популярностью. Не стоит придумывать что-то свое на ранних этапах. Просмотрите рынок предложений, рассмотрите варианты с зарубежных сайтов. Какие программы пользуются большей популярность. Берите идеи с уже реализованных программ, добавляйте в нее пару своих мыслей, и вот готов уникальный и оригинальный продукт. Разработка игр для Android проходит именно так.
Если вы думаете, что создав первое свое приложения, и выставив его на продажу, вы сможете покрыть все свои расходы на ближайшие двести лет то это не так. Пока вы не создадите что-то действительно стоящее и оригинальное, пройдет не мало времени. И будет выпущено достаточное количество продуктов, которые будут пользоваться спросом, но минимальным, только окупая затраченные средств.
Устанавливаем цену на создание игры под Android
И вот случился долгожданный момент, приложение создано, проверено на готовность, и может пойти в широкие массы, чтобы улучшить жизнь современных людей. Но сразу же встает вопрос, как именно можно на нем заработать? Есть два варианта это заработать на рекламе, или продавать приложение по фиксированной вами цене.
Однако, первый вариант достаточно выгоден. Просто перед началом запуска приложения, перед пользователем будет появляться рамка с необходимым кодом, который будут вводить, чтобы пользоваться полной версией программы, и в это время, в одном из уголков экранов будет выплывать небольшой баннер рекламы. Заработать на одном баннере можно от одного до двух центов. При условии широкой аудитории пользователей, эта сумма может значительно возрасти с каждым пользователем.
И самый оптимальный вариант поставить свою фиксированную цену на свои услуги. Но поймите, что завышать цену на приложения будет слишком глупо. Ведь программа, которая продается, например, по цене 1-2 доллара, будет продавать больше, чем та же программа за 20 долларов. Поэтому ставьте цены ниже, и вы увидите, что люди будут скачивать именно ваше приложение, потому что оно доступно.
Но не стоит забывать, что перед подачей приложения к продаже вы должны его основательно проверить. Чтоб оно работала на всех устройствах, независимо от расширения экранов, и других технических показателей. Пользователь не должен быть разочарован тем, что скачав приложение оно не станет грузиться именно на его устройство. Помните, что качественный и довольно крупный заработок можно получить, только при условии продажи действительно качественного продукта.
Разработка игр под Android – самоучитель
А теперь разберем реальный пример, как будучи новичком самостоятельно разработать игру под эту операционную систему.
Как-то раз мне довелось присутствовать на одном мастер-классе по прототипированию в одной крупнейшей IT-компаний в России. Там, каждому участнику предлагали создать свою собственную игру с нуля за час, не имея никаких навыком программирования. То есть ты запускаешь программу и через час имеешь простенькую игру на Android, отлично не правда ли? К моему собственному удивлению, у меня получилось создать такую игру, было это совсем не сложно, нашлись даже люди, которые смогли поиграть в эту игру. Кстати, игра создавалась на платформе Clickteam Fusion. Именно об этом мы и поговорим в дальнейшем.
Программы для разработки 2D игр на Android
Как я уже писал выше, пользовался для создания игр я платформером Clickteam Fusion, кроме него на рынке представлены следующие программы: Game Maker Studio и Construct 2. Но так как я работал с Clickteam Fusion будем рассматривать разработку игры именно при помощи этой программы.
Как работает программа
Сразу хочу сказать, что все представленные выше конструкторы предназначены для создания игр в 2D. Уверен, что в скором будущем появятся и решения для 3D игр. И так если Вы хотите создать 2D игру, можете продолжать читать дальше, а если же Вас интересуют 3D, Вам придется изучать программирование, без этого пока никуда.
Игра состоит из кадров. В каждой сцене или кадре будущий пользователь должен решать ту или иную задачу. Если это меню, и Вы хотите создать кнопки Старт, Выход, Настройки, каждому из этих параметров, Вы должны присвоить свойство «active».
Как это сделать рассмотрим ниже:
Переходим в окно «Редактор кадра», то что справа. Нажимаем ПКМ и выбираем «Insert object».
Выбираем “Active”. Затем, нам остается создать изображение кнопки или здесь же его нарисовать. Кроме того, можно создать анимацию. Кстати один объект может иметь несколько анимация (выбранный персонаж, невыбранный, купленный, некупленный).
Теперь нам всего лишь осталось придумать действие, которые будет происходить при нажатии кнопки. Для этого открываем “Редактор событий”
Тут мы выбираем из списка условия для активации действия. В нашем случаи это будет tap по экрану или клик по мышке.
Осталось выбрать какое действие осуществить.
Вот и все. Таким простым способом мы запрограммировали кнопку без каких-либо знаний программирования. Именно из ряда таких событий и будет состоять ваша игра. На этом я заканчиваю рассказать о том, как разработать игру под Android с нуля для чайников без знания программирования при помощи платформера. Если этот пост будет популярным, я расширю и дополню инструкцию. Спасибо за внимание.