2009-09-05 5 views
1

Je cherche à développer un lecteur IA pour un jeu simple que j'ai créé en C#. Je vais créer une population de robots et les faire évoluer au fil des générations. Ce que je me demandais, c'est qu'il existe des cadres qui pourraient être bons pour ce genre de test/développement. Idéalement, je voudrais quelque chose que je pourrais brancher n'importe quel type de jeux et dire, OK, donc une population de X l'exécute sur Y générations et trace les résultats pour moi. Je pensais à la façon dont je créerais quelque chose qui ferait cela pour moi et qui me permettrait de le réutiliser plus tard pour différents projets d'IA et tout ce que je pouvais penser était d'avoir un code de base et quelques contrats d'interface que le jeu et l'IA utiliseraient pour que le serveur puisse le script.IA testing framework

Que pensez-vous, est-ce que quelqu'un a une expérience pratique de ce genre de chose?

+1

Je pense que vous devriez spécialiser vos besoins, car pour l'instant, vous attendez d'un tel framework pour savoir automatiquement quelles sont les règles du jeu, comment manipuler les bots, comment juger les performances de vos robots, peut-être devriez-vous commencer une interface générale, qui ferait la charte, mais les bots eux-mêmes (ou un mécanisme dans le jeu) devraient être le juge, le suivi des performances, des données supplémentaires (une sorte de logs, ce que les robots pensent et pourquoi) comportements) –

+0

Je suis d'accord ... J'espérais que je pourrais avoir une application de base qui permettrait de gérer la cartographie et les tours, etc. Et une interface devrait être mise en œuvre qui traitait de contrôler le jeu et les robots AI. Je voulais un moyen d'avoir un projet AI Projet de projet de jeu et un projet de cadre de test. – Jon

Répondre

2

C'est ce que l'on appelle un cadre d'algorithme génétique. Toute saveur est disponible via google.

+0

Salut ima, merci pour le nom. Connaissez-vous celui que vous recommanderiez? Merci encore. – Jon

+0

Je n'ai pas assez d'expérience dans ce domaine pour conseiller une solution spécifique – ima

+0

Merci quand même ... vous m'avez donné une direction à suivre. – Jon

0

Je n'ai pas l'expérience de l'IA, mais personnellement, je commencerais par un cadre de test unitaire standard. Vous pouvez étendre vos classes de test (ou même étendre de nombreux frameworks) avec des méthodes d'assistance si nécessaire.

Retournement à l'annexe dans The Art of Unit Testing de Osherove, je commencerais avec NUnit et essayer MbUnit ou xUnit si elle ne répondait pas à mes besoins.

Et je fais écho aux commentaires de Ravadre ci-dessus.

EDIT: J'ai relu votre article original, et je ne suis pas sûr que ma réponse était suffisante. Alors que je préconise fortement les tests unitaires (ou mieux encore, TDD) pendant le développement, vous semblez chercher un moyen de dire quels robots ont le plus de succès. Cela va au-delà des tests unitaires et (sans doute) au-delà des tests d'intégration. Mon soupçon (non testé) est qu'il ne serait pas exceptionnellement difficile d'écrire un harnais pour votre code à partir de zéro qui ferait exactement ce que vous voulez - exécuter plusieurs itérations/permutations et afficher les résultats. Les frameworks de test vont vous donner des résultats de réussite/échec, mais ce n'est pas tout ce que vous voulez. Si vous créez des interfaces pour vos robots et jeux, vous pouvez facilement les brancher.

+0

Salut Will, je suis entièrement d'accord avec les tests unitaires, c'est un must. Là où mon idée diffère (comme vous le mentionnez), c'est que je veux faire beaucoup de tests, par exemple un seul bot peut jouer 1000 parties et en afficher les résultats (score par exemple). J'utiliserais une sorte de test de condition physique pour classer les bots après qu'ils aient tous joué 1000 parties. Puis les faire évoluer et faire un autre tour de jeux. – Jon

Questions connexes