Lanza la Mini AI Cup # 3. Batalla de máquinas en espacios reducidos



Desde 2012, llevamos a cabo la competencia anual de programación AI AI Cup por inteligencia artificial. Este año comenzará un poco más tarde, no en noviembre, sino a mediados de diciembre. Y para aquellos que quieran preparar o evaluar su nivel, regularmente realizamos mini-competiciones Mini AI Cups. Las tareas son un poco más simples que las ofrecidas en RAIC, pero no menos emocionantes.

Y hoy abrimos el registro para Mini AI Cup # 3 basado en Drive AHEAD.

Brevemente sobre la anterior Mini AI Cup




La pasada Mini AI Cup se implementó como un análogo del juego querido por muchos Agar.io, adaptado para lanzar bots autónomos que luchan por la oportunidad de sobrevivir. Resultó ser a gran escala: se registraron más de 1200 nuevos participantes y el número de jugadores activos superó las 300 personas. Mientras que los bots literalmente se comieron entre sí, los participantes y los espectadores comieron cubos de palomitas de maíz. La forma en que el robot intenta esquivar, astutar, atacar desde las posiciones más ventajosas, cómo teme por su vida y se esconde de los oponentes, involuntariamente le causa miedo por su vida después de décadas.

Al final del artículo encontrará cinco enlaces útiles para el análisis de estrategias de los participantes.

Nos gustaría agradecer a todos por los comentarios, así como a nuestros colaboradores por su ayuda para finalizar los problemas técnicos. Valoramos nuestra comunidad y cada vez que intentamos hacer que los campeonatos sean más interesantes.

Reglas de juego del nuevo campeonato.


Esta vez, el inspirador ideológico de la competencia fue un juguete llamado Drive Ahead, un arcade móvil furioso sobre la batalla en autos en espacios reducidos. La mecánica de las batallas en este juego parecía interesante y no trivial, y decidió intentar repetirla para el campeonato.



Aquí está una de las cartas en el campo de juego. Se invita al jugador a escribir una estrategia para la IA, que conducirá el auto e intentará desactivar el auto del oponente presionando un botón especial en su cuerpo. ¿Suena simple? ¡Buena suerte en la batalla con Crazy Loaf!



En total, hay tres autos disponibles: Loaf, VAZ 2108 y otro auto secreto, que verás en una prueba beta con diferentes diseños.

La máquina tiene muchos parámetros que se pueden cambiar. Por ejemplo: conducción, velocidad máxima, peso, parámetros de la rueda (peso, tamaño, posición), parámetros del muelle de suspensión. Actualmente hay 6 mapas diferentes disponibles.

Los juegos van a 5 muertes; el que sobrevivió es el ganador. Los sorteos son posibles. Se colocó una restricción en la parte superior de una sesión de juego. Si durante 600 ticks (un tick es una unidad de tiempo en el mundo del juego) el ganador no será revelado, entonces la cantidad de basura comenzará a crecer en el mapa. A cuyo botón llega primero la basura, él perderá.

Motor de física


Para minimizar los riesgos al desarrollar la mecánica básica del juego, decidimos tomar como base el motor de física Chipmunk. Este es un popular motor multiplataforma de código abierto escrito en C, utilizado en muchos juguetes móviles y construido en otros motores como Cocos2D, Apportable y Marmalade.

Chipmunk le permite unirse a otros lenguajes de programación. La lista completa se presenta en el sitio web oficial . Hicimos funcionar el motor de arriba a abajo, nos pareció bastante agradable.

La mecanica


La mecánica está escrita en Python 3.4 usando el motor Pymunk y el visualizador Pyglet. Cuando comience el campeonato, localrunner (simulador local) estará inmediatamente disponible en el repositorio de Github , pero será necesario instalar todas las dependencias para él y Python. Localrunner arranca completamente desde la consola, admite la grabación de juegos, muestra información de depuración y juega con el teclado.

Se creó una API para usted, según la cual la estrategia del jugador, escrita en su idioma favorito, lee (de STDIN) los cambios en el estado del mundo y envía (a STDOUT) sus acciones. Por lo tanto, el usuario interactúa con el juego.

Durante la competencia, los participantes pueden crear sesiones de juego de dos tipos: calificación (juego por puntos, de la cual depende la lista de finalistas) y calificación (juego "así" para probar su estrategia en acción).

El control de la máquina será simple solo en la primera etapa: izquierda, derecha y apague el motor. En los juegos de clasificación y finales, se agregarán nuevas oportunidades para aumentar el número de estrategias.

Características técnicas


Admitimos trabajar con 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 y Elixir.

Intentamos hacer que agregar nuevos idiomas sea lo más simple posible: solo necesitamos un archivo Docker con una plantilla específica. Si desea que su idioma favorito aparezca en la lista de los admitidos, simplemente haga una solicitud de extracción y lo probaremos.

Hoy, la cantidad máxima de código fuente para una estrategia es de 20 megabytes en forma archivada. Además, tenemos una restricción más en el número de soluciones enviadas por día: 20 piezas.

Las reglas completas del campeonato se publicarán en este repositorio en el momento en que comience la competencia.

Horario


30 de agosto : comienza la prueba beta de la competencia, los jugadores escriben las primeras decisiones para sentirse cómodos y estar listos para calificar juegos;
6 de septiembre - juegos de calificación abiertos;
20 de septiembre : se detienen los juegos de clasificación, N participantes con las mejores decisiones van a la final y obtienen un pequeño respiro para finalizar sus decisiones (solo el fin de semana);
24 de septiembre : partidos finales entre las decisiones de los mejores jugadores.

Premios


Primer lugar : el nuevo MacBook Air;
Segundo y tercer lugar : iPad de Apple;
Cuarto, quinto, sexto lugar : Samsung Gear S3.

Creemos que el participante tiene derecho a solicitar otro obsequio de valor equivalente a cambio. Si tiene ideas sobre cómo actualizar la lista de premios, déjelas en los comentarios del artículo, se lo agradeceremos.

Además, nuestro taxi Taximobil complementará a los competidores TOP10 por un descuento de 250 rublos * 20 viajes / mes.

Todos los jugadores que se clasificaron para la final recibirán camisetas de marca de nuestro campeonato.

Vamos


El registro está abierto: aicups.ru . Para aquellos que quieran formar parte de nuestra comunidad amigable, tenemos un chat en Telegram - @aicups , un canal oficial de información para los campeonatos - @mrgchamps y un grupo VK .

Artículos útiles - análisis del último campeonato:


  1. Alexey Dichkovsky ( @DragoonXen ) - "Mini ai cup 2 o casi AgarIO: qué se puede hacer para ganar"
  2. Alexander Gusev ( @Geotyper ) - "Crear un bot para participar en la mini copa AI 2018 basado en una red neuronal recurrente" , "(parte 2)" , "(parte 3)"
  3. Alexander Gusev ( @Geotyper ) - “Creando un bot para participar en la mini copa AI. Experiencia GPU »

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


All Articles