Создавайте качественные приложения и игры
Хотите добиться долгосрочного успеха? Повышайте производительность приложения, а также качество контента, интерфейса и улучшайте функции.
Уникальное предложение для широкой аудитории
Расширяйте аудиторию своего приложения – для этого вам нужно правильно выбрать контент.
Выделяйтесь среди конкурентов уникальным или инновационным решением, примером использования, а также интерфейсом и функциями приложения.
Учитывайте культурные нормы разных стран – ознакомьтесь с нашими рекомендациями по успешному запуску приложений во всем мире и подумайте об использовании стратегии регионального ценообразования.
Предоставляйте пользователям возможность общаться и взаимодействовать друг с другом – для этого создавайте и расширяйте сообщества, а также поощряйте самостоятельное создание пользователями контента.
Разрабатывайте новые функции с учетом пользовательских отзывов – в этом вам поможет инфраструктура закрытого и открытого тестирования в 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 игра готова. Компилируем, запускаем и смотрим что получилось!
Если кто-то запутался или что-то не работает можно скачать исходник.
На этом всё. Пишите отзывы, вопросы, интересующие вас темы для продолжения.
Источник
Что нужно для создания игры на Андроид
Мобильные игры прочно вошли в нашу жизнь, и это теперь новая реальность. Но, даже несмотря на то, что уже есть игры практически на любую тематику, интерес к созданию новых игр только растёт. Есть два способа создать свою игру или другое приложение для смартфонов на Андроиде:
Что такое конструктор приложений
Если станете разрабатывать приложение на полноценной платформе, то следующим этапом станет продвижение продукта. Это как продвижение сайта (SEO), только теперь продвижение приложения (ASO — App Store optimization). Например, онлайн-сервис ASOMobile помогает с улучшением видимости приложения в магазине, ищет уникальные поисковые запросы, отслеживает позиции конкурентов и др.
Эта статья о втором способе, т.е. о разработке игр с помощью конструкторов. Что это вообще такое и как работает? Самый простой пример – это конструкторы LEGO. У разработчика есть готовые «детальки», т.е. куски кода, выполняющие определённые функции, например, вывод текста на экран, движение персонажа, оповещение игрока о событии и др.
Вы, как разработчик, разрабатываете алгоритм игры, рисуете на бумаге как всё должно быть, прорабатываете логику игрового процесса, — это самая сложная часть работы! Затем просто собираете игру из имеющихся заготовок в одно целое. Соответственно, первый этап с проработкой логики завязан на возможностях и наличии «деталек» в выбранной платформе разработки. Такой способ хорошо поймут те, кто хоть раз делал сайт на конструкторе, это очень похоже.
Обычно, совсем без программирования сложно создать что-то стоящее. Простые игры получаются хорошо, но желательно иметь базовые навыки программирования на Android, чтобы можно было поправить или добавить кусочек кода, намного упростив логическую блок-схему игры.
AppsGeyser
Классический конструктор приложений и игр на Андроиде, один из лучших онлайн-сервисов. С помощью AppsGeyser можно бесплатно создать неограниченное количество различных игр. Тестируйте свои творения, публикуйте в магазинах приложений и получайте доход от рекламы.
Draw Your Game
Наверное, это самый простой способ воплотить свою игровую идею в жизнь. Помните игры на «Денди» или приставку «Рембо»? Что-то такое можно создать, просто нарисовав игру на листке бумаги!
В приложении есть несложные правила, по которым нужно нарисовать игру, у вас должно получится что-то типа такого:
Как не сложно догадаться, после фотографирования картинки камерой и отправки в приложение «Draw Your Game», игра оживает! Вы будете управлять динозавром, вам нужно будет прыгать и ходить, чтобы добраться до «злодея», выпускающего шарики. Также, придётся преодолеть препятствие, в виде двигающейся платформы влево-вправо. Здорово, не правда ли? Установить приложение можно из Play Market.
Epic Game Maker
Это простой конструктор, который позволяет рисовать уровни. Весь процесс очень напоминает то, как на «Денди» рисовали уровни в «танчиках». В «Epic Game Maker» есть заготовки персонажей и текстуры внешнего мира. Вы должны выстроить уровни, как захочется:
В приложении доступно более 5 разных видов тем и механик поведения.
STRUCKD – 3D Конструктор Игр
3D-конструктор, в котором объединяется большое игровое сообщество. Здесь можно создать свой уникальный 3D-мир и поделиться им с другими участниками, а также играть в уже созданных мирах. Доступны различные жанры, начиная от Action Puzzlers и Tower Defense и заканчивая гонками на автомобилях.
Отличительная черта «STRUCKD» — это работа в режиме «drug-n-drop», т.е. вам нужно перемещаться и перетаскивать объекты на нужное место. Есть турнирная таблица, в которой участвуют тысячи игроков.
Как быть дальше?
Сегодня популярны одни конструкторы, а завтра уже другие, всё быстро меняется. Какой бы вы конструктор не выбрали для Андроид или iOS, нужно понимать, что получившаяся игра будет доступна только вам.
Чтобы её увидели и смогли скачать другие пользователи, её нужно опубликовать в магазинах приложений Google Play Market или App Store, а это удовольствие платное. В некоторых конструкторах, например «Apper», эта функция включена, при условии оплаты подписки.
Не стоит забывать, что для привлечения внимания к новой игре в каталоге программ важны иконки для приложений iOS. Иконка должна быть простой и понятной, а не наоборот, запутывать пользователя. Рекомендуется разработать цветовую гамму будущего бренда и придерживаться её при разработке логотипов, иконок, презентаций, электронных писем и т.д.
Источник
Опыт создания игры для 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).
Подводя итоги, скажу, что игра до сих пор в небольшом минусе. Но ожиданий от первой игры особых и не было, а опыт получил ценный и интересный.
Если мой рассказ получился сумбурным, задавайте вопросы, уточню, что смогу.
Источник
Разработка мобильных игр — тернистый путь падавана
Картинка здесь эта потому лишь, что «Звездных воин» фанат я, и телефон тут есть еще
Доброго времени суток. Меня зовут Александр, я фронтенд-разработчик в небольшой компании, но речь в статье пойдет о моем хобби, если его можно так назвать – разработка мобильных игр. Хочу поведать историю моего знакомства и дальнейшего погружения в эту область и поделиться опытом с теми, кто хочет себя попробовать в качестве инди-разработчика, но сомневается. Также интересно узнать мнение опытных разработчиков по поводу тех идей, которые я пытался реализовать. Начну, пожалуй, издалека.
Не так давно, в одной далекой-далекой сибирской провинции
В настоящий момент я проживаю в культурной столице необъятной нашей родины, но в 2015 году, находясь в родном сибирском городе одного далекого региона на очередных умопомрачительных зимних каникулах, я сидел дома и не знал, чем себя занять, так как выходить на улицу в минус 30 градусов желания особо не было. Я учился в местном институте, грубо говоря, на программиста, мне приглянулась эта специальность еще со школы, когда родители отдали меня на курсы программирования для дополнительного образования. Программировать мне нравилось, учиться в институте — нет.
Я сидел за компьютером, как вдруг неожиданно прилетела в голову одна интересная мысль – почему бы не попробовать сделать простенькую мобильную игру? Вообще, мысль не совсем неожиданная, я был под впечатлением от ошеломляющего успеха одной игры про птичку, которая летала между трубами, и тот факт, что её сделал один человек, периодически всплывал в голове, но времени на обдумывание и взвешивание как-то не хватало, ведь помимо учебы я еще и подрабатывал. Но вот зимние каникулы, на улице мороз – была, не была, попробую сделать что-то простое и легкое.
Атака клонов
Какой только гадостью ни займешься, лишь бы игру скачивали
Благо, я был не одинок во вселенной мобильной разработки. Друг, вдохновившись моим успехом, пусть и первоблиннокомным, также ударился в разработку игр, но с одной особенностью – он не стал делать оригинальную игру, а решил забабахать клон известной игры, аргументируя это тем, что в этом случае не придется заниматься продвижением – ведь оригинальную игру постоянно скачивают, ее проходят, и людям хочется еще, так они рано или поздно доберутся и до его клона. Но клон был не тупая копирка – он добавил одну фичу, которая изменила игровой процесс и сделала его немного сложнее, но интереснее. Впоследствии, как мне и ему думается, это и сыграло свою роль – его игра одно время держалась на втором месте в Google Play Market, то есть сразу после оригинальной игры. Я же первое время скептически относился к этой затее. Хотя друг мне говорил, что нужно продолжать двигаться в этом направлении, после провала, хоть и ожидаемого, моей первой игры, я совсем перестал этим заниматься и ушел в подполье.
Но в этой жизни все циклично. Успех теперь уже игры друга вновь зажег во мне интерес к мобильной разработке и я пошел по его стопам – я начал делать клон этой же самой игры. Инструментом для разработки стал фреймворк Unity, только потому, что я неплохо знал C# (писал на нем диплом), хотя игра была двумерной и использовать такую мощную штуку для создания 2D игры было нелогично, но меня это не особо волновало. Клон игры я делал в сумме месяца три, но между двумя и одним месяцем работы вклинился переезд в другой город и поиск работы, потому мой клон появился в Google Play Market осенью 2016 года, спустя год с лишним после последнего обновления моей первой игры (я ею занимался до мая 2015).
Помимо этого, еще мой друг в своей игре (она уже на тот момент была на втором месте) поместил ссылку на мою, и вот до сир пор задаюсь вопросом, что повлияло на успех моего клона – та же фича, или поток пользователей с игры друга. Но факт остается фактом – моя игра какое-то время держалась на третьем месте, но, к сожалению, на данный момент она в районе 30 места, но это меня уже не трогает – клон он и есть клон – паразитизм на оригинальной игре не особо прельщает разработчика, который хочет сделать что-то свое, классное и нравящееся людям.
Собственно, после падения клона все ниже и ниже по ступенькам маркета я решил, что пора уже серьезно подойти к делу и сделать, наконец, игру, которую я хотел сделать самой первой, но понял, что не потяну и отложил до лучших времен. Времена настали – я набрался неплохого опыта в процессе разработке на работе и за плечами были целых две полноценных игры. Но я хотел все-таки залезть и в яблочную обитель, потому собрался с силами, поголодал, походил пешочком на работу, продал все, что можно было продать и купил себе Макбук. Правда, за разработку игры я сел только спустя полгода после его покупки – что поделать, такова натура ленивого программиста, пока не ударит муза творчества и логики, не начнешь неистово стучать по клавишам своими программистскими пальцами.
Новая надежда
Мне представляется, что глаза во время вдохновения именно так и выглядят
Буду честен – корыстная подоплека меня также преследовала. А кому не хочется заодно подзаработать на своих творениях? Вот и я хотел, и даже кое-какие деньги заработал со своего клона – смешные, но все-таки деньги. Потому создание оригинальной игры не требовало отлагательств. И вот, летом 2017 года, когда я все-таки соизволил начать использовать Макбук по назначению, я задумался не на шутку – что использовать для создания игры на этот раз? Игра 2D, довольно много уровней, есть особенности в движении игрока – что выбрать? И тут на помощь снова пришел мой друг. «Пиши нативное» — сказал он мне. Я подумал и решил – а чем черт не шутит, попробую использовать всю мощь того, что Apple предоставляет для разработки мобильных игр. Но стоит сделать оговорку – если бы не язык Swift, я бы отказался от этой затеи, потому что Objective C я не воспринимаю, не знаю, это субъективно. Swift мне сразу понравился, я потратил пару вечеров на ознакомление с основными его особенностями и приступил к активным действиям. Я понимал, что я один, и никто мне не поможет, только разве что за деньги, которых нет. То, что прилетало с клона, откладывал и в итоге потратил на айфон для тестирования новой игры.
Итак, я умею (по-крайней мере, я в это верю) программировать, не смыслю ничего в дизайне, в проектировании игровых уровней, в продвижении игры, и нет денег на соответствующих специалистов. В таких жестких рамках приходится напрягать мозги и фантазию, и в конечном итоге родилась авантюрная идея.
Проблемы с дизайном? Значит делаю игру в стиле минимализма — круг белого цвета с узором посередине в качестве игрока и прямоугольники в качестве препятствий. Нужно будет управлять этим кругом, нажимая на левую или правую часть экрана телефона так, чтобы не столкнуться с препятствиями, которые опускаются сверху вниз с одной скоростью, но в разных положениях по оси x (слева, посередине, справа).
Отлично, начало положено, но это слишком примитивно и быстро надоест. Усложняем — пусть с каждым уровнем меняется либо количество препятствий (для себя я их называл стенами), либо их качество: пусть стены либо двигаются слева направо и наоборот, либо вращаются против и по часовой стрелке, либо медленно исчезают, либо различные вариации выше сказанного.
Но это позволит разбавить игру на еще 15 — 20 уровней, а мне надо больше. Кстати, а сколько вообще уровней будет в игре? И тут мне пришла в голову мысль — а что, если моя игра в названии будет содержать просто число, означающее количество уровней, но это число будет пересекаться с известной игрой? Я вспомнил головоломку «94%». Прикинув, что большинство людей ленивы и им хочется быстрее добраться до интересующей их игры, набирая на клавиатуре мобильного телефона “94”, они вряд ли будут переключать раскладку в поисках заветного знака “%”, а просто нажмут “Найти” после ввода двух цифр. Я проверил в App Store — действительно, набрав “94”, на первом месте появится игра “94%”.
Замечательно, значит я делаю игру в минималистическом стиле с названием 94. Заранее предполагаю, что проблемы с дизайном и продвижением решены. Ведь, как я предполагал, игра с точным совпадением по названию в строке поиске должна показываться выше всех, или хотя бы в первой десятке (ага, размечтался). Но как придумать 94 уровня, причем интересных и разнообразных, чтобы после первой десятки пользователь не зевнул во весь рот и не удалил игру. Добавил новые виды стен — тройные (то есть три стены с двумя “дырками”) и тройные с подвохом (только через одну из “дырок” можно пройти, я их про себя называл тройные стены с обманом). Но все равно мало. Может быть, с игроком (кругом) что-то сделать?
Конечно же, все на поверхности. Пусть с каждым новым игровым блоком (я решил 94 уровня разделить на блоки, или эпизоды, 10 блоков по 9 уровней и последний с 4 уровнями) игрок начинает по-другому двигаться. То есть нажатие на половины экрана телефона те же, а реакция другая. Так появились следующие типы движений игрока:
Итак, закончив свое детище, я был в следующем положении — игра в минималистическом стиле с названием “94”, означающее лишь количество разнообразных уровней, которые нужно пройти. Подобных игр я не нашел — сделал вывод, что она оригинальная, чего я и добивался. Вдобавок ко всему я решил, что если нет букв в названии, то и в игре их не будет, все постарался сделать интуитивно понятным без слов. Потом оказалось, это дало мне неплохое преимущество — игру можно распространять во всех странах, не заморачиваясь с локализацией, которая тоже денег стоит. Все сложилось как нельзя лучше. Добавив рекламку и простенькую обучашку, я атаковал великий и ужасный App Store (эй, чего так дорого-то? Это только за год?!)
Империя соблазна наносит ответный удар
Я долго к этому подводил, и вот итог — я опять обоср опростоволосился. Игра не взлетела, я ее еле-еле нашел где-то в районе 200 места, где она и по сей день находится (выложил я ее в начале ноября). Я не понимаю, что не так — почему какие-то непонятные приложения с радиостанциями (94.7 с какими-то буквами, не помню), с играми, в которых нет числа 94, а только либо 9, либо 4, выше, чем моя игра. Видимо я ошибся в том плане, что результаты поиска выстраиваются не по совпадению в имени, а по количеству скачиваний, хотя это бред, если я ищу 94, значит мне не нужны “Угадай слово” или “IQ тест”. Обидно, но думаю, что тут нужно достаточно глубоко понимать процесс ранжирования игр в магазинах, а информации об этом не очень много (хотя может я плохо искал).
Как ни крути, но без сторонней помощи в продвижении, видимо, не обойтись. Мне интересно, много ли таких же программистов, столкнувшихся с проблемой продвижения при минимальном денежном запасе? Отсутствие денег убивает мотивацию продолжать что-то делать дальше, все равно о твоем продукте никто не узнает. Уже губу раскатал, что после выстрела игры на iOS начну пилить для Android, ну-ну.
Хоть и нелегка судьба инди-разработчика, есть и светлая сторона сего увлечения. За два года непрофессиональной разработки мобильных игр я узнал много интересного в работе операционных систем Android и iOS, особенности разработки под каждую из них, особенности работы с цифровой подписью и выкладыванием приложений в магазин (чувство после публикации твоей игры в каждом из магазинов просто непередаваемо). Один клон игры скачали 150 тысяч человек, второй 30 тысяч человек (да, я сделал два клона, плохие поступки приятнее совершать). Освоил, надеюсь, хотя бы на базовом уровне такие языки, как Lua, C# и Swift, в процессе разработки на последнем изучил многие паттерны проектирования, парочкой даже воспользовался для решения возникших задач. Хотя код по большей степени далеко не оптимальный, я сам чувствую, что скилл разработки поднялся, но развиваться есть куда. Приятный бонус в виде дополнительного заработка (монетизировал только с помощью рекламы).
Я думаю, мои неудачи связаны лишь с отсутствием денег, не более. Идей для разработки хватает, но пока я не разберусь с тонкостями продвижения и не найду эти пресловутые не пахнущие бумажки, не вижу смысла делать что-то новое.
Спасибо за внимание, помните самое главное — лучше попробовать, и пожалеть, чем не попробовать, и пожалеть еще больше. Дерзайте, все в ваших руках, если вы ждете знака начать что-то делать — то вот он, вперед!
Источник