Браузерная онлайн игра в узкой нише длиною в 10 лет

Всем привет, меня зовут Олег и сегодня я поделюсь своим специфичным опытом в геймдеве. В середине 2009 года я учился на третьем курсе университета и не знал о программировании ровным счетом ничего. В тот момент я увлекся жанром спортивных менеджеров, играл в футбольные, а затем и хоккейные. Это были как десктопные игры, типо Football Manager или Eastside Hockey Manager, так и браузерные, наподобие Золотой бутсы или Hockeyarena. Должен сразу сказать, что классический браузерный спортивный менеджер - вещь в себе, подойдет далеко не всем и потенциальная аудитория довольно ограничена. А у хоккейного менеджера она еще меньше. Все дело в том, что количество событий, происходящих в менеджере в минуту времени примерно стремится к нулю. Официальные игры проводятся раз в сутки, а все остальное время менеджер настраивает состав и проводит трансферы (которые тоже приходится ждать).

Так вот, поиграв довольно продолжительное время в хоккей арену, я решил создать свой хоккейный менеджер. При этом мой опыт в программировании ограничивался в тот момент написанием быстрой сортировки на си, а точнее списыванием того, как это делал мой одногруппник. Понятно, что для своего проекта я выбрал технологию с низким порогом входа - PHP. После небольшого погружения в язык и прочтения пары книжек для новичков, я начал делать сайт. Сейчас мне уже ясно, что то что я стартовал с нуля, без использования фреймворка и иных библиотек позволило мне глубже изучать некоторые азы программирования: написания и оптимизации сложных sql, запросов, авторизации, безопасности. Хотя сейчас такой подход выглядел бы глупо и самонадеянно.

Сайт я запустил без части основного функционала, который я допиливал на ходу. Стартовал он на обычном хостинге за 100 руб в сутки, где расширения PHP включались через админку (ностальгия!). Народ привлекал спаммингом на тематических форумах. Через несколько месяцев старта активно играло порядка 50 человек, что я считал супер успехом. Говорить о подсчете какого-то баланса речи не шло. Багов было много.

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

Немного о движке. Да вы можете в меня кидаться, но движок генерации матча я тоже написал на PHP. С учетом того, что вычислений в первой версии было не так много, работало это довольно сносно. Хватило моих университетских знаний в тервере и мат анализе. По мере того, как росли мои профессиональные навыки, я несколько раз переписывал его архитектуру, выделил в отдельный модуль. С выходом PHP 7.0 переписывание его на другой компилируемый язык стало менее приоритетным, так как я перестал упираться в скорость самого языка.

Про профессиональный рост: естественно, мои мечты о том, что мой сайт будет приносить мне доход (тем более доход существенный) не реализовались. Но от него проявилась побочка, по сути предопределилась моя карьера программиста. И так получается, что несмотря на то, что проект формально не приносит прибыли, лично для меня он оказался супер прибыльным. После окончания университета я устроился на работу программистом (не в геймдев). Мои навыки довольно быстро значительно выросли и я переписал сайт на довольно известном фреймворке, поскольку внедрение новых фич постепенно становилось все более болезненным. Через 1,5 года я сменил работу, мой скилл вырос еще. Стал писать тесты. Потом была еще одна работа и еще одна. Я понимал, что все я делал в начале было говном. Думаю, через это проходили практически все программисты. Всему чему я там учился на работе, я старался внедрять на своем проекте, постоянно что-то рефакторил - это кстати довольно полезная техника, многим ее советую.

В данный момент у проекта порядка 350 активных пользователей, порядка 50к регистраций за все время. Как знать, может быть результат был другим, если бы я выбрал тематикой менеджера не футбол, а хоккей. Но в сфере футбола конкуренция намного выше. По статистике других менеджеров, той же хоккей арены(порядка 600 активных пользователей), я понял, что практически уперся в потолок в России. Тут два выхода: менять формат, чтобы привлекать другую аудиторию или выходить в другие страны. В данный момент сайт переведен на английский на 99%, но спамить на англоговорящих форумах я еще не начал =)

Только в последние два года я стал задумываться действительно о геймдеве: механиках, подсчетах баланса. Не без лишней скромности, мне кажется, что движок генерации матча, умения хоккеистов и тактики довольны сбалансированы. Но в игре существует некоторая проблема с деньгами - у старичков скапливается очень много денег, а тратить их практически не на что. И вообще после определенного момента игра практически исчерпывает механики для старых игроков. База отстроена, команда набрана, тактики установлены - можно заходить раз в день посмотреть на результат матча. Я понимаю, что наверно, это проблема для всех подобных игр, но может в комментах кто подскажет кейсы для решения подобных проблем. Кстати о том, как считать экономическую составляющую в играх, я не нашел в рунете ни одной хорошей статьи, которая предоставила хотя бы одну практическую схему.

Такая вот история, надеюсь кто-то вынесет для себя полезное.

1515
6 комментариев

На dtf очень мало историй про браузерки. Спасибо! Хоть и не играю в спортсимы -- было любопытно.

Сам подумываю про космическую браузерку на js (+ вероятно php). И в любом случае это пойдет мне в скилл и наработки, которые можно использовать далеко за пределами геймдева.

2
Ответить

Пробуйте, но труд тяжкий конечно. Нужно любить это очень сильно, что не забрасывать. А вообще чем раньше запуститесь, тем лучше. Хоть с минимум фич.

Ответить

Повышайте зарплаты игроков в зависимости от их достижений и уровня, цены на содержание инфраструктуры + через какой-то период времени обязательный капитальный ремонт. Также надо заставить игроков больше ротировать состав команды, тем самым создавая новые расходы на трансферы/аренды. Для этого есть усталость игроков, травмы, скрытые дефекты например.

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

2
Ответить

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

Ответить

Комментарий недоступен

Ответить

спасибо, пойду побью себя)

4
Ответить