Как сделать стратегию на андроид
Как разрабатывается Android стратегия?
Разработка стратегии для платформы Android – задача, подразделяющаяся минимум на N этапов. Сложность работы зависит от масштаба проекта. Очень простая стратегия может быть разработана и одним человеком за 3-4 месяца, при условии наличия у него понимания принципов проектирования игр. Данный материал – не пошаговый мануал. Описание только базовых принципов может занять около 50-70 страниц книжного формата. Поэтому за пошаговым руководством обращайтесь на Youtube или специализированные сайты. Ниже же кратко рассказано о том, что потребуется для реализации проекта.
Какие нужны инструменты
Создание стратегии под Андроид с нуля отнимает сотни часов чистого времени и требует глубоких знаний программирования. Проще всего разрабатывать игру с применением специального конструктора. Таковым является, например, Unity 3D. Он включает в себя движок Unity и набор необходимых инструментов для разработки. Знающим английский язык, на официальном сайте проекта доступен пошаговый мануал, учащий пользоваться инструментами приложения. Остальные могут обратиться к неофициальной документации на сторонних сайтах
При использовании Юнити для создания стратегии под Андроид нужно писать сравнительно мало кода. Большая часть разработки в нем ведется в интерактивном режиме. Программировать приходится только поведение объектов.
Процесс разработки
Стратегия создается почти так же, как и любая другая игра для Андроида, но с учетом жанровых особенностей. Для получения достойного внимания проекта потребуется создать следующее:
Это минимум, что требуется для получения в конечном итоге стратегии для Андроида. Реализация более сложных проектов также предполагает написание сценария, проектировании серверной части приложения и т.д. А для того, чтобы разработка возымела популярность, необходима еще и оригинальная идея. Создание такой игры требует от разработчика высокого уровня профессионализма, но главное – наличие у него знаний в области программирования, дизайна, рисования и/или 3D-моделирования и т.д. Мало какие люди способны обладать таким количеством навыков. Поэтому качественная стратегия может быть разработана только коллективом специалистов, состоящим минимум из 5 человек.
При этом основная сложность в разработке стратегии для Андроида состоит в проектировании и реализации реакций юнитов и окружения. Необходимо сделать так, чтобы не было дисбаланса, и написать искусственный интеллект. В противном случае игра будет чересчур проста, а значит – неинтересна.
Стратегия – один из самых сложных в реализации жанров. В процессе необходимо продумать множество нюансов и написать тысячи строк кода. Стратегия может быть создана в одиночку только при условии наличия у разработчика большого количества времени и глубоких знаний. Поэтому такими проектами занимаются команды, включающие в себя по несколько специалистов каждой специальности.
Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play
Сужать круг поиска, чем именно заниматься, было тяжело. Знакомых в этой области не было, поэтому решил отталкиваться от каких-то общих соображений. Так как в приоритете было в первую очередь найти что-то интересное, выбор пал на геймдев. Понравилась идея для начала сделать простенькую 2D-игру под Android и выложить на Google Play.
Немного уделив времени теории (алгоритмам, структурам данных и проектированию), для дальнейшего изучения я выбрал язык Java, который по сути является официальным языком Android, да и в целом очень популярен. В качестве фреймворка приглянулся LibGDX, бесплатный, разработка на нем ведется как раз на Java, и вдобавок он кроссплатформенный. Хотя для следующей игры планирую осваивать всем известный Unity.
Стоит заметить, что из теории самым полезным для меня было изучение шаблонов проектирования в ООП. Применение этих шаблонов мне очень часто помогало на практике, и к книжкам по проектированию я возвращался много раз. Когда ты изначально выстраиваешь правильную структуру кода, грамотно организуешь взаимодействие объектов, это очень упрощает процесс добавления нового функционала в код или его исправление, работать становится намного удобнее.
После создания нескольких пробных игр я взялся за игру, которую в конечном итоге и опубликовал на Google Play. Это казуальная геометрическая аркада, где главная цель — уворачивание от препятствий.
Я не буду здесь описывать здесь процесс создания игры. Если у кого-то есть вопросы, могу ответить в комментариях, или возможно напишу об этом отдельную статью.
Скажу лишь, что сильно затянул процесс разработки, уделял много внимания вещам, которые того не стоили. Пожалуй, наступил на все возможные грабли, на которые обычно наступают новички. Создание игры заняло около года, если не учитывать перерывы и обучение программированию. Все кроме музыки делал сам. С музыкой мне очень помог хороший знакомый.
Говорят, что продвижение игры надо начинать заниматься задолго до релиза. Этого я, конечно, не делал. Продвигать начал сразу после релиза игры. Сделал простенький сайт, трейлер игры, разослал запросы на обзор в кучу разных ресурсов, в том числе англоязычных (ответов получил очень мало, и в основном просили оплату), обновлял соцсети. Из платных методов: купил обзор на 4pda по программе поддержки разработчиков и попробовал рекламные кампании на Facebook и Adwords.
В итоге ни платные, ни бесплатные методы продвижения не принесли мне желаемого эффекта и я практически прекратил попытки. Количество скачиваний игры в день после этого опустилось до 10-40 и игра почти не подавала признаков жизни. Однако мне повезло, и неожиданно для меня Google Play зафичерил меня в разделе Indie Corner. Это не очень популярный раздел по меркам Google Play, но тем не менее количество скачиваний только благодаря ему сильно выросло и в отдельные дни достигало более 2000.
Думаю вместо слов, вам будет больше интересно увидеть статистику. Это данные спустя 2 месяца после релиза и 2 недели после начала фичеринга:
Активные установки / Всего установок: 8400 / 37000
Рейтинг на Google Play: 4.2 (148)
DAU/MAU: 3400 / 33000 (количество уникальных юзеров в день / в месяц)
Среднее время игры в день на юзера: 8m 31s
Среднее количество сессий в день на юзера: 1.6
Юзеров без критических ошибок: 99.6%
Таким образом, я получил возможность сравнить аудиторию, привлеченную через Adwords, и органику. Интересно, что между ними есть существенная разница. “Органический” юзер намного чаще оставляет отзыв, чаще делает покупки (все равно очень редко, но ни один юзер из Adwords до этого не делал покупок), и у него дольше игровые сессии. Хотя, к сожалению, удержание у него значительно хуже (удержание на первый день 25% у органики против 38% у юзеров с Adwords).
Подводя итоги, скажу, что игра до сих пор в небольшом минусе. Но ожиданий от первой игры особых и не было, а опыт получил ценный и интересный.
Если мой рассказ получился сумбурным, задавайте вопросы, уточню, что смогу.
Туториал: Создание простейшей 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 игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Как сделать приложение или игру для андроид
«Как бы мне хотелось самому создать игру для Андроида!». Кому из нас это не приходило однажды в голову? Создать своё собственное приложение или игру на андроид без знаний программирования – Реально! Достаточно скачать программу или воспользоваться онлайн-сервисом (конструктором) приложений. Конструкторы бывают платные и бесплатные, а так же с возможностью заработка на рекламе, которая будет показываться в ваших приложениях.
Приложения для создания игр
Самый простой и доступный способ – это скачать приложение для создания игр в Гугл Плей, да, игра получится простенькая, но нужно же с чего-то начинать.
1. Draw Your Game (Нарисуй Свою Игру)
Удобная программа, которая предоставляет всем и каждому возможность в несколько простых шагов создать свою собственную видеоигру.
СКАЧАТЬ В GOOGLE PLAY
2. Apper (Создай свою программу)
С помощью Apper вы сможете создавать и публиковать свои собственные приложения 5 простых шагов. Программа очень простая в использовании и не требует знаний программирования.
Приложение является бесплатным, но для публикации своего проекта в App Store или Google Play, вам необходимо приобрести платную подписку. Для полноценной работы рекомендуется минимум 1 ГБ оперативной памяти и возможностью загрузки изображений через WiFi.
СКАЧАТЬ В GOOGLE PLAY
3. AIDE- IDE for Android Java C++
Является интегрированной средой разработки (IDE) для создания реальных приложений для Android прямо на вашем Android устройстве. Следуйте урокам, чтобы стать экспертом и применять эти навыки в своих собственных приложениях.
СКАЧАТЬ В GOOGLE PLAY
4. Epic Game Maker
Уникальный 2D платформер и песочница с редактором уровней. С помощью данной игры вы сможете создавать свои увлекательные игры за считанные минуты, делиться ими с друзьями и прославиться. Без навыков программирования, всё что нужно — это лишь ваше воображение. Создавайте уровни и делитесь своими творениями с другими игроками.
СКАЧАТЬ В GOOGLE PLAY
5. STRUCKD – 3D Конструктор Игр
Объединяет в себе игровое сообщество и продвинутую площадку, в которой можно создавать уникальный 3D мир и обмениваться своими творениями с другими людьми. На выбор доступны жанры, начиная от гоночных игр и заканчивая Tower Defense и Action Puzzlers.
СКАЧАТЬ В GOOGLE PLAY
6. Sketch Nation Create
Ещё одна неплохая платформа для создания онлайн игр. Теперь вы можете делать настоящие многопользовательские игры в режиме реального времени и играть в них со своими друзьями. Приложение позволяет создавать от самых простых, до более продвинутых игр, используя различные жанры, благодаря чему сервис подойдёт не только для детей, но и студентов, и даже педагогам.
СКАЧАТЬ В GOOGLE PLAY
Онлайн конструкторы игр и приложений
Если вы решили попробовать более серьёзную платформу для создания игр и приложений, с дальней публикацией в Google Play и AppStore, то рекомендуем попробовать любой, из представленных ниже, онлайн конструктор для пк.
Список лучших онлайн-сервисов, в которых можно создавать игры и приложения для мобильных устройств:
А каким способом удалось создать своё приложение вам? Поделитесь своим мнением, оставив комментарий внизу страницы, возможно ваше сообщение окажется полезным и поможет определиться с выбором другим пользователям.