独家: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…

python中upper函数有什么用_几个有用的python字符串函数(format,join,split,startwith,endwith,lower,upper)...

你需要知道的python字符串函数 format 字符串的format函数为非字符串对象嵌入字符串提供了一种非常强大的方法。在format方法中&#xff0c;字符串使用{}来代替一系列字符串的参数并规定格式。下面通过几个例子来详细解释其用法 直接使用{} apple_num 10 print("I have {…

QA

开发期间测试人员的工作是很多的&#xff0c;首先&#xff0c;要参加评审工作&#xff0c;比如需求评审、概要设计评审、详细设计评审等等&#xff0c;在评审过程中不要只抱着学习的目的&#xff0c;而是要提出有意义的建议&#xff0c;比如在需求评审中要提出一对可测试性需求…

用于连接mysql的java类_【考试】列举Java连接数据库用到的类有哪些。

好吧&#xff0c;说明一下JDBC连接数据库的步骤。创建一个以JDBC连接数据库的程序&#xff0c;包含7个步骤&#xff1a;1、加载JDBC驱动程序&#xff1a;例如&#xff1a;try{//加载MySql的驱动类Class.forName("com.mysql.jdbc.Driver") ;}catch(ClassNotFoundExcep…

水晶报表的统计功能-Crystal Report Sub total Per Page

先大概表述下我对水晶报表的理解&#xff1a; 大体上Crystal Report 可以理解为3部分&#xff1a; 第一部分&#xff1a;数据引擎 Crystal Report 集成了各种数据访问接口&#xff0c;可以方便的从数据仓库中提取数据&#xff0c;并把返回的数据做为一个数据集。 第二部分&…

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

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

内置系统账户:Local system/Network service/Local Service 区别

LocalSystem 账户   LocalSystem是预设的拥有本机所有权限的本地账户&#xff0c;这个账户跟通常的用户账户没有任何关联&#xff0c;也没有用户名和密码之类的凭证。这个服务账户可以打开注册表的HKEY_LOCAL_MACHINE\Security键&#xff0c;当LocalSystem访问网络资源时&a…

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;所以使用下面两个…

myeclipse5.5注册码

Subscriber: myeclipse5.5 SubNULLion Code: zLR8ZC-850444-5453675708725833 转载于:https://www.cnblogs.com/shiningrise/archive/2009/04/06/1430382.html

python连接sqlite数据库的代码_Python3实现连接SQLite数据库的方法

本文实例讲述了Python3实现连接SQLite数据库的方法&#xff0c;对于Python的学习有不错的参考借鉴价值。分享给大家供大家参考之用。具体方法如下&#xff1a; 实例代码如下&#xff1a; import sqlite3 db r"D:\pyWork\test.db" #pyWork目录下test.db数据库文件 dr…

数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案

【一】初级【二】中级执行过程【1】客户端向MySQL服务器发送一条查询请求【2】服务器首先检查查询缓存&#xff0c;如果命中缓存&#xff0c;则立刻返回存储在缓存中的结果。否则进入下一阶段【3】服务器进行SQL解析、预处理、再由优化器生成对应的执行计划【4】MySQL根据执行计…

iframe高度自适应(IE6+、FF、Opera、Chrome等测试通过)

在主页面中对于嵌入的iframe页面高度未知&#xff0c;而且iframe页面的高度也不定&#xff0c;故不能在主页面中通过DOM来控制高度。在iframe页面中加入以下脚本便可实现&#xff1a;/*iframe 高度自适应脚本&#xff08;IE6、FF、Opera、Chrome等测试通过&#xff09; 作者未知…

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…

dapperpoco mysql_.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

前言在以前的一篇文章中&#xff0c;为大家分享了《什么是ORM&#xff1f;为什么用ORM&#xff1f;浅析ORM的使用及利弊》。那么&#xff0c;在目前的.NET(C#)的世界里&#xff0c;有哪些主流的ORM&#xff0c;SqlSugar&#xff0c;Dapper&#xff0c;Entity Framework(EF)还是…

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

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