J'ai un projet d'école pour construire une IA pour un jeu de course 2D dans lequel il rivalisera avec plusieurs autres IA ( pas de collision ).
On nous donne une image bitmap en noir et blanc de la piste de course, nous sommes autorisés à choisir les statistiques de base pour notre voiture (tenue de route, accélération, vitesse maximale et freins) après avoir reçu la carte. L'IA se connecte au serveur du jeu et lui donne plusieurs fois par seconde des chiffres pour l'accélération et la direction actuelles. Le langage que j'ai choisi est C ++, soit dit en passant. Les questions sont:
Quelle est la meilleure stratégie ou algorithme (puisque je veux essayer de gagner)? J'ai actuellement en tête quelques idées trouvées sur le net et une ou deux à moi, mais j'aimerais avant de commencer à coder que ma perspective est l'une des meilleures. Quels sont les bons livres à ce sujet? À quels sites dois-je faire référence?
Réponses:
Configurez une IA de base, puis configurez une API pour gérer votre propre voiture. Si vous pouvez le battre, vous devez configurer un algorithme d'enregistrement qui peut ensuite renforcer positivement votre IA. Cela pourrait être un réseau neuronal pour modifier les actions de votre IA. Tels que le freinage progressif dans un coin, etc.
Êtes-vous autorisé à utiliser des bibliothèques externes dans votre projet? Si oui, je vous suggère de regarder FANN . C'est une bibliothèque de réseau neuronal rapide; pour vous éviter d'écrire le vôtre. Si vous avez besoin du code source, vous pouvez toujours l'écrire vous-même, cela peut toutefois prendre un certain temps.
la source
Si vous pouvez prétraiter la carte avant d'exécuter l'IA, alors calculez simplement les meilleures lignes de course à travers des segments de la carte.
Cet article sur GameDev.net contient un certain nombre de suggestions.
Les livres AI Wisdom contiennent BEAUCOUP d'articles sur les courses d'IA. Je les recommanderais certainement, en particulier le premier qui contient des articles décrivant comment vous pouvez représenter la carte en tant que structure de données au sein de votre IA.
Une autre méthode que j'ai vue est l'apprentissage par renforcement simple (Q-learning), qui prendra probablement quelques milliers d'itérations pour obtenir le chemin optimal. Il est décrit dans cet article: http://www.cs.ubc.ca/~zhijin/540report.pdf
la source
Voici une excellente référence pour conduire l'IA: Comportements de pilotage pour les personnages autonomes . Publié ici pour référence pour tout le monde. Il y a beaucoup d'informations pour vous aider à démarrer, mais aussi beaucoup d'informations, alors ne vous enlisez pas trop dans les détails.
la source