独家:Havok 发布新的 AI 中间件

独家: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 之上增加一个动态避让技术的解决方案,而是从动态环境之上直接构建的。其独特的、创新的解决方案能够实时处理数千个移动的物体,并且相当逼真。”

显然,支持动态世界的一个关键挑战是高效地处理不可避免的改动,可用这两种方法来实现它:

  1. 实现快速构建核心导航网格的算法,能够在相当短的时间里处理整个网格。作为参考,Havok 在我们访问期间演示了一个城堡关卡,处理它只需要几秒钟。
  2. 基于 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 将在明天的发布会上公开官方的完整版本。

 

3AiGameDev.com Havok 的旧金山总部。左起 Alex ChampandardDave Gargan Chris Elion

转载于:https://www.cnblogs.com/aiwz/archive/2009/03/23/6154409.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查询入门_Mysql入门(四)查询

我们继续查询~条件查询及逻辑运算符条件查询如果我只想查询&#xff0c;年级小于30的&#xff0c;可以加个where条件关键字~条件查询敲黑板select * from yingxiong where y_age<30where 表示条件(条件关键字)&#xff0c;在where之后跟过滤的条件注意&#xff1a;逻辑运算符…

maven provided_Maven 教程之 pom.xml 详解

点击上方“Java知音”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;作者&#xff1a;dunwuhttps://github.com/dunwu/blog推荐阅读(点击即可跳转阅读)1. SpringBoot内容聚合2. 面试题内容聚合3. 设计模式内容聚合4. Mybatis内容聚合5. 多线程内容聚合简介什…

python将一个列表里面的某类元素取出来_03|Python列表常见操作

欢迎关注pythoner派微信公众号及头条号Python常见的数据结构我们在上一节中已经讲过再阅读文章前&#xff0c;请打开PythonIDE列表&#xff1a;1.定义一个列表现在我们有3瓶不同类型的啤酒&#xff0c;现在我们将其放入列表之中beer [粉象,白熊,橙色炸弹]2.向列表中追加元素现…

使用SDL打造游戏世界之入门篇 - 2

VC6下SDL的安装和初步使用首先&#xff0c;我们为所有的工程创建一个文件夹tutorial,将下载的开发库SDL-devel-1.2.8-VC6.zip拷贝到tutorial下并解压&#xff0c;并保证如下的文件夹层次&#xff08;图2&#xff09;如下&#xff1a;图2下面我们打开Visual Studio6.0&#xff0…

python虚拟环境管理工具_Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了...

前言Python虚拟环境是一个虚拟化&#xff0c;从电脑独立开辟出来的环境。在这个虚拟环境中&#xff0c;我们可以pip安装各个项目不同的依赖包&#xff0c;从全局中隔离出来&#xff0c;利于管理。 传统的Python虚拟环境有virtualenv&#xff0c;使用pip freeze → requirements…

centos 6.8安装git_RPM包的卸载与安装,包含依赖包卸载

一、 rpm包的管理介绍&#xff1a;一种用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中&#xff0c;它生成具有RPM扩展名的文件&#xff0c;RPM是RedHat Package Manager&#xff08;RedHat软件包管理工具&#xff09;的缩写&#xff0c;类似windows的…

anaconda matplotlib 输出动画_Python+Matplotlib 制作排序算法的动画

1 、算法的魅力深刻研究排序算法是入门算法较为好的一种方法&#xff0c;现在还记得4年前手动实现常见8种排序算法&#xff0c;通过随机生成一些数据&#xff0c;逐个校验代码实现的排序过程是否与预期的一致&#xff0c;越做越有劲&#xff0c;越有劲越想去研究&#xff0c;公…

如何在centos中找到安装mysql_centos上如何安装mysql

centos可以使用yum安装mysql 但是版本很低&#xff0c;且不灵活。本文将介绍如何使用安装包安装mysql将下载文件放在/opt/mysoft文件夹中解压文件tar -xf MySQL-5.6.22-1.linux_glibc2.5.x86_64.rpm-bundle.tar这里我们要安装mysql的服务端和客服端&#xff0c;所以使用下面两个…

html选择器_css的9个常用选择器

1.类选择器&#xff08;通过类名进行选择&#xff09;<!DOCTYPE html> <html> <head><title></title> </head> <style type"text/css">.p1{color: #00ff00;}.p2{color: #0000ff;} </style> <body><p class…

Resharper4.5:增强你的.net开发

Resharper4.5:增强你的.net开发 介绍 无庸置疑&#xff0c;ReSharper是最智能化的微软Visual Studio插件。它包括一系列丰富的能大大增加C#和Visual Basic.net开发者生产力的特征。使用ReSharper&#xff0c;你可以进行深度代码分析&#xff0c;智能代码协助&#xff0c;实时错…

mybatis collection_MyBatis之关联查询

前言我们进行数据库查询时往往需要的不止一张表的数据&#xff0c;需要将多张表的数据一起查询出来&#xff0c;大家学习过数据库的连接查询&#xff0c;那么在MyBatis中如何将有关系的多张表数据进行关联查询呢。表的结构商品和订单是典型的一对多关系&#xff0c;下面的案例我…

mysql如何优化性能优化_如何优化性能?MySQL实现批量插入以优化性能的实例详解...

这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下对于一些数据量较大的系统&#xff0c;数据库面临的问题除了查询效率低下&#xff0c;还有就是数据入库时间长。特别像报表系统&#xff0c;每天花费在数据…

不支持对系统目录进行即席更新_「目录」让你的文档结构一目了然

很多时候&#xff0c;要求文档要有目录&#xff0c;比如书籍/杂志/论文/标书等等。目录可以让文档结构一目了然。如果不了解 Word &#xff08;包括 Microsoft Office 和 WPS Office 下的Word&#xff09;操作&#xff0c;目录的各标题及对应页码可能是手动一个一个码上去。其实…

合成/聚合原则: 桥接模式

假想场景&#xff1a;hp和apple是全球知名的电脑生产厂家&#xff0c;起初他们各自的电脑操作系统分别是linux和macintosh&#xff0c;microsoft是软件行业的龙头。为了吸引更多客户购买电脑&#xff0c;hp和apple请ms为他们开发两款最常用的软件&#xff0c;办公软件和及时通讯…

java查看jdk源码_Java-如何查看JDK源码

一、引言学习Java和使用Java的小伙伴都必须要看的懂Java的开发文档&#xff0c;然而&#xff0c;开发文档只是开发者对Java代码的功能做出简略的说明&#xff0c;它只是告诉你这个类能干嘛&#xff0c;并没告诉你这个类怎么干&#xff0c;所以&#xff0c;阅读Java源码是每个开…

arrays中copyof复制两个数组_数据结构与算法(3)数组

前言数组(Array)是一种线性表数据结构&#xff0c;利用一组连续的内存空间&#xff0c;存储一组具有相同类型的数据。概念介绍首先我们说一下什么是线性表&#xff0c;线性表就是数据排成一条线的数据结构&#xff0c;每个线性表最多只有前和后两个方向&#xff0c;数组、链表、…

java做的一个将中文转换成Unicode码的工具类【转载】做个标记,明天研究下

这两天在使用RBManager&#xff08;一个开源工具&#xff0c;用于多国化字符转化&#xff09;工具的时候觉得很不方便&#xff0c;有的时候只需要知道中文对应的unicode码是多少&#xff0c;不需要这么麻烦的操作&#xff0c;所以就自己写了一个工具&#xff0c;专门用于将中文…

unity game和scene效果不一样_KTV装修设计:如何让消费者体验到不一样的KTV娱乐效果...

现代KTV装修设计要尽显奢华与高贵,但起到吸引消费者的却是浓烈的欢快氛围和愉悦的歌唱体验.KTV想要有一个好的装修效果,需要了解各方面的细节问题.下面怡元小编讲述如何设计能让消费者体验到不一样的KTV娱乐效果?1、氛围设计在KTV装修设计中,氛围设计非常考究,尤其是消费者进入…

feather 设置坐标刻度_Matlab中将坐标轴放在原点位置

转载一篇文章&#xff0c;原文链接&#xff1a;https://blog.csdn.net/xiaobiyin9140/article/details/84519419​blog.csdn.net需求使用matlab画图&#xff1a;设置y轴位置&#xff0c;使y轴在x轴的中间示例画一个sigmoid函数MATLAB代码x-10:0.1:10; ysigmf(x,[1 0]); plot(…

hana数据库导入mysql_【SAP HANA】新建表以及操作数据(3)

账号和数据库都创建好之后&#xff0c;接下来就可以创建表了。来见识一下这个所谓“列式”存储方式的表是长啥样的&#xff01;一、可视化新建表然后输入所需栏位&#xff0c;设置好类型和长度&#xff1a;上图右上角可以看到类型是Column Store&#xff0c;代表列式存储&#…