1 pontos por GN⁺ 2024-11-04 | Ainda não há comentários. | Compartilhar no WhatsApp

LAN party

  • Há 16 anos, realizamos uma LAN party todos os anos com amigos.
  • A festa dura de 4 a 5 dias, com participação de até 12 pessoas.
  • Jogamos principalmente Dota 2, mas também curtimos vários outros jogos, como Counter-Strike e Warcraft 3.
  • Como era difícil escolher os times, acabei desenvolvendo um sistema automatizado.

Dota 2

  • Dota 2 é jogado em 5v5, e times desequilibrados deixam a partida menos divertida.
  • Como a diferença de habilidade entre os participantes é grande, montar os times é difícil.

Como os times eram escolhidos

  • Usávamos um sistema em que dois líderes escolhiam os jogadores alternadamente.
  • Porém, esse método levava muito tempo e acabava ficando entediante, porque times parecidos eram formados com frequência.

Problemas da escolha manual de times

  • Leva muito tempo e fica entediante.
  • Times parecidos são formados com frequência.
  • Ninguém quer assumir o papel de líder.
  • Times desequilibrados são formados com frequência.

Resolvendo com código

  • Depois de coletar os dados, os times passaram a ser gerados automaticamente no Colab usando um sistema de rating Elo.
  • Cada jogador começa com 1000 pontos de Elo, ganha 20 pontos ao vencer e perde 20 pontos ao perder.

Melhoria 1: passar pelos dados várias vezes

  • No sistema Elo, vencer um jogador com Elo mais alto rende mais pontos.
  • O Elo é calculado passando pelos dados várias vezes.

Melhoria 2: transformar em algo parecido com um modelo de ML

  • O Elo é usado como modelo para prever a probabilidade de vitória de um time.
  • Uma função de perda L2 é definida, e o modelo é otimizado por meio de backpropagation.

Melhoria 3: transformar os resultados históricos em probabilísticos

  • Para evitar overfitting, a probabilidade de vitória nos jogos históricos é definida em 75% ou 95%.
  • Com isso, o modelo consegue generalizar sem memorizar todas as partidas.

Resultado

  • O novo sistema consegue prever a probabilidade de vitória mesmo com tamanhos de time desequilibrados.
  • A primeira escalação para a próxima LAN party está pronta.

Ainda não há comentários.

Ainda não há comentários.