Consejos para construir una IA para un juego de carreras en 2D

10

Tengo un proyecto escolar para construir una IA para un juego de carreras en 2D en el que competirá con varias otras IA ( sin colisión ).

Se nos da una imagen de mapa de bits en blanco y negro de la pista de carreras, se nos permite elegir estadísticas básicas para nuestro automóvil (manejo, aceleración, velocidad máxima y frenos) después de recibir el mapa. La IA se conecta al servidor del juego y le da varias veces un segundo número para la aceleración y dirección actuales. El lenguaje que elegí es C ++, por cierto. Las preguntas son:

¿Cuál es la mejor estrategia o algoritmo (ya que quiero intentar ganar)? Actualmente tengo en mente algunas ideas encontradas en la red y una o dos propias, pero me gustaría antes de comenzar a codificar que mi perspectiva es una de las mejores. ¿Qué buenos libros hay al respecto? ¿A qué sitios debo referirme?


fuente
1
Dependería de la precisión de la simulación física. Si no hay física, iría a toda velocidad todo el tiempo ... de lo contrario, comenzaría a reducir la velocidad antes de cada turno y aceleraría 2/3 a través del turno.
Nate

Respuestas:

2

Configure una IA básica, luego configure una API para manejar su propio automóvil. Si puede vencerlo, debe configurar un algoritmo de grabación que luego pueda reforzar positivamente su IA. Esta podría ser una red neuronal para modificar las acciones de tu IA. Como el frenado gradual en una esquina, etc.

¿Puedes usar bibliotecas externas en tu proyecto? Si es así, le sugiero que mire a FANN . Es una biblioteca de red neuronal rápida; para ahorrarte escribiendo el tuyo. Si necesita el código fuente, siempre puede escribirlo usted mismo, sin embargo, puede llevar algún tiempo.

caviar desacelerado
fuente
1
Me parece excesivo.
o0 '.
2
@ Lo'oris Definitivamente, especialmente dado que este es probablemente un proyecto escolar bastante simple con un tiempo limitado para crear una solución, no creo que el aprendizaje supervisado sea el camino a seguir, solo por razones prácticas.
Ray Dey
No es tan difícil de configurar, y dependiendo del nivel del tema que está haciendo el OP, este enfoque no necesariamente puede ser excesivo. Es lo que haría (y he hecho), es divertido y puede ser bastante simple para lograr resultados efectivos. La parte más difícil es determinar qué se debe hacer en el preprocesamiento ...
desaceleratedcaviar
2

Si puede preprocesar el mapa antes de ejecutar la IA, simplemente calcule las mejores líneas de carrera a través de segmentos del mapa.

Esta publicación en GameDev.net tiene varias sugerencias.

Los libros de AI Wisdom tienen MUCHOS artículos sobre carreras de IA. Definitivamente los recomendaría, especialmente el primero que tiene artículos que describen cómo puedes representar el mapa como una estructura de datos dentro de tu IA.

Otro método que he visto es el aprendizaje de refuerzo simple (Q-learning), que probablemente tomará unos pocos miles de iteraciones para obtener el camino óptimo. Se describe en este documento: http://www.cs.ubc.ca/~zhijin/540report.pdf

Ray Dey
fuente