Я написал скрипт для поиска лучших игроков в WoW. Помогли рабочие навыки
История от backend-разработчика Sports.ru.
Всем привет, я backend-разработчик Sports.ru и активный рейдер World of Warcraft гильдии «Знание тактики». Суммарно я играю в WoW примерно 6 лет, а серьезнее подходить к игре начал в последние 2 года.
Для успешного рейдинга и взятия очередных «кромок» нужны сильные люди, и этих сильных людей нужно где-то найти. Первое, что приходит в голову – просматривать логи и искать фиолетовое, а иногда находить розовое. Такой ручной поиск отнимает много времени и сил, плюс сказывается человеческий фактор: можно просто пропустить хорошего игрока.
Обычный сценарий выглядел так: ты хочешь забрать сильных игроков из гильдий, которые они переросли. Например, мы убили всех боссов в мифической сложности, а какая-то гильдия только 7 из 9, но в этой гильдии есть игроки, которые сильно выделяются на фоне других, и им, соответственно, может быть интересно перейти в коллектив сильнее и получить больше прогресса и роста. Чтобы в ручном режиме найти таких игроков, нужно на сайте wowprogress.com разыскать интересующие гильдии, взять ее состав и руками проверить логи каждого игрока. Это очень утомительно, и спустя пары часов такой скучной работы легко кого-то пропустить или неправильно оценить.
Для оптимизации нашего рекрутинга я написал скрипт, который собирает информацию по всем игрокам сервера. Далее они отсеиваются согласно прописанным правилам. Самые очевидные – уровень логов, были ли логи накручены (нам важны именно логи освоения), личный прогресс и прогресс гильдии; также мы смотрим на возможность играть в офф и спеке и другие метрики.
Все результаты собираются в google sheet, по которой уже проводится рекрутинг, имен не будет)
По итогу я собрал стату по разным ролям (дд, хил, танк) всех игроков сервера и отсортировал только тех, кто был бы нам интересен. На код я потратил примерно 2 дня, а сбор данных скриптом занял примерно 1 час фоновой работы.
Зато теперь мы можем в любой момент обновить наши данные по игрокам, что полностью исключает ручную работу.
Но не обошлось из без проблем. В изначальном плане я хотел автоматически собирать игроков из открытых данных с wowprogress, но почти сразу получил бан от Cloudflare (защитник сайтов от ботов и парсеров). Из-за этого пришлось отказаться от автоматического сбора составов гильдий. Решение нашлось быстро: руками собрать составы гильдий в отдельную google-таблицу и собирать данные уже по этой таблице, а не напрямую с wowprogress. Такая подготовительная ручная работа заняла примерно 10-15 минут: оставалось лишь натравить готовый скрипт на таблицу.
На этом я не остановился. Прямо сейчас исследую возможность получение battle tag пользователя для более быстрой коммуникации, так как сейчасвсе обещание происходит через игровой чат.