id利用并行化计算人工智能

id利用并行化计算人工智能
原文地址有待补充……id软件利用 并行化 来减少 AI人工智能 预算的 编译时间缩短 周转 时间。网格计算人工智能2007年7月20日 - JMP van Waverenid软件抽象为了在第一人称射击游戏FPS游戏中显示智能行为人工智能AI控制角色需要对环境的空间和时间意识。在游戏中获取这种意识的实时环境抽样在今天的高细节游戏中特别昂贵。此外在单个CPU /核心系统上这在PC游戏领域仍然很常见只有一小部分CPU时间分配给AI。由于需要尽可能多地使用这些预先计算的数据结构以便AI能够快速分析环境并做出明智的决策。Id的新标题应该是 新游戏 深入敌方领土 QUAKE战争 由革命性的 ID Tech 4游戏引擎驱动该引擎具有允许人工玩家也称为“ 机器人快速 获得所需的空间和时间意识以便在 游戏中 表现良好。在该系统的 预计算阶段以一个或多个两歧管三角形网格的 形式计算配置空间C-Space的边界表示b-rep。这是一个复杂而耗时的过程其中对数百万个三角形执行几何运算。为了显着加速这个过程 整个 job 分为许多独立的较小块通过 IncrediBuild分布式构建技术的 Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中 AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少 开发过程中的转折时间。在该系统的预计算阶段以一个或多个两歧管三角形网格的形式计算配置空间C-Space的 边界表示b-rep。这是一个复杂而耗时的过程其中对数百万个三角形执行几何运算。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。在该系统的预计算阶段以一个或多个两歧管三角形网格的形式计算配置空间C-Space的边界表示b-rep。这是一个复杂而耗时的过程其中对数百万个三角形执行几何运算。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。以一个或多个两歧管三角形网格的形式计算配置空间C-Space的边界表示b-rep。这是一个复杂而耗时的过程其中对数百万个三角形执行几何运算。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。以一个或多个两歧管三角形网格的形式计算配置空间C-Space的边界表示b-rep。这是一个复杂而耗时的过程其中对数百万个三角形执行几何运算。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。为了显着加速这个过程工作分为许多独立的较小块通过IncrediBuild分布式构建技术的Xoreax Grid EngineXGE可以最大限度地实现并行化。计算机游戏中AI的预计是XGE在减少编译时间方面非常有效的方面因此在减少开发过程中的转折时间。内容AI的预计算区域意识系统网格计算结果向前走关于id软件关于作者AI的预计算空间和时间意识都是在FPS游戏中表现良好的关键。人类的大脑非常擅长识别和预测人类玩家利用这些技能可以快速了解FPS游戏中的环境。在玩FPS游戏几次之后人们很容易就认识到他们在环境中的位置并快速预测会发生什么这样他们可以决定去哪里以及他们需要做什么。在任何给定的时间FPS游戏的人工智能AI控制角色还需要能够快速获取对于要去哪里以及需要做什么的明智决定所需的空间和时间意识。尽管多核系统正在快速接管PC游戏领域但仍然存在大量单CPU /核心系统。在这些系统上分配给AI的CPU时间通常仍然不超过10。同时游戏环境变得越来越复杂和动态。多年来环境的多边形复杂性大大增加而在今天的游戏中通过使用复杂的实时物理模拟还有更多的动态物体正在通过环境。为了在尽可能少地使用CPU时处理这种增加的复杂性关键是预先计算可以预先计算的AI的任何内容。一切都没有 需要考虑在环境中进行静态变化以进行预先计算以生成数据结构使AI控制角色更容易地快速了解其在环境中的位置和情况。此外重要的是预先计算可以更快地实时处理动态对象的数据结构。AI的“预先计算”数据可以通过编程方式或手动方式添加到游戏中。AI的某些提示似乎很容易被一个层次的设计师置于一个层次上例如路点路径营地封面等等。然而放置最佳路点并创建良好的路径以便人工智能可以轻松到达所有位置在一个级别是一个不平凡的任务。此外随着战略变得越来越复杂所以提示需要放在一个层次上。水平设计师通常需要手动放置大量提示来覆盖整个环境。在设置提示之前需要对级别的设计者进行教育以放置这些需要时间的提示。一个级别的设计师也可能犯错误特别是当需要放置的提示是复杂的和/或最佳位置没有明确定义的时候。为AI提供所需信息的算法解决方案 最初可能由于实现中的错误 而出现 问题。然而当一个错误被修复时它通常不会回来而手动解决方案可能会在开发过程中随时引入人为错误。算法解决方案导致可扩展性重复性和一致性。此外缩放比较便宜。雇用教育和雇用其他级别的设计师是昂贵的。算法解决方案最初可能需要一些程序员时间但最终要便宜得多因为只需使用更多的计算能力可以在更短的时间内编译更多的级别。区域意识系统敌方领土QUAKE战争ETQW中的机器人使用区域意识系统AAS来了解导航并快速了解环境。在离线编译过程中该区域系统自动从级别几何派生。AAS编译过程的第一步涉及构造配置空间C-Space的边界表示b-rep。C-Space的b-rep由一个或多个描述世界几何的Minkowsky和和一个机器人或玩家所在的边界体积的两个歧管网格组成。在下一步中AAS编译器识别C-Space的b-rep上的步行曲面。步行表面被细分为最少数量的可步行区域使得机器人或玩家可以在区域中的 任何 两个点 之间的 直线上 移动。这需要大量的过滤以忽略不应被视为玩家导航障碍的小细节。接下来计算出 所谓的“可达性”指定机器人如何从一个 区域 导航到 另一个 区域。AAS实现分层路由系统实时查找环境中的路由。该系统包括缓存管理器来缓存路由因此避免频繁重新计算路由。路由系统的层次性质使得计算路由非常快速并且使缓存大小最小化。一旦计算了一条路径路径优化器就用于沿着路线绘制通过环境的直线和弯曲路径。路径优化器沿着地面追踪以测试AI是否可以走到某一点或沿某个方向行走。这些地板轨迹非常快因为AAS过滤出所有不是玩家导航障碍的小细节而是通过常规的碰撞检测查询返回。一旦计算了优化的路径就可以使用一个系统来计算动态障碍物的任意复杂配置周围的路径。如果存在动态障碍该系统将修改优化的路径。在计算新路径时障碍物回避系统还考虑了环境的静态边界以保持AI不会进入静态世界几何。AAS的设立是为了快速提供所有当地世界边界如墙壁和壁架需要考虑到同时避免障碍。在计算新路径时障碍物回避系统还考虑了环境的静态边界以保持AI不会进入静态世界几何。AAS的设立是为了快速提供所有当地世界边界如墙壁和壁架需要考虑到同时避免障碍。在计算新路径时障碍物回避系统还考虑了环境的静态边界以保持AI不会进入静态世界几何。AAS的设立是为了快速提供所有当地世界边界如墙壁和壁架需要考虑到同时避免障碍。人工智能需要做的最基本和最根本的事情之一就是意识到当前在环境中的位置并了解周围环境。AI的许多其他系统使用空间 - 时间相干性其中理解AI的当前位置是从先前已知的位置导出的。然而在高度动态的游戏环境中事件可能会发生不能总是被预料到并且AI可能会在远离任何先前已知位置的位置结束。例如人工智能可能已经靠近台架走过并被推开爆炸可能会导致AI飞行或AI被车辆拖动等。AAS允许AI随时了解其在世界上的当前位置计算只有10到20个点产品而不必缓存先前已知的位置。当AI知道其当前位置时系统会立即提供大量AI的信息以便对哪里要做出明智的决定以及需要做些什么。系统然后允许人工智能快速执行其他查询以收集所需的任何其他信息如路线路径旅行时间和环境的其他属性。网格计算C-Space的b-rep的建设是AAS编译过程中最昂贵的一步。由于几个原因AAS编译器被设置为将计算C-Space的b-rep所涉及的工作分成许多独立的较小的块。涉及几何处理的数学并不是很复杂。然而通常难以预测几何处理算法需要覆盖的所有不同情况。即使算法涵盖所有??情况并且在理论上完美地工作该算法可能不会由于浮点舍入而产生期望的结果。用于几何处理的算法的实现通常涉及许多代码行来处理和处理浮点舍入。为了避免大量的浮点舍入误差使处理错误更容易处理使用明确定义的浮点值范围来处理以原点为中心的较小块中的几何是有用的。当工作分成较小的块时在算法开发过程中更容易分析和调试问题。小块可以快速重新计算问题是局部化的可以与几何体的其余部分隔离。由于工作已经分为许多独立的较小块因此可以通过使用网格计算解决方案轻松加快C-Space的b-rep的构建。IncrediBuild的分布式构建技术的Xoreax Grid EngineXGE对于网格计算解决方案是无价的因为它涉及最小的集成时间非常易于使用。XGE虚拟化文件系统并自动分发包括执行工作所需的可执行文件的工作。换句话说级别几何可以在本地进行修改并且可以在本地重新 编译 可执行文件而无需手动将工作和可执行文件重新分配给许多计算机。为了通过XGE获得最佳性能需要一个可执行文件即精简平均和加载速度非常快。幸运的是只需将 绝对 必要的源代码 分解到 Win32控制台 应用程序 中 即可。有三个接口 用于 排队 XGE 任务其中之一是XML接口。创建一个简单的XML文件其中列出了用于处理工作的工作和可执行文件。然后可以将XGE xgConsole.exe命令行应用程序 生成为 管道过程以便控制台 输出可以 重定向 到 游戏应用程序 或 级别编辑器。结果已经实施和测试了用于构建C-Space的b-rep的并行性的几种不同的方法。该算法通常首先在单线程应用程序中实现。自然的进步是使用多个线程。而不是使用多个线程也可以产生多个进程每个进程都执行部分工作。这与XGE非常相似只是使用一台电脑。下一个选项显然是使用XGE并将工作分布在 许多 计算机上。已经使用这四种方法 编制 了几个ETQW级别并且已经测量了 编译时间。使用的一些统计数据如下。对于每个级别列出了用于播放器碰撞检测的三角形数量。此外列出了 具有 几何的 块 的数量其中每个 块 都存储 在 单独的 文件 中。下面列出了 磁盘 上所有 块文件 的 总大小列出了用于 描述C-Space的b-rep的三角形数量。下面的图表显示了使用不同方法的级别的编译时间。单线程方法在系统上使用两个Intel 2.8 GHz双核至强CPU“Paxville”90nm NetBurst微架构禁用超线程的 核心。多线程方法使用四个线程每个线程消耗同一系统上的四个核心之一。多进程方法使用四个进程每个进程也在同一系统上同时消耗四个内核之一。Xoreax Grid Engine方法在27个核心中 使用14个 计算机 总共78.6 GHz的网络其中9个内核基于Intel NetBurst 微架构18个内核基于Intel Core 2微架构。计算机都参与了1 Gb网络即使启动新流程涉及到一些开销使用多个 进程 比 多线程 更快。线程 不使用自己的 独立内存池因此存在 内存争用。这会使 多线程 解决方案 陷入 僵局而多进程解决方案中的每个进程都有自己的 地址空间。XGE解决方案与可用的CPU /内核数量 呈 线性关系。在上述示例中由于基于 Core 2架构 的 内核 比 Paxville 内核 更快所以与单线程相比XGE甚至可以超过线性可用的GHz。向前走随着可用CPU功率的快速增长内存和IO带宽不会以相同的速率增加压缩变得越来越重要。将使用越来越多的CPU功率来降低存储和带宽要求。从网格计算的角度来看非对称压缩是特别有趣的其中游戏过程中的 实时解压缩 真的很快而在 最高压缩比 下 获得最佳可能质量的离线压缩 可能非常计算上 昂贵。网格计算本身非常适合这种离线压缩。XGE对于声音压缩和纹理压缩特别有用。关于id软件id由弗洛伊德定义为人类心灵的原始部分; id软件位于德克萨斯州梅斯基特成立于1991年。从一开始至今id Software一直以独立的游戏开发商和技术提供商的身份不懈地提供技术设计和艺术领导。超越游戏行业ID的标志性品牌如WolfensteinDOOMQUAKE和Enemy Territory已经成为世代游戏玩家的热门文化的主角。有关id软件的更多信息请访问www.idsoftware.com。关于作者JMP van Waveren在荷兰代尔夫特理工大学学习计算机科学。他一直在为计算机游戏开发技术十多年并参与了三种A类游戏的研究和开发如Quake III ArenaReturn to Castle WolfensteinDOOM IIIQuake 4and Enemy Territory 雷神 战争他目前正在使用id Software进行下一代游戏技术。返回案例研究页面