Conseils pour créer une IA pour un jeu de course 2D


10

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?

2d  c++  ai  racing 

1
Cela dépendrait de la précision de la simulation physique. S'il n'y a pas de physique, j'irais à pleine vitesse tout le temps ... sinon, je commencerais à ralentir avant chaque virage et à accélérer 2/3 pendant le virage.
Nate

Réponses:


2

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.


1
Semble exagéré pour moi.
o0 '.

2
@ Lo'oris Certainement, d'autant plus que c'est probablement un projet scolaire assez simple avec un temps limité pour créer une solution, je ne pense pas que l'apprentissage supervisé soit la voie à suivre, juste pour des raisons pratiques.
Ray Dey

Ce n'est pas si difficile à mettre en place, et selon le niveau du sujet que le PO fait, cette approche n'est pas nécessairement exagérée. C'est ce que je voudrais (et aurais fait), c'est amusant et peut être assez simple pour obtenir des résultats efficaces. La partie la plus difficile est de déterminer ce qui doit être fait dans le prétraitement ...
deceleratedcaviar

2

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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.