2011-07-07 23 views
-1

我目前正在制作游戏。将会有不同的AI,每个敌人都有一个。编码许多不同的AI的方法?

我该如何去实施?我是否创建一个基类,从中为每种类型的AI派生一个类?我只是做一个大班,所有人工智能在选择的情况下?也许别的东西?

我在Unity3d中用C#做这个。

谢谢!

+0

这取决于你使用哪种语言。 –

+0

添加到问题;) –

回答

1

嗯,我想这取决于,

有一个大量的这样做的方法。 1)经典的OOP,你可以创建一个从AI接口派生出来的详细的类结构,然后从那里工作你的类层次结构。 2)您可以使用面向组件的设计,然后创建一个AI组件,该组件可以使用不同的较小组件进行初始化和进一步扩展。 3)你可以去脚本路线,在你的“引擎”之外编写你的AI逻辑脚本,这很好,因为它提供了核心引擎功能和你特定的游戏逻辑之间的分离。

在我看来,这当然取决于你的特殊需求,我经常混合1 && 3,但我想你可以用1 || 2 || 3去,它们并不完全是排他性的。

我认为你应该考虑的另一件事是你的角色控制系统以及你如何实现它,角色控制系统将对你如何实现你的AI系统架构有直接的影响。

祝你好运:)

0

一个安全的方法来开始设计这样的东西就是创建一个单元AI接口,然后将每个AI放入一个单独的类来实现它。常用的功能可以放入辅助类中。

关于对象层次结构,游戏AI应遵循SOLID原则,如其他所有。

1

也许设计模式“策略模式”可以满足您的需求。 See wiki page.

  • 它迫使你为每个AI使用类似的接口。
  • 它允许您在运行时更改敌方对象的AI算法。