- Прелюдия
- Разработка игры под iOS
- Продвижение игры
- Чисто поржать
Прелюдия
Эта история случилась в мае ровно на той скамейке, где Берлиоз с Бездомным поспорили о сущности Христа. Мы с приятелями тоже поспорили о возможности заработать на своей iPhone-игре. Я, вдруг, заявил, что без вложения денег это невозможно. Мои оппоненты, даже гении, нехотя согласились. Я усилил троллинг и добавил: — Друзья мои, без больших денег это совершенно невозможно! Любая сумма менее $25000, потраченная на раскрутку приложения — обернется пшиком. Пшшшш!
Все возмутились и прогнали меня со скамейки. Заодно уж и из Москвы.
Разработка игры под iOS
Оказавшись на задворках финансовых потоков и Европы я решил потрать $1000 долларов (упавших мне от старых игр) на доказательство своего Белого Тезиса, тем более Диван у меня имеется. Как вы уже догадываетесь, с годами любой разработчик создает лишь те проекты, на которые ему хватает сил. В свои 60- мне хватает сил ровно на 3 дня. Например, за июнь я сделал 10 новых игр. В основном забавный шлак, но графика и геймплей великолепны.
Графика
Графика во всех играх одинакова. Поясню — раз в месяц я захожу на envato.market и покупаю за $10-$20 долларов готовый набор изображений для мобильной игры. Вид необычных картинок будит во мне сотни идей, из которых я реализую ровно 10. По три дня на игру — месяц жизни долой и уставший
Теперь про июньские картинки — это набор изометрических кубиков. Приятные цвета, точные пикселы, что еще надо для счастья, Верещагин?
Шрифт Тройка. Замечателен своей грубостью и кириллицей.
Геймплей
Все игры, сделанные мной на основе вышеуказанной 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. Смотрите сами.
Короче, этакий маджонг получился.
Мне нравится расклад 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). А то бы заплакал.
Надеюсь, с помощью данной публикации я верну деньги. Ха-ха-ха.
Автор: Вадим Башуров