gpt4 book ai didi

ruby-on-rails - 模型- View - Controller 是否与人工智能和行为树很好地配合?

转载 作者:行者123 更新时间:2023-12-04 15:49:07 25 4
gpt4 key购买 nike

我来自 MVC 背景(Flex 和 Rails),喜欢代码分离、可重用性、封装等思想。它使快速构建事物和在其他项目中重用组件变得容易。然而,在尝试构建复杂的、状态驱动的、异步的、动画的应用程序时,很难坚持 MVC 原则。

我正在尝试 create animated transitions between many nested views in an application ,这让我开始思考我是否在误导自己……你能将 MVC 的原则应用到人工智能(行为树、分层状态机、嵌套状态)的原则,比如游戏吗?这两个学科一起玩得好吗?

当事物是静态的(例如 HTML CMS 系统或其他)时,很容易让 View /图形对自身之外的任何事物都一无所知。但是当您开始添加复杂的状态驱动转换时,似乎所有内容都需要了解其他所有内容,而 MVC 几乎会妨碍您。你怎么看?

更新:

一个例子。好吧,现在我正在使用 Flex 开发一个网站。我得出的结论是,为了正确地为应用程序中的每个嵌套元素设置动画,我必须将它们视为 AI 代理。然后,每个“ View ”都有自己的行为树。也就是说,它根据上下文(选择的数据是什么等)执行一个 Action (显示和隐藏自己)。为了做到这一点,我需要一个 ViewController 类型的东西,我称它为 Presenter。所以我有一个 View (在 MXML 中布局的图形)、一个演示器(定义 View 可以根据应用程序的状态和嵌套状态执行的动画和操作)和一个演示模型,用于将数据呈现给 View (通过主持人)。我还有用于值对象的模型和用于处理 URL 和数据库调用等的 Controller ……所有普通的静态/html 类 MVC 东西。

有一段时间,我试图弄清楚如何构建这些“代理”,以便它们可以响应周围的环境(选择了什么等)。似乎一切都需要了解其他一切。然后我读到了游戏的路径/导航表/列表,并立即认为他们有一个集中存储的表,其中包含每个代理可以采取的所有预先计算的操作。所以这让我想知道他们实际上是如何构建代码的。

所有 3D 视频游戏的东西都是一个大 secret ,据我所见,其中很多都是通过图形 UI/编辑器完成的,比如定义行为树。所以我想知道他们是否使用某种 MVC 来构建他们的代理如何响应环境,以及他们如何保持他们的代码模块化和封装。

最佳答案

"Can you apply principles from MVC to principles from Artificial Intelligence (Behavior-Trees, Hierarchical State Machines, Nested States), like Games?"



当然。 99.9% 的 AI 纯粹在模型中。 Controller 将输入发送给它, View 是您在屏幕上向用户展示它的方式。

现在,如果您想开始让 AI 控制某些东西,您可能最终会嵌套概念,并且您的游戏“模型”包含一个实体模型、一个实体 Controller ,即 AI 向它发送命令,以及一个代表 Controller 可以使用的实体的感知的实体 View 。但这与它是否可以“玩得很好”是另一个问题。 MVC 是将表示和输入从逻辑和状态中分离出来,而这方面并不关心逻辑和状态的样子。

关于ruby-on-rails - 模型- View - Controller 是否与人工智能和行为树很好地配合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2083626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com