Как стать автором
Обновить

Комментарии 29

Я ваще не в теме, но читать интересно.
А я краем зацепил — прочитал взахлеб!

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

Сразу вспомнил как какой-то недовольный игрок, которому я после 3-х игр поставил 0 очков затаил на меня злобу.
И когда я, решив воспользоваться данной мне властью — просто без игр через бота проставил своему другу нужное количество очков, чтобы попасть в сп2 кажется, этот обиженный игрок заскриншотил это дело и зарепортил. После чего я потерял роль мастера-приемщика :D

Этот маленький случай стал для меня тогда большим уроком. Уже тогда я понял, что мне надо сильно работать над собой и что имея даже малейшие рычаги управления — я теряю контроль и иду на поводу самых низменных потребностей вроде «желания народного признания».

Виза был после меня :) все эти истории до него
неловко вышло :D

Viza — это админ B? Или даркер админ B?

Я вообще не в курсе ваших скандалов, интриг и расследований)
Суть статьи не столько в скандалах, сколько о своих историях переживаний и преодолении трудностей.
А имена, люди, лица — дело десятое, поэтому стараюсь писать без конкретных имён и ников.
Санта-барбара какаято)
Скандалов, интриг и расследований было гораздо больше, но из пришлось оставить за кадром, чтобы не перегружать статьи лишней информацией. Например, был бойкот одного модератора из Питера, грозившего что если его не повысят до админов, то с лиги уйдут все игроки Питера. Мы решили не вести переговоров с террористами и забанили его. Игроки никуда не уходили )))
А еще со времен Battle.Net'а был один интересный человек из Румынии. Он был никем. Он не умел кодить, он плохо играл в доту, но у него были большие амбиции. Он мечатал сделать свою закрытую дота-лигу в Румынии. Он много раз просил меня подарить ему бота, просил научить написать такого бота, просил бота у наших конкурентов-соотечественников, через полгода у него откуда-то появился лига-бот в Battle.net. Оказалось, что он отправил руководителю лиги-конкурента ссылку на картинку, через которую залил ему трояна, и так он смог скачать себе копию бота у наших конкурентов.
Казалось бы можно его забыть, но он вслед за всеми перебрался в Garena, и открыл лигу там. Каким-то образом он и там смог открыть бота и вести какую-никакую румынскую лигу. Амбиции его не оставили, он добился покровительства администрации Garena, и ему дали высокие уровни доступа в Garena, он стал румынским представителем Garena, и стал довольно известным румыном в Garena))). Больше я о нём ничего не слышал
Спасибо за статью, было очень интересно почитать… Я видел и GGC, и Garena, много времени там провел, видел каких-то ботов, может даже Вашего, но тогда был молод и от программирования далек :)
UPD О, еще что вспомнил — для сайта GoodGame.ru некто делал похожую на Garena программу для организации игр по WarCraft III. Вроде бы название как-то с пандами было связано… До беты дошла разработка, но в «продакшн» не вышла, как я знаю. Я тогда вызвался помочь, но толков было практически ноль, разве что глупые вопросы «А как делать программы?» :) Помнится, на WxWidgets был UI, а пока я гуглил по фреймворку информацию, то и дело попадался Qt, и вот уже спустя некоторое время вернувшись к нему неплохо подрос по навыкам… Ну ладно, это лирика. Может быть тот умелец найдется на Хабре? Отзовись, было бы интересно пообщаться спустя столько времени.
Прочитал взахлёб. Автор, спасибо за интересную историю!
"«взлом» был лишь в одной комнате" — не совсем так. Я в свое время вдоволь наигрался с этой фишкой с чатом)
Для перехвата и подмены пакетов использовал WPE Pro)) очень много подставы для любителей побеседовать в общем чате. алсо была возможность менять имя в варкрафте)
Почему кстати не думали сделать в те времена что-то по типу iccup?
Сам сначала играл в ггц, потом друзья показали iccup(сезон2) и ггц был забыт как страшный сон.
iccup — замечательный проект, но он появился гораздо позже, и стал возможным, когда распространились Хост-боты, а народ устал от гарены. На тот момент хостботы были редкостью. Также, сказался недостаток знаний и опыта — хост боты и сервер PVPGN написаны на C++, которым я не владел.

Самым правильным и доступным решением было — создавать лигу на сайте, чтобы можно было начать игру и найти игроков через сайт, но времени на эту реализацию не хватило, мы в гарене просидели всего 1-2 года :)
Помню была платформа Dotalicious Gaming. Там вроде как похожая реализация была которую вы описали. Сначала на сайте рума заполнялась и только потом происходил автоматический запуск варкрафта с игрой. Позиционировали они себя скорее как лигу для серьезных игроков по сравнению с тем же iccup, на котором уровень игры стал падать.
Но не взлетело что-то. Все-таки на икапе было и удобнее как-то, игра стартовалась быстрее т.к. игроков было больше, да и правила были не такими жесткими. Думаю, в любом случае вам нужно было в итоге перейти от лиги к «платформе для всех» для монетизации и расширения. :)
Спасибо за статью! С ностальгией вспомнил времена SP и MYM лиг. На тот момент это был единственный способ поиграть в хоть как-то адекватную и соревновательную доту. Не думал, что за этими проектами такая серьезная история.
Безумно интересно. Спасибо
Классная статья!
От одной лишь картинки с заголовка сжалось сердце и появилось чувство ностальгии :)

Сколько счастливых часов было проведено за этой игрой…
image
Мне, как давнему любителю скриптовых игр в Warcraft 3 (в том числе ранних версий доты), было бы крайне интересно прочитать немного шире про техническую часть.
С чего начинал good game client, если там не было хост-ботов? Игры можно было начать, только если появлялся хост-игрок?
Как концептуально устроены хост-боты? Ведь хост-игрок занимает слот. Плюс эмулировать много таких — ресурсоёмкая задача.
Известно ли вам, как сейчас дела обстоят с хост-ботами? Я видел ботов сразу на несколько площадок, где совместно можно играть из iccup, garena и других, неизвестных мне клиентов.
Какое железо требуется для запуска хост-бота? А сотни?

Хост-бот не делает никаких сложных вычислений, он просто пересылает данные от одного клиента к другому.


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


Хост-игрок на боте занимает слот только в лобби. Перед стартом игры (или если набралось 12 игроков) он посылает всем клиентам сообщение что он отключился, поэтому в самой игре он участия не принимает. Хост-бот занимается только пересылкой пакетов.


Что же до good game client — там просто в варик встроили простой vpn-клиент без шифрования.

> С чего начинал good game client, если там не было хост-ботов?
Изначально он задумывался как площадка для игр в стандартный Warcraft 3 TFT, на развитие. В то время в Warcraft только так и играли, а дота только начала появляться. Этот клиент позволял игрокам создавать прямые udp-тоннели между друг другом, как это примерно делал Skype(но без upnp). Таким образом, необходимость в белом IP отпадает, главное возможность установить туннели.
Пользователь anetto немного лукавит, упоминая VPN — там VPN'ом и не пахнет(нету ни отдельного интерфейса, ни маршрутизации, а только обеспечение потребностей игры).

> Как концептуально устроены хост-боты?
anetto правильно сказал, что хостбот передаёт только команды пользователей, и текущее «время игры». Клиенты на местах сами рассчитывают что произошло, какой юнит где должен оказаться итд.

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

> Я видел ботов сразу на несколько площадок, где совместно можно играть из iccup, garena и других, неизвестных мне клиентов.
Хостботы (2010 года) (мы говорим про Ghost Bot) позволяли коннектиться как к официальному Bnet, так и сразу к нескольким PVPGN-серверам, или локальной сетью. Механика такая: когда кто-то создаёт игру в Bnet, или в PVPGN, или даже в Локальной сети, то чтобы подключиться в игру — нужно просто знать IP-адрес и порт (обычно 6112, но может меняться в настройках игры). Таким образом, список игр в Battle.Net и PVPGN это не более, чем список ip-адресов и портов, куда надо цепляться. Это могут быть ip из локальной сети, или интернета, самому клиенту Warcraft это без разницы, он просто заходит. Таким образом, один и тот же ip:port могли «спамиться» на разных серверах — как на Bnet, так и на pvpgn и garena, игроки просто туда заходили.

Еще одна интересная механика у Ghost бота была — auto-reconnect tool. Как известно, Warcraft 3 был создан очень давно, и в нём не доделали нормально процедуру переподключения к игре, и это была проблема. Создатель Ghost сделал еще одну тулзу — она подменяла все списки ip:port в battle.net на свои локальные 127.0.0.1:port, и пускала трафик через себя. Если удалённый хост был запущен на Ghost бот, то при разрыве соединения — эта тулза пыталась переподключиться к серверу, в то же время поддерживая соединение с клиентом Warcraft, чтобы тот не рвал соединение, а пытался переподключиться. Эта тулза также используется на iccup.

> Какое железо требуется для запуска хост-бота?
Т.к. эта прога передаёт (ретранслирует) только команды игроков, и время игры, а не высчитывает всех персонажей или их здоровье, то железо требуется простое. Самое главное, на чём нужно было сосредоточиться — это пинг.
Очень классные статьи. Сам как дотер читал их на одном дыхании. Готов дальше и дальше читать подобные статьи. Спасибо.
Ничего не понял, что за боты такие. Но читать было чертовски интересно.
Спасибо Тимсу за код, расширил свои знания, когда он как то мне скинул код бота.
Ток вот не понял, зачем он в батлнете из этой статьи с другом в 3 часа ночи тестили бота.
Когда я писал своего бота, было удобней его тестить на PvPGN сервере который стоял прямо на домашней машине. Запуская сразу 20 стелсботов которые имитируют пользователей на канале. В гарену правда я не импортировал бота, так как время доты умирало уже на тот момент, что она сейчас и сделала, ведь лига легенд лучшая игра галактики. :buba: 00)00 сорян за запятые бесят они в русском языке после инглиша.
Любопытная история. А как же продолжение?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории