Месяц назад я провел опыт — сколько заработает мобильная игра, сделанная за день?
Краткий итог — заработок наколенного iOS разработчика несильно отличается от средней зарплаты провинциального российского программиста.

Итак, по-порядку.
Сначала было Слово.
И Слово было Байт…

Шучу, порядок другой.
Да и текст будет неканонический.

Напомню, что месяц назад за 1 рабочий день был сделан ремейк старой DOS-игры J-Bird с сильными изменениями в сторону идеи реверси. На дизайн потрачено $6. На swift — 7 часов. Тестирование и написание статьи на популярном ресурсе забрало 2 часа жизни автора. И это были лучшие часы в моей серой жизни.

Как зарабатывает J-Bird?


После одобрения славными китайскими парнями из Калифорнии, игра была выставлена в магазине по цене $1. При этом внутри приложения используется реклама от Гугл и Чартбуст.

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

Гугл, как обычно, висит фоном внизу телефона и радостно подмигивает цветными шариками и брокерами.

Как отслеживать число установок?


Каждый новый игрок, запуская игру, посылает php-запрос на сервер, где мгновенно заносится в mysql базу данных. Общее число игроков отображается в приложении J-Bird на всех экранах.

На языке swift это выглядит так:

        let urlRoot = "http://www.bashni.org/sites/jbird/request.php?" // here is your site
       
        let u = UIDevice.current.identifierForVendor
        let udid = u!.uuidString
        let name = UIDevice.current.name
        
        var params = "s=\(score)&imea=\(udid)&name=\(name)"
        let urlParams = params.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
        
        let url = URL(string: urlRoot+urlParams!)
        let session = URLSession.shared
        let task = session.dataTask(with: url!, completionHandler: { data, response, error in
       if data != nil {
            let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
                    OperationQueue.main.addOperation({
                        self.updateRank(dataString)
                    })
                }
            }
            }
        })
        task.resume()

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

   func updateRank(_ response:String) {
        self.delegate?.updateTotalRank(response)
    }

Для ощущения многолюдности на сервере было заведено 860 фейковых имен и результатов, к которым автоматически присоединились 12 тестовых устройств от разработчика, 9 проверяльщиков из Apple и 7 родственников, которых я благородно вычеркиваю вместе с $6 за картинки.

На момент написания этой статьи число пользователей:



928.

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

За месяц игру купили 928 — 860 — 12 — 9 — 7 — 6 = 32 человека. Низкий Вам поклон от парня из Челябинска.

Это 32*0.7 = $22. Apple забирает 30%. Низкий тебе поклон, Apple. И это еще не все! К ним вы бесплатно получите шнурки для горнолыжных ботинок и щеточку для усов. Шучу.

У меня нет усов — но есть рекламные центы. Чартбуст не имеет заработка, а вот Гугл приносил до 15 центов в день, имея 1500 просмотров в сутки (то есть eCpm доходил до $0.1), но почёму-то сейчас этот показатель eСpm чрезвычайно низкий, почти 0. При таком числе просмотров на других приложениях я имею доллар в день! А здесь — пшик. Тем не менее, за месяц заработано на рекламе $2.


Рис.1 Заработок за день, число показов, eCpm.

Итого за 9 часов работы наварено $24. При этом сохраняется тенденция — 1 неделя — 1 покупка. Значит к концу года будет 50-60 долларов.

Обычные цифры. Без чудесной сказки. А жаль.
Суровые выводы делайте сами.
Прим. Игра нигде не афишировалась, ссылок нигде не публиковал. Чисто Хабр.

Одно замечание по гейм-дизайну

Поскольку игра была сделана тяп-ляп, автору удалось пройти лишь 11 уровней из 30. Пришлось покрутить коэффициенты и выпустить новую версию 2.0 — в ней удалось дойти до 22-ого уровня! К Новому году пройду игру до конца, зуб даю. Их у меня 29 осталось.

Немножко про коэффициенты.

На досках с порядковым номером > 2 появляется поле такого вида.



Чтобы пройти это поле, на него надо прыгать до тех пор, пока оно не лишится шипа. При каждом прыжке с вероятностью 1/3 шип может исчезнуть. Так вот иногда прыгаешь, прыгаешь, как Буратiно, а время жизни тает. То есть были случаи по 12 раз приходилось прыгать, а все без толку.
И-ть! Как меня это бесило!

Я решил ограничить количество прыжков, случайно определить число скоков от 0 до 5. Равномерная случайная величина. Но играть стало неинтересно. Тогда я вернул нормальное распределение, но с обрезанным хвостом. То есть более 6 раз точно прыгать не надо. И вновь играть стало интересно.

Вот пишу статью и играю. Ей-богу, залип, как дурак.

Дурак, не дурак, а $50 каждый год теперь имею.

А может, и побольше…
Чего и Вам желаю! Amen!
Поделиться с друзьями
-->

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


  1. comerc
    19.03.2017 02:21
    +1

    $50 каждый год теперь имею

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


    1. PapaBubaDiop
      19.03.2017 13:38
      +1

      Да, но этот закон относился к рекламным доходам. Например, у меня есть платное приложение Frogger HD, его стабильно качают 3-5 раз в день. На протяжении 3 лет имею от него 1000 баксов в год.


  1. adasoft
    19.03.2017 10:16
    +4

    а возмущающиеся тем, что и деньги заплатили за игру и рекламу видят есть? или молча проглатывают принципиально не кликая?


    1. PapaBubaDiop
      19.03.2017 13:41
      +1

      Понимаю, что это возмутительно, но не представляю, как отключить рекламу для тех, кто купил приложение за $1, а для тех кто скачал бесплатно — оставить ее? Если кто даст решение — тот будет молодчик.


      1. adasoft
        19.03.2017 14:27
        +2

        а возмутительно ли?


        1. adasoft
          19.03.2017 14:33
          +2

          добавил:
          если нет недовольных, то и делать ничего не надо.

          С технической точки зрения — можно активировать рекламный блок от времени первой установки. Если пользователь установил (запустил) программу, когда она была платная (сервер вернул флаг paid), то рекламу показываем другую (никакую), если запустил во время sale акции, то включаем reward video или другой тип рекламы по полной.


      1. kozzztik
        19.03.2017 15:09
        +1

        Ну вообще правильнее было бы просто забить на тех, кто качал ее бесплатно и предоставлять один сервис для всех. Если вы зарабатываете на установках, зарабатывайте на них. Втыкать костыли и отдельный метод монетизации ради того что бы получить рекламу с 6 пользователей(их же столько, я правильно понял?) это жестковато. Тем более если учитывать обычный ретеншн для мобильников, они перестанут играть раньше, чем вы найдете хорошее решение.


        1. PapaBubaDiop
          19.03.2017 19:17

          Пожалуй, так и сделаю. Выпущу версию 3.0 с пометкой Removed all ads.


  1. kaktus_4ever
    19.03.2017 13:35
    +1

    Написано и проработано за ночь. Никаких доходов не имею, просто сделано потому что захотелось.


    1. Carburn
      19.03.2017 14:10
      +1

      Доработки были же


      1. PapaBubaDiop
        19.03.2017 14:31
        +1

        Верное замечание. 2 раза менялась одна строка кода. Добавим 1 час. Все равно остаемся в рамках рабочего дня)


      1. kaktus_4ever
        22.03.2017 15:01

        Какие доработки?


    1. DrFaust4
      21.03.2017 00:54

      пока не разобрался, кажется слишком сложным, когда понял принцип — слишком просто, но игра интересна, идея своя или это откуда-то?


      1. PapaBubaDiop
        21.03.2017 00:55

        Это древняя игра — еще до-IBM PC-ой нинтендовской эры. Музыка и слова народные.


        1. kaktus_4ever
          22.03.2017 15:07

          Игра Sherlock. Была когда то под DOS. На момент написания DOSBox еще не знал =), поэтому написали свою. Алгоритм построения свой, от оригинала отличается тем что всегда решается (поэтому кажется что она простая, поэтому и версия 0.9, уже который год не доходят руки сдлеать ее сложнее а также добавить поэтесс и преферанс =)


  1. BIanF
    19.03.2017 17:02

    Привет! А вы используете Admob Campaigns для толчка при запуске?


    1. PapaBubaDiop
      19.03.2017 19:17

      Нет, а поможет?


      1. BIanF
        19.03.2017 19:18

        Не знаю :D
        Я пытался создать компании, но у меня не вышло. 20 000 реквестов и ни одного отображения =\
        Думал вдруг подскажете в чём дело.


        1. PapaBubaDiop
          19.03.2017 19:29
          +2

          Увы, я здесь не копенгаген. Может братья во хабре помогут.


          1. BIanF
            19.03.2017 19:30

            Да прибудет НЛО.


          1. BIanF
            24.03.2017 03:16

            Написал себе оффлайн баннеро крутилку. Очень помогло.
            (Показывает баннеры, если нет сети или admob не смог залить)
            При наличии интернета, умеет обновлять набор баннеров.


  1. Mercury13
    19.03.2017 18:36
    +1

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


    1. PapaBubaDiop
      19.03.2017 19:25

      Спасибо, хоть кто-то читает внимательно. 1/3, 2/9, 4/27, и т.д. действительно не Пуассон.


      1. Mercury13
        20.03.2017 11:12

        Нормальное - это Гаусс, а не Пуассон.


  1. shoorick
    19.03.2017 22:54

    И слово было два байта.


    1. PapaBubaDiop
      19.03.2017 23:07

      Не. Разные были слова, двухбайтовые появились в 60-ых)


      1. shoorick
        20.03.2017 11:52

        Если говорить о писюках IBM-совместимых ПЭВМ на процессорах 80x86, то сразу двухбайтовые. Которые, конечно, позже появились, чем в шестидесятых :-)


  1. fillosofik
    19.03.2017 23:07

    Очень интересно было узнать нюансы. Стиль написания — блеск! Даже жене пошёл прочёл))) смеялись!