Iai*_*ain 5 model-view-controller artificial-intelligence
它可能是模型的一部分,因为它是游戏业务逻辑的一部分.
它可能是控制器的一部分,因为它可以被视为模拟玩家输入,这将被视为控制器的一部分,对吧?或者是吗?
那个普通的敌人怎么样,比如马里奥的goomba?
更新:哇,这真的不是我期待的答案.据我所知,AI是自主游戏系统的内部部分,因此也就是模型.我还是不相信.
Ken*_*tle 10
MVC作为大量应用程序的体系结构非常有效.某些应用程序可能会发现MVC适用于外部接口,尤其是用户界面,这是更复杂架构的一部分.
如果你发现自己试图将一个问题"强制适应"成一个模式,那么它可能不是正确的模式.使用MVC作为UI - 使用其他模式(消息总线,观察者/监听器等等)或其他OO技术用于AI(@Bill Lizard的策略建议仍然适用).
使用整个工具箱 - 而不仅仅是锤子.;-)
请记住,MVC最初纯粹是一种GUI架构模式.因此毫不奇怪,它不能很好地映射到人工智能,网络或其他任何东西.但是在这里使用它仍然有一些好处.但是代码所实现的并不像它在链中的位置那么重要.只是因为它看起来像是内部的,并不意味着它是,因此不应该这样计算.
例如.如果您正在编写机器人,那么您很可能只是编写脚本来操纵角色.所以从这个意义上讲,脚本界面是预先存在的Controller,你的脚本完全是外部的.你甚至不去模特附近的任何地方写那个高级AI ..
现在,如果你是原始程序员,他必须编写低级别的AI功能,这是由玩家互动(例如,点击某处开始在那里开始)或者通过机器人风格的脚本触发的,那么你就会写进入模型.
任何单一的概念,如'AI',从模型,控制器,直到任何人或任何操纵控制器的方式,都可能看起来不直观,但是当你试图将两个非常不同的概念映射到彼此.很明显,当你从开发人员的角度来看它时,试图为非玩家角色提供相同的界面,就像他们为玩家角色所做的那样 - 最终,AI必须包含高级决策,除了通常存在于系统内的玩家和非玩家之间的低级实现之外,系统还将进行.