• Прелюдия
  • Разработка игры под iOS
  • Продвижение игры
  • Чисто поржать

Прелюдия


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

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

По следам публикации


По следам публикации разгорелась нешуточная борьба за Кубок 26-08.
Игроки с Хабра настолько сильны, что в первый же день выгнали меня с вершины Олимпа. Но! В первой башне я нашел решение на 2 очка лучше прочих.И победил парней из Украины и России.
Можем еще!



Разработка игры под 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 // десятичное 3

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

a[50,45] = 0b10 // десятичное 2

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

a[50,46] = 0b01 // десятичное 1

Пробегая по матрице заслонов для любого блока (скажем номер 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[].

2-минутное видео как играть



Отладка


Два дня рубился в игру. Вначале мышкой на эмуляторе. Подобрал правильные начальные условия для набора блоков — степени двойки можно распределить разными способами. Мой вариант на 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). А то бы заплакал.
Надеюсь, с помощью данной публикации я верну деньги. Ха-ха-ха.

Комментарии (33)


  1. yar3333
    25.08.2017 16:21
    +3

    Отличная пятничная статья! :)


  1. sterling239
    25.08.2017 16:23
    +4

    По заголовку подумал, что пост про майнинг


  1. LoadRunner
    25.08.2017 16:24
    +2

    1000000 уникальных раскладов — это математический расчёт и проверка на уникальность или как всегда — генерация наобум во славу Рандома?


    1. PapaBubaDiop Автор
      25.08.2017 16:46
      +2

      Наобум. Интересно посчитать число уникальных раскладов. 20!/4! мне кажется.


      1. LoadRunner
        25.08.2017 17:01

        А какие ограничения на кубики? Могут ли они все быть двойками? Или там всё определено — сколько и каких кубиков и меняется только их расположение?


        1. PapaBubaDiop Автор
          25.08.2017 17:20
          +1

          Все определено 14 кубиков каждого цвета. Паззлы не все решаются — примерно 25% у меня успешны. Специально для Хабра делаю игру бесплатной на эти выходные.

          Вот игра


          1. LoadRunner
            25.08.2017 18:34

            Жаль, под Windows больше не пишете.

            А можно подробнее про правила? Кубики только одинакового цвета можно складывать?


            1. PapaBubaDiop Автор
              25.08.2017 19:19

              Да. Я добавил короткое видео в статью, можешь взглянуть.


              1. LoadRunner
                26.08.2017 10:00

                Один вопрос всё равно остаётся — можно брать только видимые кубики?


                1. PapaBubaDiop Автор
                  26.08.2017 10:19

                  Да.


                  1. LoadRunner
                    29.08.2017 12:41

                    Я тут сообразил на ещё один вопрос: кубики можно брать, смотреть, что под\за ними и ставить на место или взял — ходи?


                    1. PapaBubaDiop Автор
                      29.08.2017 12:57

                      Подсматривать можно (в этом удовольствие). Кроме того, активно работает кнопка Undo. Без нее — никак не подсмотреть скрытые глубоко блоки.


  1. torkve
    25.08.2017 17:50
    +6

    > В свои 60- мне хватает сил ровно на 3 дня. Например, за июнь я сделал 10 новых игр.
    Зависть. Понимаю, что опыт и фантазия, но всё равно зависть.


    1. PapaBubaDiop Автор
      25.08.2017 18:26
      +1

      Браво. Одним предложением раскрыли мою суть. По правде игр 5.

      Весь список
      Rubik 2048
      Solitaire 2018
      Six Towers
      J-Bird
      Blocks Chain
      и т.д.


      1. LoadRunner
        25.08.2017 18:36

        По J-Bird статья уже была, если кто пропустил.


  1. SAKrisT
    25.08.2017 18:20
    +2

    Надеюсь, с помощью данной публикации я верну деньги. Ха-ха-ха.

    Помогу вернуть :)


    1. PapaBubaDiop Автор
      25.08.2017 18:29
      +6

      Поздно! Игра уже бесплатна) Остается вариант, что нажмешь толстый рекламный баннер от Chartboost!
      Но ваши комментарии дороже денег, если честно…


  1. Daniil1979
    25.08.2017 20:48
    +1

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


  1. bano-notit
    25.08.2017 21:18
    +2

    Очень классно. Я от мира игр далековат, но вот ваша статья очень понравилась, вот думаю сейчас попробовать возродить одну из заброшенных наработок.
    У Вас запал идёт на 3 дня, а у меня на несколько месяцев, но волнами...


  1. vics001
    26.08.2017 01:47

    Может cделать, что-то наподобие текстовой стратегии? Разрабатывать их не так сложно, а вот продумывать сценарий игры, мне кажется в 60 будет попроще и жизненный опыт поможет :)

    P.S. Поле чудес была в некотором смысле игрой-стратегией, где на каждом шаге надо было выбирать букву, а в конце слово.


    1. Carburn
      26.08.2017 04:34

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


      1. Evengard
        26.08.2017 13:37

        Это уже кому как.


  1. Laguna_Seca
    26.08.2017 02:44
    -7

    Заработать без вложений можно. Нужно делать интересные игры. Проверено.


    1. PapaBubaDiop Автор
      26.08.2017 11:41
      +17

      Именно так я и говорил Ван Гогу: — Рисуй хорошие картины, а то помрешь в нищете.


  1. Graysun
    26.08.2017 15:56

    Расскажите пожалуйста.
    TOP-10 Чего?
    Общий. Категории. По какому-то запросу?


    1. PapaBubaDiop Автор
      26.08.2017 18:40

      Топ 10 игр русского магазина (games). Запросы, ключевые слова забыл, простите уж. Хотя можно поднять переписку.


  1. reinvent
    26.08.2017 18:12

    >Цель — попасть в ТОП10 русского Appstore.
    А это как-то помогает продвижению? Не эффективнее ли в соцсети?


    1. PapaBubaDiop Автор
      26.08.2017 18:42
      +3

      Мой издатель говорил грубо, но верно:

      топ 25 US зарабатывает. Остальные сосут.
      Но это было 5 лет назад. По-моему, ничего не изменилось.


      1. dadyjo
        29.08.2017 15:19

        Мне кажется пользователи избалованы бесплатным ПО и низкими ценами, нужно просто продавать приложения задорого, представьте что любая программа в AppStor стоит 100$ :)


  1. dadyjo
    27.08.2017 20:12

    А что за библиотека используется для графики?


    1. PapaBubaDiop Автор
      27.08.2017 22:09

      Никаких сторонних библиотек не требуется — обычная родная яблочная графика. Основной элемент графики — UIImageView — картинка с альфа-каналом.


  1. codmw44
    29.08.2017 15:48
    -1

    Если продукт ничего из себя не представляет, то тут ничего не поможет и не окупится. Интересные продукты, с продуманной монетизацией и грамотно реализованной системой возврата пользователя в игру приносят больше чем стоимость одной установки с какой нибудь рекламной площадки. Если проект еще уникален и интересен игрокам, то можно с минимальным бюджетом выйти в топы. Что бы не быть голословным приведу пример: наша игра без единой потраченной копейки на маркетинг получила 5 млн установок в google play за пол года.


    1. PapaBubaDiop Автор
      29.08.2017 15:50

      Ждем истории успеха в зарабатывании с нуля $100 000.