Реклама →
Браузерная игра: менеджер гоночной команды
Привет, хабр.
Год назад после совместного просмотра «Социальной сети» (кино про 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
Год назад после совместного просмотра «Социальной сети» (кино про 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
07.11.2011 22:15+0400