Inicie o Mini AI Cup # 3. Batalha mecânica em espaços confinados



Desde 2012, realizamos o concurso anual de programação AI AI Cup para inteligência artificial. Este ano, começará um pouco mais tarde - não em novembro, mas em meados de dezembro. E para aqueles que desejam preparar ou avaliar seu nível, realizamos regularmente mini-competições de Mini AI Cups. As tarefas são um pouco mais simples do que as oferecidas na RAIC, mas não menos emocionantes.

E hoje abrimos o registro para a Mini AI Cup # 3 com base no Drive AHEAD.

Brevemente sobre o Mini AI Cup anterior




A Mini Taça AI anterior foi implementada como um análogo do jogo amado por muitos Agar.io, adaptado para lançar bots autônomos, lutando pela oportunidade de sobreviver. O resultado foi bastante amplo - mais de 1200 novos participantes foram registrados e o número de jogadores ativos ultrapassou 300 pessoas. Enquanto os robôs literalmente se alimentavam, participantes e espectadores comiam baldes de pipoca. A maneira como o bot tenta se esquivar, astuto, atacar das posições mais vantajosas, como teme pela vida e se esconde dos oponentes, causa involuntariamente o medo de sua vida após décadas.

No final do artigo, você encontrará cinco links úteis para a análise de estratégias dos participantes.

Gostaríamos de agradecer a todos pelo feedback e aos nossos colaboradores pela ajuda na finalização dos problemas técnicos. Valorizamos nossa comunidade e toda vez que tentamos tornar o campeonato mais interessante.

Regras do jogo do novo campeonato


Dessa vez, o inspirador ideológico da competição foi um brinquedo chamado Drive Ahead - uma arcada móvel furiosa sobre a batalha em carros em espaços confinados. A mecânica das batalhas neste jogo parecia interessante e não trivial, e decidiu tentar repeti-lo para o campeonato.



Aqui está uma das cartas no campo de jogo. O jogador é convidado a escrever uma estratégia para a IA, que dirigirá o carro e tentará desativar o carro do oponente pressionando um botão especial em seu corpo. Isso parece simples? Boa sorte na batalha com o Crazy Loaf!



No total, três carros estão disponíveis: Pão, VAZ 2108 e outro carro secreto, que você verá em um teste beta com diferentes skins.

A máquina possui muitos parâmetros que podem ser alterados. Por exemplo: tração, velocidade máxima, peso, parâmetros da roda (peso, tamanho, posição), parâmetros da mola de suspensão. Atualmente, 6 mapas diferentes estão disponíveis.

Os jogos chegam a 5 mortes; quem sobreviveu é o vencedor. Empates são possíveis. Uma restrição foi colocada no topo de uma sessão de jogo. Se durante 600 ticks (um tick é uma unidade de tempo no mundo do jogo) o vencedor não será revelado, a quantidade de lixo começará a crescer no mapa. Para cujo botão o lixo fica primeiro, ele perde.

Mecanismo de física


Para minimizar os riscos ao desenvolver a mecânica básica do jogo, decidimos usar o mecanismo de física Chipmunk como base. Este é um mecanismo popular de plataforma aberta de código aberto escrito em C, usado em muitos brinquedos móveis e construído em outros mecanismos como Cocos2D, Apportable e Marmalade.

O Chipmunk permite vincular-se a outras linguagens de programação. A lista completa é apresentada no site oficial . Operamos o motor para cima e para baixo, pareceu-nos bastante agradável.

A mecânica


A mecânica é escrita no Python 3.4 usando o mecanismo Pymunk e o visualizador Pyglet. Quando o campeonato começar, o localrunner (simulador local) estará imediatamente disponível no repositório do Github , mas será necessário instalar todas as dependências para ele e o próprio Python. O Localrunner é inicializado completamente no console, suporta a gravação de jogos, exibindo informações de depuração e tocando com o teclado.

Uma API foi criada para você, de acordo com a qual a estratégia do jogador, escrita no seu idioma favorito, lê (de STDIN) as mudanças no estado do mundo e envia (para STDOUT) suas ações. Assim, o usuário interage com o jogo.

Durante a competição, os participantes podem criar sessões de jogos de dois tipos: classificação (jogo por pontos, do qual a lista de finalistas depende) e sem classificação (jogo "exatamente assim" para testar sua estratégia em ação).

O controle da máquina será simples apenas no primeiro estágio: esquerda, direita e desligue o motor. Nas classificações e nos jogos finais, novas oportunidades serão adicionadas para aumentar o número de estratégias.

Características técnicas


Apoiamos o trabalho com Go 1.10, Java 1.8, C # Mono 4.3, NodeJS 9, C ++ 11, C ++ 17, Python 2.7 / 3.5, php7, Kotlin, Haskell, Scala, Rust e Elixir.

Tentamos tornar a adição de novos idiomas o mais simples possível - precisamos apenas de um arquivo Docker com um modelo específico. Se você deseja que seu idioma favorito apareça na lista de idiomas suportados, basta fazer um pedido pull e nós o testaremos.

Hoje, a quantidade máxima de código fonte para uma estratégia é de 20 megabytes no formato arquivado. Além disso, temos mais uma restrição no número de soluções enviadas por dia - 20 unidades.

As regras completas do campeonato serão publicadas neste repositório no momento em que a competição começar.

Horário


30 de agosto - começa o teste beta da competição, os jogadores escrevem as primeiras decisões para se sentirem confortáveis ​​e se prepararem para os jogos de classificação;
6 de setembro - jogos de classificação abertos;
20 de setembro - os jogos de classificação param, N participantes com as melhores decisões vão para a final e têm um pouco de descanso para finalizar suas decisões (apenas no fim de semana);
24 de setembro - partidas finais entre as decisões dos melhores jogadores.

Prémios


Primeiro lugar - o novo MacBook Air;
Segundo e terceiro lugar - Apple iPad;
Quarto, quinto, sexto lugar - Samsung Gear S3.

Acreditamos que o participante tem o direito de pedir outra doação de valor equivalente em troca. Se você tiver idéias sobre como atualizar a lista de prêmios, deixe-os nos comentários abaixo do artigo, seremos gratos.

Além disso, nosso táxi Taximobil complementará os concorrentes TOP10 por um desconto de 250 rublos * 20 viagens / mês.

Todos os jogadores qualificados para a final receberão camisetas com a marca do nosso campeonato.

Vamos lá


O registro está aberto: aicups.ru . Para aqueles que querem se tornar parte de nossa comunidade amigável, conversamos no Telegram - @aicups , um canal oficial de informações para os campeonatos - @mrgchamps e um grupo VK .

Artigos úteis - análise do último campeonato:


  1. Alexey Dichkovsky ( @DragoonXen ) - “Mini taça ai 2 ou quase AgarIO - o que poderia ser feito para vencer”
  2. Alexander Gusev ( @Geotyper ) - “Criando um bot para participação na minicopa da AI 2018 com base em uma rede neural recorrente” , “(parte 2)” , “(parte 3)”
  3. Alexander Gusev ( @Geotyper ) - “Criando um bot para participar da mini copa de IA. Experiência de GPU »

Source: https://habr.com/ru/post/pt421397/


All Articles