Most AI programmers I know (myself included) have a love-hate relationship with priority-levels for AI behaviors. Developers often use them reluctantly — assuming there must be a better solution out there. These priorities are the subject of this week’s developer discussion.
我知道大多数AI程序员(包括我在内)对AI行为的优先级都有一种爱恨关系, 开发者们经常不情缘用他们--他们认为会有一种更好的解决方案,这些悠闲级就是这周的开发者讨论主题.
Basically, the idea is to assign priority levels to every AI behavior to help decide which is most important when they are applicable at the same time, or execute concurrently. Simple right? Well, things get tricky for multiple reasons…
基本上, 分配优先级给每个AI行为来帮助判断当这些应用程序同时或并发运行时谁更重要,简单重要? 事情由于多种原因变的复杂
-
Maintaining a standard convention for the meaning of priorities is necessary, but hard to achieve in practice.
-
Priority levels always seem to run out when you make the mistake of picking the wrong value for an important behavior!
-
Sometimes, finding static priorities values for a behavior is a challenge in itself!
维护一个标准的约定优先级的含义,是很必要的,但是实际上难以完成
优先级总是看上去错误当你错误的为一个很重要的行为选择了一个错误的值
有时候,要为一个行为找到一个不变的优先级值是一个挑战
How do you resolve this problem in practice? 实际中这些问题你是怎么解决的呢?
-
Do you need/use priorities for your AI behaviors? 你为你的AI行为设置了优先级吗?
-
Are you happy with this approach? 你喜欢这种方法吗?
-
Have you found something better?你能找到更好的方案吗?
Personally, I split up behaviors with dynamic priorities until I can assign a static value to them (like in Halo). Then I try to keep the designer-editable priority levels down to a minimum, for example HIGH priority for highly functional behaviors, and LOW priority for cosmetic behaviors like reactions to events. In the end, I get the AI work out the relative priorities by analyzing the behavior tree, but that approach has its challenges too!
个人观点,我利用动态优先级分割行为直到我可以赋一个静态值给他们,然后我试着保持可编辑的优先级在一个范围,举个例子,为高级功能的行为设置高优先级,为cosmetic 行为例如时间的响应设置低优先级,最后我通过分析行为树来确定优先级关系,但是这种方法也很有挑战.
看来英文该补补了