Яндекс.Метрика

    Реклама

    Браузерная игра: менеджер гоночной команды

    Привет, хабр.
    Год назад после совместного просмотра «Социальной сети» (кино про facebook) была создана гугл-группа численностью три человека для создания браузерной игры и, конечно, значительного обогащения. Профессионально никто из нас веб-разработкой не занимался.
    Идея

    После определения цели тут же был выбран и жанр, как наиболее близкий к интересам: менеджер гоночной команды в стиле формула 1.
    Концепция была простая: существуют дивизионы, в которых пользователи управляют болидами, строениями, настройками на гонку, пилотом и т.д., проходят квалификацию и настраивают тактику на гонку. За час до гонки начинается «закрытый парк», интерфейс блокируется, доступна только стартовая решетка и отсчет времени.

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

    По окончании гонки интерфейс открывается и начинается настройка на следующую гонку.
    При этом основной «фишкой» было разделение труда: каждый пользователь был с одной стороны менеджером, с другой стороны пилотом. Соответственно каждый менеджер должен был нанять пилота и каждый пилот должен был найти менеджера (живых людей).

    Начало разработки

    Технологии выбирать не пришлось: из знаний были только начальный php+mysql и html/css, даже с js и конкретно с jQuery знакомство было по ходу разработки. Изучение Flash с нуля не рассматривалось.

    Началось все с показа гонки: был использован jQuery плагин интерполяции по заданным точкам и создана первая трасса. Параллельно создавался генератор, основа базы и интерфейс: регистрация, личные сообщения, поиск и найм менеджеров и пилотов, все то что в дальнейшем оказалось ненужным: спустя месяц после начала работы было решено перенести игру в формат социальной сети Вконтакте.

    После двухмесячной паузы разработка продолжилась: теперь был использован CodeIgniter, весь проект был перенесен на сервер Clodo. Системы контроля версий не использовались, все создавалось в Notepad++ по sftp, что было верхом удобства по сравнению с разработкой на Денвер.

    Скрипт гонки в то время получал данные непосредственно во время показа: 1 обращение к серверу каждый круг для каждого игрока (позже было решено грузить всю гонку сразу). Поделив необходимый миллион рублей на предположительное количество денег с одного пользователя было решено что столько запросов обязательно потребуют мощного сервера: примерно неделя была посвящена настройке сервера: nginx отдающий статику и проксирующий php на apache показалось достаточно, но мысли «а что если не хватит» все еще оставались: спустя время стало понятно что преждевременная оптимизация зло.

    От разделения обязанностей отказались, и правильно сделали: даже сейчас в приложении есть мультиаккаунты, учитывая что их наличие не приносит никакой пользы.

    Релиз

    Цель была выпустить приложение к началу сезона формулы 1, но даже отмена этапа в Бахрейне не помогла: приложение вышло сырым спустя 3 дня, 30 марта (первая гонка была, что называется, провалена).

    Первых пользователей привлекли внутренней рекламой Вконтакте: учитывая скидку при рекламировании своего приложения цена перехода с правильно настроенным таргетингом опускалась до 0.50 руб. Стоит добавить что в нашем случае наиболее четко видна целевая аудитория приложения: примерно 50.000 пользователей Вконтакте с интересом формула 1.

    Костяк лояльных пользователей сформировался достаточно быстро: темы «Ошибки в приложении» и «Ваши предложения» стали быстро наполняться. Все адекватные предложения реализовывались, разработка велась «по живому» в более высоком темпе чем раньше.
    Сейчас очевидно что это спугнуло многих пользователей, но в такой системе работы были и плюсы в виде критики и дополнений.

    Пользователи также создавали и часть наполнения игры: конкурсы шлемов и ливрей (раскрасок) болидов пользовались популярностью.

    Развитие и монетизация

    От возможности класть голоса и влиять этим на баланс игры решено было отказаться. Лишь летом были введены специальные дивизионы, в которых пользователи могли обменять голоса.
    В игре также есть VIP статус позволяющий создать личный дивизион.

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




    В середине мая в приложение была добавлена Рекламная Сеть Яндекса, что позволило к августу выйти на окупаемость хостинга.

    Хостинг

    Сервер в облаке Клодо казался идеальным местом: проблем с нагрузкой и надежностью поначалу не возникало. И даже после всем известных событий в начале лета приложение не было перенесено: подкупала конечно недорогая стоимость.

    После первых небольших денег мы все же съехали к scalaxy, на этот раз это был сервер с nginx+php-fpm и отдельный сервер для mysql. C тех пор проблем не возникало.

    Казалось бы, всего 3000 пользователей, но:


    Гонка проходит в одно время для всех пользователей, со стартом проблем нет: за 40 минут до начала начинает загружаться сама страница гонки.
    Проблема с окончанием (у всех пользователей одновременно открывается интерфейс с пополненным балансом) была решена распределением гонок на весь день, но в данный момент это функция скорее на будущее: простого масштабирования канала до 30 мбит/с хватает.
    Для спокойствия был поставлен munin.

    Напоследок скриншот первой страницы и показа гонки:



    Ссылки: raceManager Вконтакте, raceManager Facebook