Создание игр на андроид с нуля
Содержание:
- Добавляем взаимодействие с экраном
- Разработка идеи
- Разберитесь в азах
- Построение и прорисовка мира
- Как зарабатывают на своих играх
- Какие Языки Программирования Вы Можете Использовать, Чтобы Создать Игру?
- Этапы создания игр
- Разработка и тестирование
- Что такое конструктор игр?
- Онлайн-сервисы для создания игр на андроид
- Сделайте геймплей простым и удобным
- Графическое оформление
- Начало
- Фреймворк Cocos 2D-X
- Делаем графику
- Phaser
Добавляем взаимодействие с экраном
Чтобы показать, как в Android обработать касания, напишем небольшой пример. Будем выходить из программы, когда пользователь коснется нижней части экрана. Если касание произошло где-то выше — будем просто выводить в лог соответствующие координаты. Добавим в класс MainThread следующие строки:
private SurfaceHolder surfaceHolder;private MainGamePanel gamePanel;public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) { super(); this.surfaceHolder = surfaceHolder; this.gamePanel = gamePanel;}
тем самым мы определили переменные gamePanel и surfaceHolder, взяв соответствующие значения из параметров конструктора. Нам нужно запомнить эти значения, чтобы потом иметь возможность блокировать поверхность на время рисования, а это можно сделать только через surfaceHolder. Измените строку в классе MainGamePanel, добабвив в конструктор вновь объявленные параметры
thread = new MainThread(getHolder(), this);
Мы передаем текущий обработчик и панель в новый конструктор. Это позволит нам иметь к ней доступ из потока. В gamePanel мы создадим метод update и будем переключать его из потока, но пока оставим все как есть.
Разработка идеи
В первую очередь, необходимо выяснить, что вы собираетесь создавать. Если это какое-то приложение, то следует определиться с аудиторией, какие возможности оно будет предоставлять пользователю. Это может быть информационное приложение или программа, предоставляющая такие дополнительные функции, как видео или аудио проигрыватель.
Создать игру немного сложнее, так как магазин приложений переполнен разнообразными играми всех жанров. Создать что-то действительно уникальное и цепляющее трудно, но, не попробовав этого, вы никогда не узнаете. Оформить идею для начала можно на бумаге. Проработайте все детали, выделите ключевые особенности, постарайтесь сделать простую и понятную игру, которая заинтересует пользователя.
Полезным шагом будет изучение потенциальных конкурентов. Просмотрите магазин приложений Google Play, при этом найдите похожие игры. Постарайтесь понять, почему эта игра пользуется такой популярностью, а что в ней можно улучшить. На основе этих наблюдений, вы можете создать собственный проект. Но ни в коем случае не копируйте элементы интерфейса или что-либо другое. Оригинальность и уникальность играют важную роль, при этом влияют на первое впечатление пользователя.
Разберитесь в азах
Чтобы понимать, как разработать концепцию игры, как выстроить игровой процесс и сделать так, чтобы пользователю было приятно играть, нужно познакомиться с геймдизайном. Понять принципы создания видеоигр помогут книги из подборки The 20 Best Video Game Design Books. Читать все, конечно, не обязательно.
В части программирования нужно уметь писать native code для платформы, под которую разрабатывается игра. По мнению руководителя мобильной разработки DataArt Алексея Рыбакова, потребуются такие знания:
- Понимать жизненный цикл приложения для iOS/Android внутри операционной системы — что происходит при старте и телефонном звонке, какие ресурсы и когда загружаются в память.
- Программировать на Swift/Objective-C для iOS и на Java для Android.
- Понимать форматы звука и графики (текстур) для iOS/Android.
- Иметь опыт программирования на C/C++ для iOS/Android на OpenGL.
- Понимать цикл игры от создания до появления в Store.
Есть смысл посмотреть на игровые кроссплатформенные решения:
- Unity 3D.
- Unreal Engine.
Разработчик игр, сооснователь студии FIFTYTWO, выпустившей игры JELLIES! (5 миллионов установок на iOS) и Kenshō («Выбор редакции» в App Store и Google Play) Михаил Шагин выделяет Unity и C#: «Изучите Unity и язык программирования C# — это стандарт в индустрии. Работая на этом движке, вы будете быстро развиваться. Для Unity существует Asset Store — магазин готовых решений от разработчиков. Он сэкономит вам много времени и предоставит технологии, которые ранее были недоступны небольшим студиям и начинающим программистам. Обучаться помогут туториалы, видео-уроки и онлайн-школы».
Сделать популярную игру, особенно одному — очень сложно. Потребуются навыки программирования, знания в области геймдизайна, 3d-моделирования, анимации, графического дизайна. Разработка игр — это пересечение технологий, искусства и бизнеса. Пригодится и компетентность в психологии. Поэтому лучше все-таки собрать команду.
«Современные игры для смартфонов, присутствующие на рынке — это результат работы слаженных коллективов, а не одного человека. Обычно это программисты, геймдизайнеры, художники, музыканты, тестировщики, аналитики рынка, специалисты по рекламе и продвижению, финансисты. Сейчас практически невозможно реализовать популярную игру в одиночку», — делится опытом Алексей Рыбаков.
Построение и прорисовка мира
Сперва было принято решение создать изометрический мир, который мог бы поддерживать бесконечную прокрутку по горизонтали. После тщательного изучения статей на тему «Как создавать изометрические миры» и им подобных, а также просмотра библиотек для JavaScript и React, которые якобы должны помогать выполнять данную задачу, дело перешло к практике.
Времени на это было потрачено немало и готовых подходящих решений так и не было найдено. Ну что ж, напишем своё. По сути весь наш мир это набор квадратиков-тайлов, которые находятся рядом друг с другом и на соседний квадратик можно перейти в восьми направлениях.
Стартовая позиция игрока, где можно наблюдать изометрический мир, а также возможные направления движения
Сперва отрисуем ячейки мира построчно. Пускай они будут размером 64×64 пикселя. Далее развернём наш контейнер таким образом, чтобы он выглядел изометрично:
При имплементации данного подхода к отрисовке можно наблюдать, что необходимые нам «строки» мира на самом деле идут не прямо, а зигзагом, так как мы развернули нашу карту. Таким образом, каждую из ячеек необходимо позиционировать абсолютно с учетом текущего индекса строки, а также индекса колонки:
Использование:
Для увеличения производительности нам необходимо перерисовывать только те ячейки карты, которые сейчас являются видимыми на экране. Для этого был использован компонент из модифицированной версии библиотеки с учетом нашего поворота и расположений ячеек, код которого здесь приводить не буду. Из того, что не получилось — это сделать бесконечную прокрутку мира. После изучений исходного различных библиотек для бесконечного скролла / слайдеров и тп. подходящего решения найдено не было. Что ж, значит наш мир будет с границами по всем бокам.
Как зарабатывают на своих играх
Продажа на площадках
Steam — платформа цифровой дистрибуции, которая подходит для известных брендов. Здесь продается больше 10 тысяч игр, количество активных пользователей — 125 миллионов. Сервис обеспечивает соблюдение авторских прав, берет на себя маркетинг, предлагает разные варианты финансового сотрудничества.
App Store и Google Play — самый популярный вариант предложить свою игру сотням миллионов пользователей. Игра может распространяться бесплатно, но подразумевать покупки в процессе использования. Также популярный способ заработка — встроенная реклама, но главное, в чем способствуют данные сети, — именно распространение
Традиционно пользователи техники Apple являются более платежеспособными, поэтому те, кто знает, как зарабатывать на создании игр, в первую очередь предлагают версии для устройств на iOS.
Важно помнить, что обе площадки и App Store и Google play берут платежи за регистрацию аккаунта разработчика:
Apple — $99 в год, также 30% за покупки пользователей внутри приложения;
— $25 единоразово, также 30% за покупки пользователей внутри приложения.
Реклама внутри игры
In-App — размещение рекламных объявлений по ходу игры:
- Промежуточная реклама — на весь экран в процессе перехода между действиями, сценами, уровнями;
- Баннерная — статический или анимированный баннер стандартного размера;
- Нативная реклама — результат заранее согласованного сотрудничества бренда с разработчиком (герой может ездить на авто определенной марки или носить кепку с логотипом производителя);
- Видеореклама — трансляция видеоролика в промежуточном полноэкранном формате;
- Вознаграждающая реклама — один из видов мотивированного трафика; Пользователи получают очки, баллы, другое вознаграждение за просмотр рекламных сообщений.
Хорошим вариантом является предоставление возможности приобретения платной функции, которая отключает In-App рекламу.
Платные дополнения и покупки в игре
Изначально платные дополнения планировались как возможность расширить функционал игры, но в последнее время их называют «бедой игровой индустрии».
Многие игры имеют достаточно урезанный вид, из-за чего без платных дополнений в них просто невозможно играть.
Некоторые разработчики являются сторонниками подхода «фримиум»: базовые функции игры предоставляются бесплатно, игрок может полноценно ими пользоваться, а расширенные возможности покупаются теми, кто решит детальнее погрузиться в игровой мир.
Пожертвования
Интересный вариант заработка на играх, которые имеют образовательную миссию (обучение английскому, пению, игре в шахматы).
В рунете пожертвования не особо распространены, в англоязычном интернете эта схема хорошо работает, когда игроки знают разработчика и регулярно пользуются его продуктами. В отдельных случаях разработчик может распространять за пожертвования открытый программный код, но в силу огромной конкуренции в игровой индустрии это особого интереса для целевой аудитории, самих игроков, не представляет.
Краудфандинг
Онлайн-пожертвования — популярный способ сбора начального капитала для стартапов, игр и других интересных идей.
В 2018 году на краудфандинговой площадке Kickstarter разработчики видеоигр собрали 15,8 миллиона долларов. Но в последнее время этот вариант становится менее популярным. Подобные сообщества более ориентированы на создание ресурсов, которые приносят реальную пользу определенным категориям населения, чем на спонсирование развлекательных проектов, которые заведомо являются коммерческими.
Какие Языки Программирования Вы Можете Использовать, Чтобы Создать Игру?
Простые мобильные игры могут быть созданы с помощью широкого спектра языков программирования. Если вы хорошо владеете хотя бы одним языком программирования, то этого может быть достаточно, чтобы понять, как создать игру для мобильных устройств. Тем не менее, более сложные игры для компьютеров или консолей требуют более глубокого понимания языков программирования и их использования для игр. Давайте рассмотрим несколько языков, которые вы можете использовать:
JavaScript
Обучение тому, как создать игру с помощью JavaScript проходит довольно просто. Как ранее упоминалось, вы можете создавать простые мобильные приложения и игры используя лишь JavaScript, HTML и CSS на платформе PhoneGap. Миллионы людей по всему миру имеют хотя бы базовые знания JavaScript, что уже позволяет им создать свою собственную игру.
Однако вам не стоит беспокоиться, если вы не являетесь одним из этих людей – узнать, как создать игру на JavaScript возможно, предварительно изучив этот язык с помощью курса. Пройдите нечто вроде интерактивного курса JavaScript для начинающих, перед тем как перейти к более специфической теме PhoneGap.
Java
Java — это самый популярный язык программирования для создания игр на Android. При использовании вместе с Android Studio, Java может быть использован для создания игр с уникальным внешним видом и концептом. Игры, созданные на Java, чаще всего отличаются производительностью и удобством персонализации.
Если вас заинтересовало, как делают игры для Android, то для начала вам нужно освоить язык Java. К счастью, Java относительно простой язык программирования. Я бы порекомендовал вам начать с курса “Обучение Java с нуля”, перед тем как переходить непосредственно к теме создания игр.
Swift
Swift — это относительно новый язык программирования, который был создан для разработки приложений и игр для операционной системы iOS. Он разрабатывался для облегчения процесса создания игр и приложений для iOS-устройств, и на сегодняшний день стал очень популярен для тех, кто хочет узнать, как создать игру в первый раз.
Если вы хотите научиться созданию игр для iOS, то вам обязательно нужно будет выучить язык программирования Swift. Конечно, у вас есть возможность сделать это и без подобных знаний – взгляните на курс по созданию аркадной игры, чтобы узнать об этом больше – но программирование ваших собственных игр даст вам гораздо больше свободы действий и гибкости, когда дело будет касаться кастомизации вашей игры. Чтобы узнать о Swift и его использовании подробнее, посетите страницу курса Swift обучения для новичков.
Языки C
Языки C – C, C# и C++ – являются самыми распространёнными языками программирования, когда дело касается продвинутой разработки игр и программ. Фактически, большая часть крупнобюджетных игр создаётся с использование одного или комбинации языков C. Тем не менее, они очень сложны в изучении. Я бы не стал рекомендовать вам начинать их изучение, если вы ещё не совсем уверены в своём стремлении создавать игры. Однако для пробы вы можете взглянуть на отдельный курс по этой теме “Как сделать игру”. Он научит вас основам C# с упором на разработку игр.
Этапы создания игр
Делаем простую игру
Под простой игрой подразумевается самый незамысловатый сюжет. На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:
- Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
- Делаем главного персонажа, им может выступать и животное, и человечек;
- Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
- Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.
Для пошаговых действий и подробной инструкции смотрите видео, которое прилагается к этому разделу.
Делаем карточную игру
Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:
- Делаем основной фон для карт;
- Проектируем сами карты, то есть, инвентарь;
- Задаем взаимодействия;
- Определяем количество игроков;
- Переводим меню игры из 3D в 2D;
- Определяем конец игры.
Создаем РПГ-игру
Отличной программой для такого жанра является программа RMXP или тот же Unity3D, выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.
- Придумываем основную идею будущей Андроид игры;
- Пишем основной сценарий;
- Рисуем базовую карту и добавляем объекты;
- Создаем события.
Как создать онлайн-игру для Андроид
Отдельной схемы для создания именно онлайн игры не существует. Приложение данного типа делается с помощью вышеперечисленных программ, а куда публиковать свое творение – напрямую в Android и iOS, либо в браузеры – решать вам.
Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры
Разработка и тестирование
- Приступая к разработке, следует установить её среду, тестовую платформу, а затем начать прописывать код. Параллельно этому процессу можно начать рисовать графику – главное, чтобы это не отвлекало от кропотливого труда программирования.
- Поэтому дизайном всё же рекомендуется заняться на последнем этапе, а ещё лучше – поручить это совершенно другому человеку.
- И наконец, тестирование – самый длительный и напряжённый этап в разработке любой существующей игры. Во время тестирования пользователь ищет собственные ошибки и недочёты, исправляет баги и прочие неточности.
- Вначале их наверняка будет очень много, однако не стоит отчаиваться. Вместо этого количество ошибок стоит свести к минимуму.
- Что касается непосредственно выпуска игры, тут уже личное дело каждого. Её можно сделать платной или бесплатной, а ещё лучше – найти спонсора, согласного отдать за игру неплохие деньги.
Что такое конструктор игр?
Конструктор – это программа, объединяющая в себе игровой движок и интегрированную среду разработки. Конструктор делает процесс разработки доступным для людей, которые не обладают навыками программирования. Некоторые из конструкторов позволяют создавать игры определенных жанров, другие обладают максимальным функционалом, но стоят значительно больших денег. Для начинающего создателя мобильных приложений, выбор конструктора – один из самых ответственных моментов, ведь именно от его возможностей будет зависеть судьба будущего приложения.
Construct 2
Это один из самых известных конструкторов, который позволяет создавать игры на различных платформах. В программе есть множество различных инструментов и утилит, но она окажется очень легкой в освоении за счет простого интерфейса. Здесь можно создать любую 2D-игру: головоломку, бродилку карточную, квесты и другие. Для создания приложений не нужно приобретать лицензионный ключ, поскольку есть Free-версия, которая является урезанной редакцией с возможностью создания приложений для нескольких платформ. Чтобы открыть полный доступ ко всем возможностям, придется заплатить 129 $.
Clickteam fusion
Этот конструктор используется для создания приложений в формате 2D. Программа очень проста в освоении, работать с ней можно без знания программирования. Полная версия Clickteam fusion позволяет создавать не только экспериментальные, но и полноценные сюжетные игры на компьютер или телефон. Если вы новичок, рекомендуем начинать именно с этого конструктора: здесь можно научиться основам и понять логику создания игрушек.
Stencyl
Этот конструктор преимущественно используется для разработки бродилок и стрелялок. Одно из главных достоинств – простой редактор уровней, позволяющий поворачивать, заливать и осуществлять другие манипуляции с объектами и картой в режиме реального времени. Чтобы разработать игру на Андроид самому, пользователю придется заплатить 99 евро, так как бесплатная версия программы позволяет создавать только пиксельные и браузерные игры.
Game Maker Studio
Конструктор позволяет создавать игры различных жанров для Windows, Android и iOS. Предлагает большой выбор готовых локаций, объектов, персонажей и звуковых оформлений, поэтому создание первой Андроид-игры не займет много времени. Пользователи, знакомые с языками программирования JS и C++, могут использовать встроенный GML. Единственный недостаток заключается в том, что программа не переведена на русский язык.
Unity 3d
Через Unity 3d можно создавать игры любого жанра на платформы Windows, Android, iOS, Blackberry, Wii, Playstation и Xbox. Широкое распространение Unity3d обрел среди создателей онлайн игр. Данный конструктор имеет игровой движок, полностью использующий возможности DirectX и OpenGL, редакторы 3D моделей, различные программы для настройки шейдеров, ландшафтов, звуков. Единственный недостаток заключается в том, что здесь нужно писать программный код, поэтому Unity3d не подойдет для пользователей без навыков программирования.
Онлайн-сервисы для создания игр на андроид
Как создать игру на андроид? Существует большое количество онлайн-сервисов, которые могут в этом помочь. Преимущество заключается в том, что существуют отдельные платформы, заточенные под создание приложений определенного типа.
Однако стоит учитывать, что большая часть данных сервисов является платными. Средняя стоимость варьируется от 5 до 50 долл.* Далее будут рассмотрены наиболее популярные из них.
LearningApps
LearningApps — один из наиболее популярных сервисов в первую очередь потому, что является бесплатным. Основной функционал направлен на создание обучающих игр и различных приложений. Среди основных преимуществ выделяют:
- работу на наиболее известных языках, в том числе и русском;
- проходить регистрацию на сайте нужно только для создания собственных программ;
- имеется широкий выбор шаблонов для создания игр;
- можно использовать шаблоны других разработчиков, чтобы практиковаться в создании;
- простой и понятный интерфейс;
- имеется 5 полезных инструментов.
Что касается недостатков, то пользователи выделяют:
- достаточно устаревший на сегодняшний день дизайн;
- в русском переводе часто встречаются опечатки и неточности;
- отсутствие полноценной статистики по упражнениям.
ProProfs
Онлайн-сервис ProProfs известен среди пользователей своим большим функционалом. При желании можно создавать как квесты, так и пазлы, кроссворды и т. д. Обладает достаточным количеством достоинств, однако также не лишен недостатков. Среди плюсов выделяют:
- частично платный, частично бесплатный тариф на использование;
- часть создаваемых упражнений не воспринимает кириллицу.
Kahoot
Еще один достаточно известный сервис. Часто используется именно преподавателями. Основные плюсы сервиса заключаются в следующем:
Разумеется, данный сервис не обошелся и без своих минусов, однако их не так много:
- отсутствует возможность вставки текста на другие сайты. Подобное можно сделать только через ссылку;
- имеется платная подписка на некоторую часть функций. Средняя цена составляет 9-10 долл. в месяц.
Работа с Kahoot
Factile
Весьма ограниченный сервис, подходящий для создания приложений по типу «Своя игра» или «Кто хочет стать миллионером». Среди преимуществ выделяют:
- имеется бесплатный тариф, но только по определенному функционалу;
- достаточно недорогой тарифный план, всего 4-5 долл. в месяц;
- простой и понятный интерфейс;
- внешне приятный современный дизайн;
- можно без проблем делиться созданными играми;
- можно создавать до 25 команд участников.
Что касается минусов, то пользователи выделяют следующие:
- отсутствие русского языка в интерфейсе;
- обязательно необходимо пройти регистрацию, чтобы получить доступ к ресурсам;
- бесплатная подписка имеет существенные ограничения по функционалу.
Umaigra
Российский конструктор, предназначенный для создания дидактических игр с применением прототипов. Чем Umaigra выделяется среди остальных сервисов:
- предлагается 8 шаблонов, по которым можно создать и выложить простые, но при этом достаточно увлекательные приложения;
- имеется несколько вариантов упражнений, помогающих создавать игры;
- пользователь может самостоятельно устанавливать уровни сложности и лимитированное время для прохождения задания;
- разумеется, присутствует русский интерфейс;
- предоставляется возможность с легкостью поделиться ссылкой на созданное приложение;
- можно создавать классы и отслеживать статистику прохождения квеста.
Таким образом, положительных моментов хватает. Тем не менее, у Umaigra есть и недостатки. Среди них особенно выделяют:
- сложность и перегруженность интерфейса. Судя по всему, разработчики постарались вложить в свою работу как можно больше, что вызывает проблемы у некоторых пользователей;
- отсутствуют понятные видео инструкции, хотя данную проблему обещали исправить в новой версии;
- обязательна регистрация нового пользователя. Данный процесс занимает достаточно большое количество времени и признается утомительным;
- отсутствует возможностью размещения созданного приложения на сайт, только через ссылку;
- имеется ограничение по количеству игроков, максимальное число колеблется от 6 до 15.
Онлайн-сервис Umaigra
UI Class
UI Class — сервис по созданию приложений по стандартным шаблонам. Имеется достаточно простой и понятный интерфейс, однако разрабатывать с его помощью что-то свое (интересное и новое) будет весьма проблематично. Хорошо подходит для пробы пера и получения основных навыков.
Обратите внимание! При использовании указанных сервисов пользователь скорее сможет освоить начальные элементы и понять, что именно он хочет создать. Зарабатывать на играх, созданных в таком формате, будет весьма проблематично
Сделайте геймплей простым и удобным
Думайте об особенностях платформы, под которую пишется игра, и о ситуациях, в которых люди будут в нее играть. Советует Михаил Шагин: «Игровая сессия, вероятно, составит всего 10–15 минут. Большой плюс, если игрок сможет безболезненно отвлечься от игры. В этом помогут пошаговые геймплейные механики. Телефон обычно держат вертикально в одной руке — а это значит, что в вашем распоряжении будет только один палец игрока, большой. Постройте геймплей на простых свайпах и тапах — этот принцип используется в большинстве казуальных хитов. Посмотрите на Voodoo и Ketchapp — французских издателей игр, чьи установки составляют 50 % среди аркад в App Store. Такие проекты делаются за одну–две недели, что не мешает им занимать первые строчки в топе».
Графическое оформление
Ни одна успешная игра не обходится без красивой графики, поэтому создание дизайна – один из важнейших этапов разработки. Дизайн на ОС Android реализовывается с помощью «дизайн-документа» или диздока. Начать создание игрушки нужно именно с его детальной проработки. В файле содержится:
- Объектные модели;
- Функциональные спецификации;
- Игровой контент;
- Интерфейс.
Рассмотрим каждый из пунктов более подробно.
Объектные модели
Это информация о функционале каждого предмета. Объектные модели отвечают за возможность покупки и продажи предметов, а также за улучшение игровых характеристик персонажей.
Функциональные спецификации
Здесь описывается геймплей, основные возможности каждого персонажа. Также здесь дается описание особенностей игровых предметов – оружия, аптечек, брони и других. По сути, функциональные спецификации – это правила, по которым происходит игровой процесс. Чем лучше будет проработан данный раздел, тем легче будет создать качественную Андроид-игру.
Игровой контент
Это текстовая начинка игры. Здесь описываются диалоги персонажей и то, из какого оружия можно наносить урон, сколько здоровья будет отнимать попадание, какие характеристики будут увеличиваться при использовании различного снаряжения. Также здесь содержится подробное описание каждого предмета.
Интерфейс
Интерфейс – это то, как пользователь будет взаимодействовать с игрой. Он включает в себя кнопки, с помощью которых можно управлять персонажем, и разделы меню: например, играть, счет, настройки, топ игроков, справка. Если вы не имеете опыта в создании приложений на Андроид, перед созданием собственного скачайте с Плей Маркета и проанализируйте популярные игры и перенесите лучшие решения в свой проект.
Начало
Пользователи среды могут программировать на языках Java, C++ и Kotlin. Планируется, что последний со временем полностью заменит привычный Java, который пока остается основным. Для работы потребуется от 3 (минимум) до 8 Гб (желательно) оперативной памяти плюс дополнительный гигабайт для Android Emulator. Свободного места на жестком диске должно быть не меньше, чем 2 Гб.
Процесс установки Андроид Студио мало чем отличается от других программ
Если используется Microsoft Windows, подойдут версии 2003, Vista, 7–10. Для OS X нужен Mac от 10.8.5 до 10.13 / 10.14 (High Sierra/Mojave). Для Linux – KDE или GNOME. Изготовление приложения проходит в несколько этапов:
- создаем новый проект;
- разрабатываем пользовательский интерфейс;
- добавляем навигацию, действия, дополнительные опции;
- тестируем программу в эмуляторе.
Если собираетесь работать с Java, обязательно установите последнюю версию JDK. Скачать ее можно на официальном сайте. Помимо главной программы, для работы также потребуются элементы Андроид SDK – скрипты, библиотеки, документы, файлы. Эти компоненты будут скачаны автоматически. В установочный комплект также входит Андроид Emulator.
Проверяйте количество свободного места на диске
Следующим шагом станет определение адресов Студио и СДК. Их предлагается установить в отдельные папки. Перед началом инсталляции стоит убедиться, что на выбранном диске достаточно места. Сама Studio требует не так много свободного пространства, а вот элементы SDK занимают больше 3 Гб. Это минимум, так как затем потребуется дополнительная площадь для обновлений.
Каждое приложение, сделанное под Андроид, должно состоять из четырех точек входа:
- Service. Компонент, обеспечивающий работу в фоновом режиме. Он отвечает за выполнение удаленных и длительных операций при выключенном визуальном интерфейсе.
- Activity. Элементы интерактивного управления. Через класс Intent передается информация о намерениях пользователя. Активности устроены по подобию веб-страниц. Intent выполняет функцию ссылок между ними. Запускается приложение посредством activity Main.
- Broadcast receiver. «Широковещательный приемник» передает намерения одновременно разным участникам.
- Content provider. «Поставщик содержимого» передает нужную информацию из БД SQLite, файловой системы и других хранилищ.
Разработка приложения начинается с нового проекта. В меню последовательно выбираем Tools, Android, SDK Manager. В нашем примере последней версией является Андроид API 26. Выбирайте новейшую версию, поставив напротив нее галочку, и приступайте к скачиванию.
Выбирайте новейшую версию Андроид SDK
После нажатия New project появится форма нового проекта. В поле Application name выбираем FirstGame, Company domain – оставим без изменения. Путь к проекту Project location должен быть целиком на английском языке. В следующем окне оставьте галочку только напротив Phone and Tablet.
В этом окне определяется версия ОС для мобильных и планшетов
Теперь выберем версию ОС, с которой сможет запускаться игра. Чем ниже она будет, тем больше пользователей получат доступ к приложению. С другой стороны, разработчику тогда доступно меньше опций. Поочередно выбираем Empty Activity, Next, Next, Finish. Проект готов к работе.
С каждым запуском Студио открывается вкладка «Совет дня» (Tip of the day). Для начинающих программистов от этой опции мало толку, но по мере знакомства со средой рекомендации начнут казаться интересными и полезными. Вообще, для новичков многое будет выглядеть таинственно и даже страшновато. Не стоит бояться трудностей. Накапливайте опыт и непонятное быстро станет простым и ясным. В конце концов, это не изучение языка программирования.
Фреймворк Cocos 2D-X
Эта утилита также не потребует оплаты для того, чтобы приступить к сборке игр. Ею любят пользоваться для специального конструирования игр для разных мобильных устройств. Программу удобно использовать как отдельному человеку, так и группе людей, занятых разработкой.
Еще есть приложения:
- Draw Your Game -простое приложение, всего за несколько простых шагов можно сделать свою первую игру.
- Apper — с помощью этой программы можно набросать приложение за 5 шагов без знаний программирования.
- AIDE- IDE for Android Java C++ — прямо на телефоне можно разработать приложение.
- STRUCKD – 3D Конструктор Игр — для создания 3D мира, потом можно обмениваться результатом с другими людьми в сообществе. Разные жанры: от гонок до Tower Defense.
- Sketch Nation Create — платформа для разработки многопользовательских игр в режиме реального времени.
Делаем графику
Итак, теперь у нас есть пустой экран, на котором можно рисовать, все, что нам нужно сделать, это нарисовать на нем. К счастью, это простая часть. Все, что вам нужно сделать, это переопределить метод рисования в нашем классе GameView, а затем добавить несколько красивых картинок:
Запустите это, и у вас должен появиться красивый красный квадрат в верхнем левом углу белого экрана. Это, безусловно, улучшение.
Теоретически вы можете создать практически всю свою игру, вставив ее в этот метод (и переопределив onTouchEvent для обработки ввода), но это не очень хороший способ действовать. Размещение нового Paint внутри нашего цикла значительно замедлит работу, и даже если мы разместим это в другом месте, добавление слишком большого количества кода к методу рисования будет некрасивым и трудным для понимания.
Вместо этого имеет смысл обрабатывать игровые объекты с их собственными классами. Мы начнем с того, который показывает персонажа, и этот класс будет называться CharacterSprite. Давай, сделай это.
Этот класс будет рисовать спрайт на холсте и будет выглядеть так:
Теперь, чтобы использовать это, вам нужно сначала загрузить растровое изображение, а затем вызвать класс из GameView. Добавьте ссылку на частный CharacterSprite characterSprite, а затем в методе surfaceCreated добавьте строку:
Как видите, загружаемое растровое изображение хранится в ресурсах и называется avdgreen (оно было из предыдущей игры). Теперь все, что вам нужно сделать, это передать это растровое изображение новому классу в методе рисования с помощью:
Теперь нажмите «Выполнить», и на экране должно появиться изображение! Это Бибу. Я рисовал его в школьных учебниках.
Что, если бы мы хотели заставить этого человечка двигаться? Все просто: мы просто создаем переменные x и y для его позиций, а затем изменяем эти значения в методе обновления .
Поэтому добавьте ссылки в свой CharacterSprite, а затем нарисуйте растровое изображение в точках x, y. Создайте здесь метод обновления, а пока мы просто попробуем:
При каждом запуске игрового цикла мы перемещаем персонажа вниз по экрану. Помните, что координаты y отсчитываются сверху, поэтому 0 – это верх экрана. Конечно, нам нужно вызвать метод обновления в CharacterSprite из метода обновления в GameView .
Снова нажмите кнопку воспроизведения, и теперь вы увидите, что ваше изображение медленно перемещается по экрану. Мы еще не выиграли никаких игровых наград, но это только начало!
Хорошо, чтобы сделать вещи немного интереснее, я просто опущу здесь код «надувного мяча». Это заставит нашу графику отскакивать от краев экрана, как в старых заставках Windows. Вы знаете, странно гипнотические.
Вам также нужно будет определить эти переменные:
Phaser
Phaser — это фреймворк для разработки десктопных и мобильных HTML5-игр, базирующийся на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, частицы, аудио, разные способы ввода и физику объектов. Phaser распространяется с открытым исходным кодом по лицензии MIT. Это означает, что вы можете использовать код без ограничений, но с сохранением уведомлений об авторском праве в копиях ПО, то есть в тексте вашей лицензии необходимо будет добавить указание авторских прав на этот фреймворк. Он хорошо поддерживается Ричардом Дэви и появившимся вокруг него сообществом.
Пример разработки на Phaser →