Подход к кодированию много разных ИИ? - PullRequest
0 голосов
/ 07 июля 2011

Я сейчас работаю над игрой. Будет довольно много разных ИИ, по одному на каждого врага.

Как мне реализовать это? Я делаю базовый класс, из которого я получаю класс для каждого отдельного типа ИИ? Должен ли я просто создать один большой класс со всеми ИИ в выбранном случае? Может быть что-то еще?

Я делаю это в Unity3d с C #.

Спасибо!

Ответы [ 3 ]

1 голос
/ 07 июля 2011

Может быть, дизайн шаблона "Стратегия шаблон" соответствует вашим потребностям. См. Вики-страницу.

  • Это заставляет вас использовать подобный интерфейс для каждого ИИ.
  • Позволяет изменить алгоритм ИИ вражеского объекта во время выполнения.
1 голос
/ 08 июля 2011

Ну, я думаю, это зависит от того,

Существует множество способов сделать это.

1) Классическая ООП, вы можете создать детальную структуру классов, основанную на интерфейсе ИИ, и затем работатьваша классовая иерархия оттуда.

2) Вы можете использовать компонентно-ориентированное проектирование, а затем создать AI-компонент, который можно инициализировать и дополнительно расширять с помощью различных меньших компонентов.

3) Вы можете пойти по пути сценариев, создавая сценарии внеиз вашего "движка" ваша логика ИИ, это хорошо, потому что она предлагает разделение между функциональностью основного движка и вашей конкретной игровой логикой.

На мой взгляд, это, безусловно, зависит от ваших конкретных потребностей, я часто смешиваю 1 && 3, но я думаю, что вы могли бы пойти с 1 || 2 || 3, они не являются полностью исключительными.

Я думаю, еще одна вещь, которую вы должны иметь в виду, это ваша система управления персонажем и как вы реализовали это, система управления персонажем будетиметь непосредственное влияние на то, как вы будете реализовывать архитектуру вашей системы ИИ.

Удачи:)

0 голосов
/ 07 июля 2011

Безопасный способ начать проектировать что-то вроде этого - создать интерфейс ИИ модуля, а затем поместить каждый ИИ в отдельный класс, реализующий его.Общие функциональные возможности могут быть помещены в вспомогательные классы.

Что касается иерархии объектов, игровой ИИ должен следовать принципам SOLID , как и все остальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...