2009-09-05 5 views
1

Я ищу разработку AI-проигрывателя для простой игры, которую я создал на C#. Я буду создавать популяцию ботов и развить их на протяжении поколений.AI testing framework

Что мне было интересно, есть ли какие-либо рамки, которые могут быть хороши для такого рода тестирования/разработки. В идеале мне хотелось бы что-то, что я мог бы подключить к любому типу игр и сказать: «ОК», поэтому популяция X запускает его по Y поколениям и отображает результаты для меня.

У меня возникла мысль о том, как я создам что-то, что сделает это для меня, и позвольте мне повторно использовать это позже для разных проектов AI, и все, что я мог подумать, это иметь какой-то базовый код и некоторые интерфейсные контракты что игра и ИИ будут использоваться так, чтобы сервер мог ее скриптировать.

Каковы ваши мысли, есть ли у кого-нибудь практические навыки такого рода вещей?

+1

Я думаю, что вы должны специализироваться на своих потребностях, потому что на данный момент вы ожидаете от таких фреймворков автоматически знать, что такое правила игры, как манипулировать ботами, как оценивать эффективность ваших ботов, возможно, вам следует начать с самого начала и какой-то общий интерфейс, который будет выполнять графику, но сами боты (или какой-то механизм в игре) должны быть судьей, отслеживать производительность, дополнительные данные (какие-то журналы, какие боты думают и почему) отлично подходят для отладки странных, неожиданных Поведение) –

+0

Я согласен ... Я надеялся, что у меня может быть основное приложение, которое будет управлять графикой и раундами и т. д. И нужно будет реализовать интерфейс, который будет заниматься управлением игрой и ботами ИИ. Требуется какой-то способ создания проекта проекта проекта ИЭИ и тестирования. – Jon

ответ

2

Это называется генетическим алгоритмом. Любой вкус доступен через Google.

+0

Привет, пожалуйста, спасибо за имя. Знаете ли вы что-нибудь, что вы порекомендовали бы? еще раз спасибо. – Jon

+0

У меня недостаточно опыта в этой области, чтобы советовать какое-либо конкретное решение. – ima

+0

В любом случае, спасибо ... вы дали мне направление для изучения. – Jon

0

У меня нет опыта работы с ИИ, но лично я бы начал с стандартной модульной системы тестирования. Вы можете расширить свои тестовые классы (или даже расширить многие рамки) с помощью вспомогательных методов по мере необходимости.

Подавать к приложению в Osherove-х The Art of Unit Testing, я хотел бы начать с NUnit и попробовать MbUnit или xUnit, если он не соответствует моим потребностям.

И я повторяю комментарии Равадре выше.

EDIT: Я перечитываю ваш оригинальный пост, и я не уверен, что моего ответа было достаточно. В то время как я высоко тестирует модульное тестирование (или, еще лучше, TDD) во время разработки, вы, кажется, ищете способ узнать, какие боты наиболее успешны. Это выходит за рамки модульного тестирования и (возможно) вне интеграционного тестирования. Мое (непроверенное) подозрение состоит в том, что нелегко было бы написать жгут для вашего кода с нуля, который будет делать именно то, что вы хотите - запустить несколько итераций/перестановок и наметить результаты. Тестовые рамки собираются дать вам результаты с ошибкой/неудачей, но это еще не все, что вы хотите. Если вы создаете интерфейсы для своих ботов и игр, вы можете легко их подключить.

+0

Привет, я полностью согласен с модульным тестированием, это обязательно. Там, где моя идея отличается (как вы упоминаете), я хочу сделать много тестов, например, один бот может играть в 1000 игр, и они отображают его результаты (например, оценка). Я бы использовал какой-то тест на пригодность для ранжирования ботов после того, как они сыграли 1000 игр. Затем развивайте их и делайте еще один раунд игр. – Jon

Смежные вопросы