![](https://habrastorage.org/getpro/habr/post_images/135/2e8/158/1352e8158a42647d4154a4b9c85a5bb1.png)
Два инди-разработчика рассказывают, как использовали автоматизацию, один аккаунт Google Play и единственный шаблон игры про слот-машины для создания и публикации более тысячи приложений.
На проводимой в этом году Game Developers Conference выступили два разработчика игр, способные написать новую главу романа-антиутопии о будущем: они рассказали историю о том, как заработали деньги, позволив делать всю работу роботам. В их случае этой работой была процедурная генерация игр для смартфонов.
Участие в обычном гейм-джеме привело к созданию машины обработки данных, которой в результате удалось заработать приличную сумму: 50 тысяч долларов за два с лишним года. Спустя годы, имея на руках данные (и деньги), разработчики этой машины по изготовлению игр, которая создавала только «мусорные» слот-автоматы с моделью free-to-play, использовали GDC как трибуну, чтобы подать тревожный сигнал индустрии, в которой «правильное» поведение часто ограничивается вниманием к игрокам, заискиванием перед издателями и сбором положительных обзоров критиков. В случае этих разработчиков нарушение всех этих правил привёл к слишком успешным результатам, вызвав у них сильный дискомфорт.
Побеждаем в «гонке ко дну»
Вернёмся в 2013 год: в то время два разработчика видеоигр уже несколько лет пытались добиться успеха на растущем рынке мобильных игр. Один из них, Алекс Шварц, помогал в создании качественной мобильной игры Jack Lumber. (В прошлой жизни я даже написал о ней хороший отзыв в уже несуществующем журнале The Daily, работавшем только на планшетах.) Второй, Зиба Скотт, разработал приятную мобильную головоломку Girls Like Robots.
Обе игры использовали модель «заплати один раз» без микротранзакций. Обе получили награды, известность, хорошие отзывы на выставках и обрели издателей. Обеим не удалось добиться успеха.
Оба разработчика прикинули свой скромный доход, заработанный на «правильном» пути, проложенном традиционными издателями. Затем они посмотрели на магазины iOS и Google Play и увидели, что там доминируют «бесплатные игры, клоны и мусор».
В одной из повседневных бесед о реалиях бизнеса этот дуэт пришёл к выводу: «Мы можем добиться лучших результатов… пойдя по худшему пути!»
![image](https://habrastorage.org/getpro/habr/post_images/a44/6d2/548/a446d2548a3b8978009b23f13595b91c.png)
Один из примеров внешнего вида автоматически сгенерированных слот-машин для Android-устройств. Всё это дополнялось песенкой text-to-speech о кёрлинге, которая проигрывалась при каждом джекпоте.
![image](https://habrastorage.org/getpro/habr/post_images/e84/a2d/513/e84a2d513b04c65e3deefd9afa2dd57b.png)
Благодаря использованию Selenium, дуэт разработчиков смог автоматизировать щелчки мыши, ввод данных и выбор опций, необходимые для автоматической загрузки каждой игры.
![image](https://habrastorage.org/getpro/habr/post_images/c39/e16/39e/c39e1639e407532d5077cbecb77464c5.png)
Первая статистика.
![image](https://habrastorage.org/getpro/habr/post_images/cd1/8a2/941/cd18a29411e06f50809923f598243053.png)
Сюрприз: эти игры делают деньги.
![image](https://habrastorage.org/getpro/habr/post_images/a88/935/27c/a8893527c6fad83ca07cc318d900ed93.png)
Некоторые из результатов, полученных в конце эксперимента.
Они объединили свои усилия во время Global Game Jam 2013. Шварц и Скотт задумали создать нечто, напоминающее «гонку ко дну», которую они наблюдали на мобильных платформах. Из-за ограниченности отведённого на гейм-джем времени они решили купить за 15 долларов ассет трёхмерной слот-машины из Unity Store (это магазин, позволяющий разработчикам игр платить моделлерам и аниматорам за неограниченное использование различных двухмерных и трёхмерных ресурсов). Оставшееся время джема они потратили на создание системы, которая будет автоматически генерировать всё оформление, необходимое для того, чтобы простейшая виртуальная слот-машина оказась достаточно уникальной, чтобы её можно было опубликовать как собственное приложение для смартфона.
«Давай адаптировать их так, как это делают другие разработчики слот-машин», — предложил Шварц. «Они создают тематические автоматы. Какой минимальный набор элементов нужно изменить, чтобы получить другую слот-машину? Поменяем название. Изменим одно изображение на барабане, которое может быть связано с нашей темой. Допустим, делаем слот-машину про дельфинов: разместим там дельфина [как логотип джекпота] со специальным значком. Фоном сделаем изображение дельфина со скроллингом».
Список слов создавался вручную на основании того, что казалось интересным команде разработчиков; в то же время названия должны быть достаточно общими и допустимыми. Самым смелым из названий было «3D Sexy Librarian Slots» («Трёхмерный автомат „Секси библиотекарша“»).
Разобравшись с графикой, дуэт приступил к следующему шагу: созданию собственной музыки.
«В игре должна проигрываться поганенькая музычка, а механизм text-to-speech должен монотонным голосом Google Translate петь слово „дельфин“. Она будет воспроизводиться каждый раз, когда пользователь выигрывает. Под музыку она должна произносить название нашей игры», — предложил Шварц.
В результате после нажатия одной кнопки скрипт Unity смог объединить эти шаги и автоматически генерировать сотни «уникальных» слот-машин. Шварц и Скотт рассказывают, что их автоматизированная система сбора изображений в общественном достоянии столкнулась с одной проблемой: Google Image Search выдавал ошибки о превышении частоты запросов. «Нам пришлось использовать Bing», — сказал нам Шварц в телефонном интервью. «Многие аспекты его поиска изображений были менее требовательными. Я не пытаюсь кого-то оскорбить, но этот поисковик имеет репутацию второсортного. Поэтому для нашего проекта он был в каком-то смысле родственной душой».
«Портал в лучший мир»
Подготовив шаблон создания «одноруких бандитов», команда автоматизировала процесс передачи информации в Google Play (в то время эксплуатировать его было гораздо проще, чем магазин iOS) и создания бесплатных приложений с рекламой. Процесс был закончен после написания одного простого скрипта Selenium.
Теперь разработчики могли скармливать по одному ключевому слову в систему скриптов, которые тратили несколько часов на сборку, а затем наблюдать в «виртуальный монитор» за тем, как система имитировала поведение человека: она расставляла флажки, помечала каждую из стран, соглашалась с условиями использования и заполняла все текстовые поля, а потом брала автоматически сгенерированную слот-машину и загружала в магазин.
Шварц и Скотт подключили к системе скриптов сеть мобильной рекламы Playhaven, потому что их философия заключалась в том, чтобы не брать настоящих денег с пользователей, которые будут скачивать их приложения с безумными названиями. Затем они просто «забыли» проект на два месяца. Поработав какое-то время на своей реальной работе, они решили взглянуть на доходы и статистику рекламы. Разработчики были поражены: люди скачивали их приложения, а 27 процентов этих людей нажимали на их рекламу, благодаря чему доходы от неё составили примерно 211 долларов в день.
У команды возникла теория: «Все наши ключевые рекламные слова были связаны с казино», — рассказал нам Шварц. «Мы задумались о причинах такого успеха, и нас озарило: игра выглядела просто ужасно, но люди по какой-то причине её скачивали. Потом они видели рекламу гораздо более качественной слот-машины или казино, и нажимали на неё… ну ещё бы! На соседнем лугу трава всегда зеленее! Качество наших игр было настолько низким, что эти рекламные объявления, наверно, казались пользователям порталом в лучший мир».
Тем не менее дуэт разработчиков неохотно признаёт, что средний рейтинг многих приложений был примерно равен четырём звёздам, а обзоры оказались довольно благосклонными. Скотту запомнился один отзыв на автоматически сгенерированное приложение «3D Bowling Slots»: «Пользователь написал, что разочарован тем, что в слот-машине плохо раскрыта тема боулинга».
Истинная история суперзлодеев?
![image](https://habrastorage.org/getpro/habr/post_images/135/2e8/158/1352e8158a42647d4154a4b9c85a5bb1.png)
В конце получилась неплохая сумма денег.
![image](https://habrastorage.org/getpro/habr/post_images/337/05d/94c/33705d94cef36518ad995757eae21cdd.png)
Одна из самых любимых разработчиками слот-машин: «Слот-машина неопытной ушастой совы 3D»
![image](https://habrastorage.org/getpro/habr/post_images/1c6/fc5/ee4/1c6fc5ee48d1075383005c5573e998bc.png)
Система автоматизации учитывала ограничение на загрузку в Google Play (не более 15 приложений в день). Она работала автоматически достаточно долго и смогла загрузить примерно 1500 приложений.
![image](https://habrastorage.org/getpro/habr/post_images/dfb/32f/864/dfb32f864fcf47aaaa59e7c8dc62af46.png)
Шаблон слот-машин, от которого команда в конце концов отказалась.
![image](https://habrastorage.org/getpro/habr/post_images/239/042/d4c/239042d4c4da6c16616ea9b52d6522f8.png)
Вот насколько «популярным» стал варез разработчиков (шестая страница по запросу «лучшие новые карточные игры и казино»).
Инженерная часть их сущности хотела проверить, как далеко может завести этот проект. Поэтому они начали экспериментировать с готовым шаблоном, добавляя в него новые элементы, например, автоматизацию описаний слот-машин.
Неплохой идеей были Google Trends, но они обычно приводили к созданию названий, защищённых торговой маркой, или к именам знаменитостей, а разработчики не были заинтересованы разрывать цикл «автоматизации» ради решения проблемы множества запросов на удаление приложений. Поэтому они решили использовать немного обновлённый шаблон названий приложений: слово «3D», плюс прилагательное, плюс название животного, места или страны, плюс слово «free».
Примеры полученных названий: 3D Tremendous Face Pain Slots, 3D Rough Elbow Slots, 3D Mild Dogwood Slots, 3D Viceroy Butterfly Slots и 3D Inexperienced Great Horned Owl Slots. (Со временем разработчики даже купили футболки, чтобы запечатлеть на них память о последнем названии.)
Также Шварц и Скотт заплатили какие-то копейки небольшой румынской студии, чтобы она создала более качественную слот-машину, от которой в результате отказались. Частично это было вызвано тем, что новая постоянная работа и этические соображения перебороли их восхищение и готовность к продолжению эксперимента.
«Кто-то сказал нам, что на этой идее можно заработать денег, или продать кому-нибудь данные, или продать свою компанию», — рассказывает Скотт. «Мы оказались на перепутье — наша шутка стала напоминать настоящую историю суперзлодея. Оставим ли мы все свои творческие устремления, чтобы создать предприятие по активному зарабатыванию денег на слот-машинах? Или это останется крошечной частью наших жизней, занимающей 1/20 времени?»
Со временем команды разработчиков коснулись проблемы работы с Google Play. Приложения начали удаляться за нарушение обновлённых условий обслуживания, дававших Google больше свободы в уничтожении очевидного мусора. Кроме того, Google достаточно регулярно начал обновлять веб-интерфейс. Достаточно было сместить единственный флажок на несколько пикселей, чтобы сломать весь скрипт робокликов Selenium, который команда разработала для автоматической загрузки 15 приложений в день (в то время таким было ограничение Google Play для одной учётной записи разработчика).
В какой-то момент рекламная сеть Playhaven сделала недвусмысленное заявление. «Мы наблюдаем в вашем аккаунте хаотичные данные», — пересказывает Шварц это письмо. «Мы не совсем понимаем, что происходит, и не заинтересованы больше публиковать рекламу в ваших слот-машинах. Но надо прояснить ситуацию: вы не нарушаете наши правила пользования. Просто для нас это немного… неудобно».
Затем Playhaven добавила: «Ваши пользователи хуже всех. Люди, приходящие из ваших приложений, не тратят денег». Команда немедленно переключилась на другого поставщика рекламы, Chartboost. «Они приблизительно знали, чем мы занимаемся», — говорит Шварц. «И это был отличный партнёр».
«Оптимизировано для удаления нашего контента»
Спустя много лет все полторы тысячи приложений, сгенерированных в рамках этого эксперимента, уже мертвы. Шварц и Скотт считают, что вся эта афера была частично шуткой, а частично тревожным сигналом.
«Можно почти в шутку сказать: благодаря тому, что мы создали заметную цель в виде низкокачественных мусорных приложений, магазины приложений оптимизировали свои алгоритмы с целью удаления нашего контента», — рассказывает Шварц. «Практически можно сказать, что наша компания натренировала их алгоритм так, чтобы он больше такого не допускал. Но на такой уровень эту систему мы подняли первыми».
В своей презентации на GDC Шварц излагал информацию в основном шутливо, но и предупреждал о человеческом факторе: он говорил о проблемах, которые могут возникнуть, если кто-то начнёт реализовывать мечту об автоматически генерируемых приложениях не ради шутки, а для заработка.
«Этот проект оказался слишком сильным искушением», — объяснял Шварц на GDC. «Мы отвернулись от мобильного рынка, разочаровавшего нас в 2013 году, и всегда воспринимали свой проект с юмором… На самом деле мне совсем не интересны слот-машины. Мы стали двигаться дальше. Если в этом и есть какой-то урок для бизнеса, то он заключается в следующем: реализуйте свои безумные идеи, экспериментируйте. Но даже если они и дадут результат… будьте готовы уйти, ведь, возможно, именно попытка, а не результат, делала вас счастливыми».