Как «на компьютере Мельничка» создают нейронку, которая помогает игрокам в киберспорте

15 мая 2018, 09:00

В материале про минский хакерспейс мы писали о том, как в стенах клуба зарождаются новые проекты. Так, основатели Battle.Guru тренируют нейросеть для киберспорта на подаренном Юрием Мельничком компьютере для машинного обучения. Разработчик Владислав Романовский и студент Евгений Демидович рассказали dev.by, как меняют правила игры.

Читать далее

Евгений Демидович (слева) и Владислав Романовский

Илон Маск повысил интерес к искусственному интеллекту в киберспорте

Идея создать продукт для киберспорта появилась у Владислава два года назад. Его брат — стартапер, поэтому мысль «а чем я хуже?» и опыт в запуске других проектов подстёгивали программиста к созданию своей компании. Первая идея — социальная сеть для геймеров — провалилась. Парня это не испугало, и он начал работу над сервисом по поиску напарников для игры в Dota.

— После первых трудностей команда разбежалась, но я не сдался. Пришёл в Гродненский государственный университет им. Янки Купалы и попросил у декана толкового студента, — рассказывает Владислав. — Он порекомендовал мне звезду университета, призёра многих соревнований по программированию и анализу данных — IDAO, Calculus World Cup. Оказалось, этот парень не любитель компьютерных игр, но мне удалось его заинтересовать.

После того, как в лаборатории OpenAI Илона Маска создали бота, который победил топового игрока в Dota, интерес к использованию искуственного интеллекта в киберспорте вырос, и это тоже мотивирует, подчёркивает Владислав.

Киберспорт сейчас напоминает футбол когда-то, считают разработчики: пришло телевидение, толпы болельщиков, вокруг спортивной дисциплины появились деньги. На Олимпийских играх в Китае киберспорт хотят признать официальной дисциплиной. В Беларуси интерес к киберспорту только просыпается, и стоять у истоков — как минимум занятно.

Не читерство, а анализ игры противника

Сейчас Battle.Guru — это, с одной стороны, сервис, который помогает находить напарника для игры. А с другой — точечные решения, которые анализируют игру как противника, так и команды, их слабые/сильные стороны и позволяют находить новые стратегии и тактики боя. В будущем эти направления будут интегрированы в одну SaaS-платформу.

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

Со слов стартаперов, одна из их целей — решить проблему токсичности аудитории в играх, характерную для стран СНГ. «Из-за хамства русскоязычных игроков происходит большой отток пользователей, — поясняет собеседник. — Dota даже выпустила инструмент для новичков, который подсказывает, что делать, чтобы они не тормозили и другие игроки не злились».

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

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

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

Техническая реализация

В платформе Battle.Guru использована микросервисная архитектура, в которой самое сложное — заставить микросервисы работать как часы в режиме реального времени, считают разработчики. Бэкенд сделан на PHP и частично на Node.js. В базах данных использован Redis для кэширования, RabbitMQ для очередей сообщений между компонентами, Apache Cassandra для больших данных, MySQL для хранения простых данных платформы.

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

страница сервиса по подбору напарников

Интеграцию с чат-ботом делают при помощи Microsoft Bot Framework (в перспективе хотят делать своё кроссплатформенное решение). В планах — создать такую интеграцию, чтобы сервисом можно было пользоваться из любой экосистемы. Например, через виджет в Twitch.

Львиную долю разработки занимает обучение нейронной сети, которую студент Евгений пишет на Python с использованием Keras и TensorFlow. Данные команда берёт из публичных API, например, ресурса Open Dota или Steam. Нейронке «скармливают» игровые реплеи, и она, анализируя вражеские матчи, даёт рекомендации и предсказания командам.

— Мне потребовалось, наверное, года два, чтобы освоить машинное обучение. Хотя у меня был неплохой бэкграунд, я выступал на международных олимпиадах по математике, — рассказывает Евгений. — Дело оставалось только за практикой, которую я получил на соревнованиях по машинному обучению (том же Kaggle). Теперь могу решать практически любые задачи.

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

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

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

«Чего вы здесь сидите, поезжайте в Долину»

— Я всегда говорю, что аутсорс — это хорошо, он двигает нашу страну вперёд. Но с людьми, которые долго в нём работают, очень сложно строить бизнес, — выражает своё мнение стартапер. — Найти партнёров было непросто, разработчики не хотят терять нагретые места — даже несмотря на то, что ты предлагаешь дивиденды и роль ведущего CTO. В Кремниевой долине люди за любой кипиш, кроме голодовки, а у нас нет.

Совмещать основную работу и стартап, конечно, сложно. Но никто не говорил, что будет легко. Пока мы делали ядро платформы, приходилось работать по 14-16 часов в день, уже глаз дёргался, на людей бросаться хотелось. На этом фоне выскакивали разные болячки. 

Чтобы проект уверенно себя чувствовал на начальных этапах, по нашим подсчётам, нужно $100 тысяч.

Поднять инвестиции под наш проект в Беларуси просто нереально: большинство инвесторов не понимают этот рынок. Общались с Васей Шинкаренко, основателем успешного стартапа Storyline, он говорит: чего вы здесь сидите, вам нужно в Кремниевую долину ехать! Но пока пробуем искать инвестиции в СНГ и на Кипре.

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

Как покорить Москву и не попасть в передрягу

Недавно ребята ездили покорять Москву.

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

А вот переговоры с потенциальными заказчиками, напротив, прошли успешно. Стартаперы получили четыре оффера, сейчас обсуждают сметы и NDA.

За недолгую поездку ребята успели посетить Чемпионат EPICENTER XL по Dota 2, где разыгрывали призовой фонд в $1 млн. На трибунах было около 4 тысяч зрителей, а онлайн следило за игрой около 15 млн человек: «Основываясь на нашем опыте, мы предсказали все победы, ошиблись только один раз».

— Пока всё складывается лучше, чем мы предполагали. Люди охотно идут на контакт. К примеру, уже после чемпионата на закрытой вечеринке один парень, игровой аналитик, завёл нас в курилку и говорит: «Ребята, расскажите подробнее, что у вас есть, мне это срочно нужно». Теперь, пообщавшись с огромным количеством людей, мы уверены, что наш стартап жизнеспособен.

Обсудить со стартаперами будущее искусственного интеллекта в киберспорте можно в Telegram: @VladRomanovsky  

 

Фото: Андрей Давыдчик

Обсуждение