独家:Havok 发布新的 AI 中间件
March 23rd, 2009 Alex J. Champandard
2009-3-23,赖勇浩(http://blog.csdn.net/lanphaday)译
原文地址:http://aigamedev.com/middleware/havok-ai-announced
在20日(上周五)的时候,Havok 邀请 AiGameDeve.com 去他们在旧金山的总部参观他们他们新的 AI 中间件组件。首席工程师 Dave Gargan 和软件工程师 Chris Elion 给我演示了他们花了超过一年半时间做出来的技术和 demos。
本文是 Havok AI 的独家预览,官方将在周三举办的09年度游戏开发者大会(23日至27日在旧金山举办)上的 Expo 环节上揭开它的神秘面纱。这是 GDC首次发布 AI 领域的产品,欢迎继续关于这一越来越受关注的市场。
Havok 是 AiGameDev.com 的赞助商并且选择了我们来向游戏开发者社区批露他们最新的 AI产品。这篇文章是全球独家的,Havok AI将在明天发布。
Dealing With Destruction
David Gargan 说,游戏开发者面对的挑战之一是动态世界的 pathfinding,无数人都正在寻求解决方案。事实上,不仅(游戏中构建的)世界越来越大,而且还要面对可破坏环境和众多的可移动物体。Havok 在设计它的 AI中间件组件时就考虑到了这些需求,并且完全集成了动态 pathfinding:
“Havok AI 并非一个在静态 pathfinding 之上增加一个动态避让技术的解决方案,而是从动态环境之上直接构建的。其独特的、创新的解决方案能够实时处理数千个移动的物体,并且相当逼真。”
显然,支持动态世界的一个关键挑战是高效地处理不可避免的改动,可用这两种方法来实现它:
- 实现快速构建核心导航网格的算法,能够在相当短的时间里处理整个网格。作为参考,Havok 在我们访问期间演示了一个城堡关卡,处理它只需要几秒钟。
- 基于 Havok 在物理方面的经验,他们发现动态世界的改动在时间和空间上都有局部性。这个算法可以用来处理动态改动以节省时间。
Havok 向我们展示的 AI demos 集成了全套中间件,包括 Havok 物理引擎和 Havok 行为引擎,但事实上 AI 组件能够与任意的其它物理模拟引擎连接。
截图1:当在关卡中动态地增加和移除障碍时,导航网络就会更新。局部操控也能够帮助角色更好地避免碰撞(大图)。
Dynamic Navigation Meshes
据观察,许多现代游戏更多地受限于内存而不是计算能力,Havok 决定每一个关卡仅存储一个导航网格,然后通过一些运行时计算来找出任意行为的路径。Havok 通过优化它的 pathfinding 以运行在协处理器上,如 PS3 的 SPU,来支持这一决定。在发行版中,Havok 说:
“完全可扩展和可定制的 pathfinding 解决方案。这一产品为所有关键游戏平台实现了多线程、平台优化的层级 pathfinder。”
当 pathfinder 需要支持导航链接和智能对象时,多线程优化往往很难实现,这需要集成高层 AI——幸好 Havok 也提供了。
Havok 展示的 demos 中有一个包括了一个在窗口附近有一个导航链接的建筑物,因此士兵能够将弓身通过建筑物,可以用 Havok Behavior 引擎来处理动画。当然,在建筑物毁损的时候,AI 能够处理这一变化,这一链接点将不复存在。
对于这种情况,如果对象的配置在开发期间大致已知的话(例如建筑物的某些部分是直立还是倒塌)那么就能够用多种表现技巧在底层系统高效地处理了。
截图2:建筑物的窗户有着导航连接,从而允许 AI 跳过去,就像 Havok Behavior 处理一个智能对象那样。墙体倒塌后,也将导致导航网络中的连接更新(大图)。
Crowds and Moving Objects
Havok AI 的另一个特色是它能够处理世界中动态移动的物体:
- 主动的和自主的角色,如士兵或行人。
- 被动的或基于物理的实体,如手榴弹和炸弹。
Havok 给我介绍了一下这方面的情况:
“实现了动态 pathfinding 能力的高级局部操控模块带有预测能力,从而角色能够预测障碍的运动并作出相应的调整,当环境变得更为动态时,复杂而拥挤的情况让移动看起来更为真实。”
最后,Havok 将在明天的发布会上公开官方的完整版本。
图3:AiGameDev.com Havok 的旧金山总部。左起 Alex Champandard、Dave Gargan 和 Chris Elion。