как программировать игры на телефоне

Создавайте качественные приложения и игры

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

Уникальное предложение для широкой аудитории

Расширяйте аудиторию своего приложения – для этого вам нужно правильно выбрать контент.

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

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

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

Разрабатывайте новые функции с учетом пользовательских отзывов – в этом вам поможет инфраструктура закрытого и открытого тестирования в Google Play.

Повышайте интерес к своему приложению у пользователей со всего мира – локализуйте его интерфейс и страницу в Google Play с помощью наших сервисов перевода.

Привлечение интереса пользователей

Чтобы удерживать интерес пользователей, регулярно выпускайте обновления приложения и его контента.

Регулярно выпускайте обновления контента и функций приложения – это позволит вам надолго удержать интерес пользователей.

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

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

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

Хорошие технические характеристики

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

Приложение должно иметь интуитивно понятный интерфейс – cоздать его вам помогут стандартные шаблоны визуального дизайна и взаимодействия для 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 в одиночку с нуля и как ее зафичерили на 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).

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

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

Источник

📱 Как начать разрабатывать мобильные игры для 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 игры двумя школьниками

В данной статье хочу рассказать вам об опыте разработки одной простенькой игры под Android, которая многократно окупилась еще на стадии разработки!

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

Предыстория

Мы начали заниматься разработкой игры в 10-м классе. До этого никакого опыта в разработке и продвижении мобильных игр у нас не было. Были лишь базовые знания Java и небольшой опыт создания сайтов. И все!

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

На дворе был декабрь 2015 года. Идея создать игру пришла абсолютно внезапно: обедая в школьной столовой во время перемены, мы непринужденно поглощали только что купленные сосиски в тесте и, как обычно, увлеченно разговаривали о смысле жизни, машинном обучении, о быстром темпе развития ИИ. Постепенно наш разговор затронул тему о разработке мобильных игр. Мы рассуждали о сложности создания популярных игр, их коммерческой выгоде и тд. И тут нас посетила дерзкая идея создания собственной игры под Android. Быстро доев свой обед, мы с огромным энтузиазмом стали это обсуждать.

Мы начали перебирать в голове все топовые на тот момент игры: такие, как Flappy Bird, Crossy Road и тд, так как захотели создать что-то похожее, что заставило бы людей «залипнуть» в нашу игру.

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

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

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

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

Нейминг

Над названием мы особо не заморачивались и придумали его в тот же день. Мой воспаленный ум выдал такое странное словосочетание: «Накачай Качка». То, что это попросту неграмотно и противоречит всем нормам русского языка мы узнали только на второй год разработки игры, но это название так нам приелось, и стало таким родным, что переделывать его уже не хотелось. Так что оставили так, как есть.

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

Мы придумали 2 основных фичи:

1) Мы решили ввести такой игровой режим, как совместная игра с другом. Экран делится на 2 части и игрок может сразиться со своим другом в скорости «Нажатия на гантелю». Нам это показалось очень хорошей идеей, так как до этого мы такое еще нигде не встречали. Также, эта идея хороша эффектом «сарафанного радио», так как игрок, может увлечь в игру своего друга, и он также скачает себе наше приложение.

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

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

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

Дизайн

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

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

Наконец, коллегиальным решением мы выбрали понравившегося нам художника с внушительным портфолио и огромным опытом работы. Недолго думая, мы решили ему написать.

Это был очень волнительный момент. Мы думали, что это наш единственный шанс получить крутой дизайн, и мы не можем его упустить. Я крутил у себя в голове наш диалог, продумывал наше общение на пять сообщений вперед. Наконец, собравшись с силами, я отправил ему первое сообщение. Ответ не заставил себя долго ждать. Художник ответил всего через пол часа.
Всего за работу он хотел не много не мало 5000-8000$…

В тот день мы столкнулись с реалиями этого мира. Таких денег у нас не было и в помине. Тот максимум, который мы могли обеспечить — была сумма примерно в 30 тысяч рублей. Это все деньги, которые мы усердным трудом накопили с завтраков.

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

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

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

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

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

Итак, дизайн был готов! Настало время разработки!

Разработка

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

Всего разработка заняла около двух лет. Игра написана на нативном Андроиде и состоит приблизительно из 20 тысяч строк кода, не включая библиотеки.

В самом начале ничего, кроме этой гантели на Activity не было. В начале разработки самым сложным стало понимание графического интерфейса, все эти layout’ы, виджеты и иже с ними… Далее по мере разработки игры мы узнавали про асинхронность в андроиде, про продвинутые виджеты, смотрели огромное количество различных библиотек и пытались разобраться, что вообще там такое написано, и как оно работает. После одного года общения с андроидом мы уже имели представление об основах разработки. Старый код постепенно переписывался, так как после подросших умений он уже казался слишком костыльным и непродуманным.

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

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

Сейчас мы поставляем сразу 5 версий приложения в Гугл Плей (4 версии с разделением ресурсов и 1 версию без разделения), что позволяет экономить у некоторых пользователей около 18 мегабайт веса.

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

Монетизация

После того, как в игре появился хоть какой то функционал, мы начали думать о способах монетизации. Мы перепробовали много разных компаний-рекламодателей, включая StartApp, ChartBoost и тд. Но решили оставить свой выбор на Appodeal, которая показалось нам самой адекватной сетью, несмотря на большой размер SDK и необходимость использования multidex.
Также очень понравилась работа поддержки, ответы были всегда оперативными и понятными.

Всего рекламы в игре довольно много: от простых маленьких баннеров на разных Activity до их полноэкранных видов. Также, в игре присутствует видео-реклама, которую пользователь может просмотреть, если захочет ускорить прохождение игры.

Сразу после внедрения рекламной сети доход от игры откровенно печалил. Он составлял не более 0,1$ в день, так как просмотров было очень мало, в связи с маленьким количеством игроков.

Со временем график очень медленно, но верно рос вверх. За пол года игра начала приносить около 1$ в день.

Все изменилось после того, как мы осознали, что у игры ужасная иконка и глупое описание. Мы решили их поменять.

Старая и новая иконки игры:

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

И тут доход от игры резко пошел вверх в геометрической прогрессии! Уже за первую неделю доход от игры превысил 5$ в день, а на данный момент суммарный доход от встроенной рекламы и покупок составляет немногим более 100$ в день.

Количество установок пользователей в день также резко подскочило вверх:

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

Ошибки

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

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

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

как программировать игры на телефоне. Смотреть фото как программировать игры на телефоне. Смотреть картинку как программировать игры на телефоне. Картинка про как программировать игры на телефоне. Фото как программировать игры на телефоне

Итоги

На момент написания статьи, игра выпущена из публичной беты в релиз уже как 3 дня назад. Пока что публичных отзывов достаточно мало, и никакого особого прироста в закачках после релиза игры мы не заметили, но уже на данный момент игра попала в ТОП новых и находится на 280 месте, хотя мы еще не давали практически никакой рекламы.

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

С текущими перспективами мы теперь планируем создать что-то по-настоящему стоящее, что-то оригинальное и гораздо более продуманное!

Источник

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

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