Как легко расстаться с $1000

в 13:12, , рубрики: casual game, идщслы срфшт, разработка игр, разработка мобильных приложений, разработка под iOS
  • Прелюдия
  • Разработка игры под iOS
  • Продвижение игры
  • Чисто поржать

Прелюдия

Эта история случилась в мае ровно на той скамейке, где Берлиоз с Бездомным поспорили о сущности Христа. Мы с приятелями тоже поспорили о возможности заработать на своей iPhone-игре. Я, вдруг, заявил, что без вложения денег это невозможно. Мои оппоненты, даже гении, нехотя согласились. Я усилил троллинг и добавил: — Друзья мои, без больших денег это совершенно невозможно! Любая сумма менее $25000, потраченная на раскрутку приложения — обернется пшиком. Пшшшш!

Все возмутились и прогнали меня со скамейки. Заодно уж и из Москвы.

Разработка игры под iOS

Оказавшись на задворках финансовых потоков и Европы я решил потрать $1000 долларов (упавших мне от старых игр) на доказательство своего Белого Тезиса, тем более Диван у меня имеется. Как вы уже догадываетесь, с годами любой разработчик создает лишь те проекты, на которые ему хватает сил. В свои 60- мне хватает сил ровно на 3 дня. Например, за июнь я сделал 10 новых игр. В основном забавный шлак, но графика и геймплей великолепны.

Графика

Графика во всех играх одинакова. Поясню — раз в месяц я захожу на envato.market и покупаю за $10-$20 долларов готовый набор изображений для мобильной игры. Вид необычных картинок будит во мне сотни идей, из которых я реализую ровно 10. По три дня на игру — месяц жизни долой и уставший мозг автора требует следующей порции изображений от художников. Художники! спасибо, что вы есть. Наркотикам — нет!

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

А вот и пример

Как легко расстаться с $1000 - 1

Шрифт Тройка. Замечателен своей грубостью и кириллицей.

Геймплей

Все игры, сделанные мной на основе вышеуказанной 2D графики, очень разные. Идеи от пакмана до 2048. Ссылок давать не буду, заминусуете же, черти, а я — рок-стар, крайне трепетно отношусь к брани. Еще копыта отброшу, а хочется увидеть, как выглядит iPhone 8.
Но про одну игру, выбранную для раскрутки, я вынужден буду рассказать со ссылками и прочей шелухой. А шелуха забавная.

Название

Игру назвал Blocks Chain. В технологии блокчейна я разбираюсь, но к данной игре она не имеет никакого отношения. Суть в следующем — дана пирамида из 56 трехмерных блоков четырех цветов. Каждый блок имеет случайный номер на боку, кратный 2. Это 2, 4, 8, 16, 32. Вы можете схлопнуть 2 любых одинаковых блока. То есть блок 2 и блок 2 превратятся в один блок 4.

2 + 2 → 4
4 + 4 → 8
8 + 8 → 16
64 + 64 → X

Если повезет — пасьянс сойдется в четыре больших разноцветных блока 128. В чем проблема, воскликнете вы — это ж элементарно! Проблема в том, что в пирамиде мы видим изначально лишь 21 блок из 56. Смотрите сами.

Как легко расстаться с $1000 - 2

Короче, этакий маджонг получился.

Мне нравится расклад 32306. Решил за 2 часа.

Разработка

Язык Swift 3.0, день на кодирование. Что интересного? Интересная задача определения видимый-невидимый блок. Решил её с удовольствием, построив матрицу заслонов 56 на 56. То есть номера блоков в матрице отсортированы по координате Z

let a[1..56,1..56] // isHidden matrix

Если блок номер 34 заслоняет блок 16 полностью, то

a[34,16] = 0b11

если блок номер 50 заслоняет левую половинку блока 45, то

a[50,45] = 0b10

если блок номер 50 заслоняет левую половинку блока 46, то

a[50,46] = 0b01

Пробегая по матрице заслонов для любого блока (скажем номер 17) — мы считаем логические суммы от соответствующих элементов a[*,17] и если эта сумма равна 3 — блок невидимый. Во всех прочих вариантах он виден и готов к метаморфозам.

Расклады формирую случайно по стартовому random_seed. Всего 1 000 000 уникальных паззлов.

Архитектура

Элементарно на 5 экранах — 5 классов
MenuViewController

PlayViewController -> Obj
HelpViewController -> Obj

FinalViewController
ServerTopScoreViewController

В игре добавлен вычислительный класс Obj, где производятся все манипуляции с матрицами и массивами. В этом классе хранится история ходов игрока для текущего расклада. Массив history[] имеет тройное назначение — 1) помогает делать Undo — отменять ход, 2) сохраняет историю игры на сервер (чтобы я мог подсмотреть решение), 3) проигрывает записанное решение в разделе Help

Help

Важная часть для обучения игроков. В проекте я копирую PlayViewController в HelpViewController, убираю нажатия на экран (touchesBegin и пр.) и проигрываю какое-либо из красивых решений при помощи Timer и Animation, читая ходы из массива history[].

Отладка

Два дня рубился в игру. Вначале мышкой на эмуляторе. Подобрал правильные начальные условия для набора блоков — степени двойки можно распределить разными способами. Мой вариант на 14 кубиков — 32, 32, 16, 16, 8, 8, 4, 4, 4, 4, 2, 2, 2, 2.

Звуки взял из старых игр — все они были заимствованы из Angry Birds, люблю финскую музыку, голос мордовской крови.

Второй день — полирую игру на железе. Предпочитаю iPhone маленького размера.

3-я часть, 5-ая колонна

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

Для затравки сделал сервер, где выбираю 3 из 1 000 000 раскладов и каждый день выкладываю для заочного соперничества. Интровертам можно просто тихо играть и релаксировать без ажиотажа и вспышек фотокорреспондентов.

Продвижение игры

Игра завершена и выложена в магазин в 2-ух ипостасях (платная и бесплатная).
Зачем 2 приложения? Для эксперимента — я буду продвигать оба.

Выбор промоутера

Любой активный разработчик раз в месяц получает письма от сервисов по продвижению мобильных приложений (игр). На 90 процентов это индусы, остальные русские. Как расист (только белые женщины), я выбрал первую попавшуюся русскую контору. Называть не буду, что избежать рекламы/антирекламы. Звоню.

— Есть бюджет $1000, хочу продвинуть приложения…
— Сделаем, сэр!!!

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

Рекламная компания

Цель — попасть в ТОП10 русского Appstore.
Цена — для бесплатного $500.
Цена — для платного $250.

За два дня вошел в топ10. Хватило 6000 бесплатных фейк-скачиваний. Причем с первой попытки войти в топ10 не удалось. Компанию запустили заново с другими ключевыми словами (не осилил я специфику их терминологии) и результата достигли, все честно.

Платных загрузок — 600 (ребята попросили изменить цену приложения на 15 рублей). В результате $100 мне вернулось обратно.

Но натуральных загрузок не случилось, как я и предполагал.

В итоге бесплатное приложение я выбросил, оставил платную версию, которая приносит мне 1-4 долларов в неделю. Как и до рекламной компании.

Чисто поржать

Было смешно потратить $1000 (на самом деле $650). А то бы заплакал.
Надеюсь, с помощью данной публикации я верну деньги. Ха-ха-ха.

Автор: Вадим Башуров

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js