Читать сначала: Как я Дота-лигу открывал. Часть 1
Продолжение: Как я Дота-лигу открывал. Часть 2
Ответвление: Как я продолжил дело Дота-лиги

Год 2008-й, середина осени. В результате вооруженного переворота у меня отобрали лигу, и теперь я стал абсолютно свободен от каких-либо обязанностей. Мне больше не надо следить за ботами, за серверами, за лигой, за админами и думать над её развитием. Наконец-то я могу изучать интересные мне технологии! Я начал ковырять PHP, и придумывать следующий проект…

Почему уходят игроки?


За годы, проведенные в доте, я много раз видел, как менялись топовые игроки. Одни приходят, другие уходят, но никто обычно не задерживался более чем на 3 года киберспорта — люди взрослели, понимали, что на киберспорте не заработать и уходили в реал лайф на нормальную работу, за которую стабильно платят. Игроков забывают слишком быстро, и вот вчерашняя звезда киберарены теперь сидит в белой рубашке и красном галстуке в опенспейсе, и никто не знает, что он чемпион мира 200X года по доте.

Я чувствовал, что я могу помочь становлению киберспорта в СНГ, чтобы легендарные игроки не уходили со сцены, а могли зарабатывать на жизнь также, как зарабатывали бы на настоящей работе. Это был 2008й. Год, когда покер был официальным спортом в России, и весь рунет резался в покер, чтобы «легко заработать». У профессионалов это неплохо получалось, а новички только сливали деньги. Идея назрела сама собой — надо дать игрокам площадку(как этот делал покер), где они бы играли друг с другом, а победитель получал бы выигрыш как в покере.

Создаем лигу


Кажется, это звучит уже смешно — в который раз я создаю дота-лигу :). Но в этот раз она будет совсем не про игру для задротства, а уже про заработок. И так, основная идея будет такая: игроки пополняют свой баланс, начинают игру, на их балансе замораживаются средства, а после игры деньги уходят победителям. Звучит просто. А лига будет зарабатывать на комиссии с победных денег, как это делают покеррумы. Начинать лига будет с малых оборотов, например каждый вносит $1.00 за игру, при поражении теряет их, а при победе получает +$1.90 ($0.10 забирает лига в качестве комиссии). Вроде звучит не сложно, и можно будет даже платить модераторам за рассмотрения заявок.

А на деле оказались в процессе создания, всплыли такие живые вопросы:

1) Что делать с ливерами? — Если человек вдруг вышел из игры до её завершения, т.е. подставил свою команду, и обрёк на поражение. Что с ним делать? Пусть оплачивает поражение своей команды полностью, или частично? Но ведь выиграть можно и в 4 на 5, тогда не наказывать?

Вопрос сложный, и решили сделать так: пусть оплачивает частично поражение своей команды, т.е. теряет примерно в 2 раза больше денег, чем если бы доиграл. В то же время у игрока может не оказаться лишних денег, которые можно списать, и выплачивать игрокам уже будет нечем.
Значит, нужно замораживать денег чуть больше, чем ставка на игру, чтобы хватало на выплату возможных штрафов.

2) Как игрокам пополнять счёт? — всё должно быть автоматизировано и работать без моего участия. Подключил SMS и WebMoney, как самые популярные онлайн-деньги на тот момент (Я.Деньги еще только становились).

3) Мне нужна команда — Я намерен реквизировать ваш корабль, набрать людей на Тортуге, чтобы вершить разбой на потребу своей чёрной душе! (с).

Собрал команду довольно быстро — у меня еще остались старые пираты верные друзья, которые пошли за мной писать историю, и они притянули нескольких энтузиастов с горящими глазами, верившие в идею.

Пишем код


На переписывание старого бота ушло около 1го месяца. Запущенный бот размещался по прежнему на локальном сервере, а каждый час данные копировались в БД на вебсервере — если взломают вебсервер, то повлиять на БД, которая хранит все деньги не смогут.

Бот, как и в прошлый раз, общался с игроками через чат в Garena.

Запускаем лигу


Ноябрь 2008. Лигу запустили, дали рекламу на всех дота-форумах, написал спам-бота, который рекламировал нас на всех каналах Garena, процесс пошел. В отличии от прошлых лиг, где нужно было лишь зайти в онлайн и играть, здесь требовались определенные телодвижения — нужно было пополнить счёт. Уже сам этот факт отпугивал бОльшую часть игроков. Но желающие всё же нашлись. Постоянный онлайн оказался всего около 6-8 человек. Собрать игру 5х5 на деньги было нереально, поэтому был срочно придуман режим 3х3. Этот режим оказался самым популярным впоследствии, т.к. в Доте всего 3 линии, то одна линия полностью твоя, и есть хороший шанс одному вытащить в одного игру, даже если двое остальных твоих тиммейтов слабые игроки.

Из интересных плюшек, я договорился с админами Garena, что буду перепродавать их цифровой товар (Gold Account), а пользователи смогут одной командой в чате купить их.

Жили не тужили, разбирали спорные кейсы, иногда играли сами на деньги, как наше прошлое не заставило себя долго ждать…

Дыханье смерти


Ещё будучи главой прошлой sP-лиги, я научил одного из приспешников методам пакетного анализа, сниффингу траффика и подделке пакетов в Garena. Я думал, он поможет мне писать ботов, но после захвата власти, он перешел на сторону нового руководства. И так как большинству задротов людей нечего делать, он решил дальше копать уязвимости на стороне Garena, пока не нашел парочку.

Сначала он начал заходить на наш публичный канал (команату) в Garena и имитировать пакеты «Пользователь XXX вышел из комнаты». И он подставлял туда ID нашего бота, и получалось так, что наш бот тихонько покидал канал. Соединение при этом не рвётся, и бот никак не может узнать, что соединение порвалось. Я всеми силами пытался привлечь внимание админов и разработчиков Garena к этой проблеме, но пока она не была массовой, проблеме присвоили низкий приоритет.

Как же у меня бомбило! Я сам научил человека копаться в сетевых пакетах, и сам же в итоге натравил на себя!

Чтобы защититься я решил действовать — сначала я через Garena начал искать «текущие трансляции», находил какую-нибудь топовую азиатскую трансляцию (Garena разрабатывается в Сингапуре), вычислял в какой комнате сидят игроки (обычно они ныкались куда-то в очень непонятную комнату, чтобы их не нашли), и имитировал выход из игры парочки игроков из комнаты. Сорвав несколько игр, понял что так дело не пойдет, и надо всё это дело автоматизировать. Переписал за ночь спам-бота, научил его ходить по абсолютно всем комнатам Garena, и начал массово выкидывать пользователей со всех комнат Garena. Я надеялся, что примерно за неделю они обратят на это внимание и пофиксят баг. Проснувшись утром, я обнаружил, что в Garena зайти уже не удаётся. Наш ИП забанили. ИП всей общаги оказался в бане (да, я тогда делал это из общаги)! Я сразу начал писать письмо админам, что это был я, мол так и так, сами виноваты, у меня не было выбора, разбаньте. Мне поводили пальцем, что так делать больше не надо, но в итоге разбанили. Баг починили через 2 дня.

Мы снова стали почти в безопасности, как вдруг в декабре на канал стал заходить я сам, и писать боту всякие важные команды! Этот «хакер» как-то умудрился обойти систему авторизации, и теперь мог заходить вообще под кем хотел. Я так и не разгадал этот трюк, и мы просто придумали пароли, которые активировали режим админа в боте.

Увы, Garena становилась дырявой, а лига не оказалась сколько-нибудь популярной. Стало очевидно, что конец близок.

Новое направление




Наступил новый 2009й год. Я познакомился с красивой девушкой, и у меня оказался очень весомый стимул зарабатывать больше! Я решил сконцентрироваться на продаже Gold Account-ов, для этого упростил весь процесс заказа и поставки товара — вместо того, чтобы регистрироваться, заводить аккаунт, пополнять его, и потом оплачивать голд аккаунт — всё упростилось до одного действия: Отправь смс с правильным текстом. 7 января запустил рекламу в своём спам-боте, и… первый заказ поступил через 5 минут. Второй через час. В первые сутки поступило около 20 заказов. В течение первой недели я отослал 300 аккаунтов. Я не мог поверить, что это происходит! Деньги полились конечно не рекой, но для студента это были очень хорошие деньги!

Эйфория прошла примерно через неделю, когда я начал подсчитывать финансы. Дело в том, что у меня было припасено около $1000 на счету WebMoney. Этого хватало на 300 голд аккаунтов. Деньги от платных SMS обычно приходят в течение 14 дней после того, как агрегатор проверит их на фрод. Но из-за новогодних праздников, все выплаты задерживались ещё на 1 неделю, и деньги должны были прийти только 21го января. А они физически кончились ещё 15го числа. Решил, что займу денег у отца… Их хватило на 3 дня, т.к. количество заказов увеличилось. Что делать дальше? Писать. Написал официальному представителю в СНГ у которого их и закупал, сказал что, так и так, денег пока нет, давай что-нибудь придумаем. Так как я был первый, кто начал давать такие объёмы — мне пошли на уступки, и выдавали все товары авансом. Так, я успокоился, и принялся считать свои доходы. Огромным плюсом было то, что я наконец избавился от лиги. Мне больше не требовалось её поддерживать, и за ней постоянно следить. Освободилась огромная куча времени!

Ипотечный кризис? Не, не слышали!


И так, я подсчитал, что в месяц я буду зарабатывать около 45 000 рублей чистыми. Это был очень хороший доход, когда ничего не надо делать — только время от времени переводить деньги поставщику. Но беда пришла оттуда, откуда не ждал. По телевизору в то время крутили новости про кризис, но какое мне было дело? Я ведь просто студент, меня это не должно касаться. А оказалось, что должно… Следите за руками.

Клиент оплачивая Gold Account оплачивает его со своего мобильного счета в рублях. А мне деньги после конвертации валюты приходят в долларах (WMZ). И за каждый голд аккаунт деньги я должен переводить поставщику в тех же WMZ (долларах).

Из-за финансового кризиса, курс доллара к рублю резко вырос, с 27 рублей, до, кажется 35+. Это означало, что вместо того, чтобы зарабатывать по $2 с каждого заказа, мне оставалось только примерно $1, то есть фактически к 21 января (ко дню выплаты) я заработаю намного меньше. Сейчас я знаю, что это называется "валютный риск", и стоило бы договориться о цене голд аккаунта в рублях. Но тогда я до этого не додумался. Правда смог договориться о скидке в 15% на товары.

Выжать все соки


Продажа голд-аккаунтов всё-равно оставалась выгодной. Я зарабатывал по 20 000р, мог водить девушку по ресторанам и кино. Но я стремился максимизировать прибыль, и искал все возможные законные пути для этого. Во-первых, клиенты очень часто ошибались в текстах смс — они путали свои ники, и спецсимволы. Потом было нереально трудно найти, кому нужно отправить товар. Поэтому в текстах смс оставляем только ИДшники в Garena. А чтобы быстро конвертировать все ИДшники в Nickname, мне нужна своя база пользователей (которая как-раз уже собиралась моим спам-ботом).

Ошибок стало меньше, но всё-равно людям было трудно найти и ввести свой ИД в Garena, чтобы получить правильный текст для смс. И тут меня осенило — мой спамбот ходит по всем СНГ-каналам в Garena, и записывает всех пользователей, все их IP (да, Garena это предоставляла. это требовалось для создания пиринговых туннелей). А значит, я могу вычислить пользователя по IP, если спамбот будет подставлять в ссылку для спама — ещё и № канала, на котором этот спам прошел. Таким образом, когда кто-то проходил по такой ссылке, я уже зачастую знал Nickname и UID этого пользователя, и уже мог приветствовать, и давать нужный текст для смс!

Это уменьшило количество шагов для продажи до возможного минимума, и заказов стало примерно на 25% больше.

А ещё мне пришла в голову отличная идея рекламы — в то время были очень популярны форумы. И было принято вставлять туда в подпись что-то веселое и интересное. Так как у меня есть вся база пользователей, и я помню на каком канале в последний раз был пользователь, то я смог предоставить сервис генерации живых картинок для вставки в подпись (в signature, в сиги), где в любое время дня и ночи генерировалась бы картинка с онлайн-информацией по тебе — находишься ли ты сейчас в сети, и если да, то на каком канале:



Мне лишняя реклама, а пользователям — уникальный сервис. Каждые 10% показов — вместо картинки показывалась реклама голд аккаунта.

Все остальные сиги, кому интересно
Garena-style:







Dota-style:





































Counter-strike:




А для вот этих сиг не оказалось сохранённых картинок, поэтому показываю пустые без заполнения данными:





















Социальная ответственность


В универе нам как-раз рассказали про социальную ответственность. Его суть я понял по своему: Если я что-то получаю от системы, я должен в неё что-то возвращать. Так я решил, что буду всячески помогать платформе Garena, процветать и пахнуть. Для начала, я решил начать бороться со спамерами. В то время, в Garena что только не рекламировалось — начиная от хаков для игры, заканчивая порнухой. Ну и мои голд аккаунты тоже рекламировались, но уже мною)
Я дописал спам-бота, чтобы после спама он задерживался ещё на некоторое время на канале, и записывал все сообщения, которые всплывут в чате. По итогам суток, все сообщения с ссылками, которые были один-в-один одинаковые я записывал в «подозрительные», и скоупом направлял на Garena-админа, с приложенными доказательствами (их текстами), он примерно проверял, и всех банил одной командой.



Второй мой шаг стал борьбой с читерами. Garena потихоньку загнивала, читеры были в каждой игре, на каждом канале. Появилась т.н. «Garena Hack» — взломанная платформа Garena, которая позволяла использовать любые читы, в том числе часть из них были встроенные. А ещё она очень быстро накачивала тебе опыт.

Отличительной особенностью её использования оказалось то, что при входе на канал, твой индикатор был сразу же изначально — будто у тебя запущена игра, хотя это было невозможно. Таким образом, можно было со 100%-й вероятностью сказать, кто использовал Garena Hack, а кто нет. Проверить разработку решили на High-Level комнатах в Rus-сегменте. Оказалось, больше половины игроков использовали Garena Hack. Всех не перебанить, ведь тогда платформа точно умрет. Решили давать временные баны на 1-3 дня. А через пару недель создатель Garena Hack выпустил апдейт, устраняющий этот индикатор «всегда в игре».

Социальная ответственность закончилась, когда СНГ-администрация попросила написать для них аналог моего сервиса. Я понимал, что если откажусь, то его напишет кто-нибудь другой, поэтому согласился. Завершив работу и заработав $2000 я понял, что приходит конец всей этой истории.

Заключение


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

В это время на сцене появилась новая платформа — iCCUP , в ней всё было настолько нативно и круто, пинг был чрезвычайно низкий, и отлично работал античит, что они просто захватили всех игроков в доту, но это уже другая история.

По итогу, у меня остался огромный опыт организации лиг, опыт дистанционных продаж, я узнал гораздо больше про сети, научился в PHP и SQL, и даже смог на этом заработать. Я знал, что опыт этот интересный, но вряд-ли когда-нибудь мне пригодится, и никогда я не буду работать разработчиком, ведь я не настоящий программист, образование у меня экономическое, а всё что я знаю — только благодаря упорству и желанию. Я тогда ошибся. С 2012-го я каждый день читаю Хабр. Благодаря Хабру я понял что я всё-таки ИТ-шник, и мне всё это интересно, и я хочу и буду этим заниматься всю свою жизнь.

P.S.: Выражаю благодарность Хабру, и всем его авторам, за все статьи и комментарии к ним, это помогло выбрать мне свой путь!