Questions tagged «ai»

游戏中实体如何做出有关其行为的决策的设计和/或逻辑。

20
制作秘密无竞争的游戏AI是否不道德?
在几款游戏中,AI旨在让玩家在不了解的情况下获得轻松的时光。第一次出现时可能有0%的几率被击中,敌人让您不转身就可以潜入它们,或者当玩家受伤或重新启动几次后降低难度。 如果在棋盘游戏或运动结束时被告知人类没有尽最大努力,我会感到不高兴。 人工智能是否存在相同的道德规范? 编辑就像标题一样,我主要关心的是让玩家看不见障碍,例如,在玩射击游戏时,可以合理地期望玩家知道AI具有虚假的反应时间和较差的目标,但是我的问题是关于隐藏一些东西,例如敌人没有使用最好的武器,或者在玩家被保险后降低了他们的难度。
121 game-design  ai  balance 

9
是什么让计算机对手感到生机勃勃?
是否有推荐的博客或白皮书谈论使RPG游戏中的AI更加真实?(特别是反战。) 我知道必须有一些东西,但是我只发现有关AI背后算法的论文。我正在按照“这就是使计算机对手感到活着的东西”的思路看待更多。冒险,放松,撤退等... 这么多很棒的答案,我希望我可以接受其中几个。感谢大家!
107 ai  game-mechanics 


9
如何防止制导导弹环绕目标飞行?
我正在开发一种没有摩擦的2D空间游戏,并且发现将制导导弹绕其目标飞行非常容易。我对反轨道策略感到好奇。 一个简单的例子是寻的导弹,它直接直接向目标加速。如果该目标垂直于导弹的轨迹移动然后停止,则导弹向目标的加速度将不足以克服其自身的速度,并且导弹可能被驱动进入目标周围的轨道,如下所示: 在第1帧中,导弹直奔目标,没有问题。 如图所示,在第2帧中,目标已移动到新位置。导弹继续直接向目标(红色)加速,同时由于其现有速度仍向目标过去(黑色)移动。 在第3帧中,导弹的速度继续将导弹携带在目标侧面(黑色)周围,而加速度矢量拼命地将导弹拉向目标。 在第4帧及以后的帧中,导弹落入目标周围潜在的稳定轨道,并且从未达到目标。黑色箭头表示速度矢量,而红色线表示同一时间的加速度矢量。 考虑到空间中没有摩擦,没有什么可以减慢导弹的速度并使轨道崩溃的。一种可能的解决方案是将目标瞄准在目标“后面”,这将导致轨道闭合,但是从编程的角度来看,这是如何完成的呢? 如何使寻的导弹达到目标?
78 2d  ai 

2
什么是单位投放?
我正在观看“ Devs Play” S01E05,JP LeBreton与John Romero坐下来并通过Doom进行比赛,而Romero将解释他们做出的一些游戏/关卡设计选择。 他们都有很多优点,但我无法完全理解。也许那是我的语言障碍之类的东西,但是,是的-Unit sloting。 这是影片的一小部分,起始于2m56s其中罗梅罗大约有一点点笑声插在现代游戏。 我似乎无法理解它的概念。是单位向您自动群殴并在排队时进攻吗?还是因为他们的攻击是同步的,以至于您不知所措?还是...该放什么东西?


9
创建AI的新手-从哪里开始?[关闭]
我是游戏编程的新手,正在尝试制作一款基本的2d自上而下的太空游戏,其中包含2艘相互竞争的太空船。我在用户控制的太空飞船上做得很好,但不知道如何开始编写AI。某些方法/模式是否适合这种情况?我什至要从哪里开始?

5
在hack&slash游戏中寻找一种很好的角色移动技巧
我正在制作hack&slash游戏,并且希望角色像在Torchlight,Diablo等中一样移动。目前,我为地板的所有可行走区域生成了一组节点。当我单击某个位置时,播放器会通过节点的插值路径到达那里。这看起来不是很自然。玩家像机器人一样移动。敌人也使用该节点系统进行运动并共享相同的问题,但是我对它们还有另一个问题。当敌人发现玩家时,他们会以最短的路径找到他。有时他们会使用相同的路径并与玩家对齐,而不是包围玩家。我不知道如何让敌人选择不同的路径并包围玩家。你知道我该如何解决这个问题?也许我应该对角色移动使用不同的方法? 我目前的技术: 火炬之光截图: -更新- 我想知道如何处理这些情况: 情况1,我途中有动态/静态障碍 情况2,敌人有通往玩家的圣路(进入队列与我们作战)
51 ai  rpg  movement 

7
RTS游戏中的寻路如何工作?
[从stackoverflow交叉发布] 在《魔兽争霸3》或《帝国时代》等游戏中,AI对手在地图上移动的方式似乎几乎是无限的。地图很大,其他玩家的位置也在不断变化。 这些游戏中的AI寻路方式如何工作?在这种设置中,似乎无法使用标准的图形搜索方法(例如DFS,BFS或A *)。

6
在MMO中​​谁计算AI?
我正在建立一个MMO,并想添加NPC。问题是我不知道基本设计。计算是什么,客户端还是服务器?我会理解服务器计算事件和反应的能力,但是当涉及到寻路以及玩家的位置和动作时,谁来计算呢? 谁计算服务器或客户端的AI?我无法想象服务器会计算寻路,位置,运动等。请帮助我了解这一点,谢谢,一切都会有所帮助。
30 ai  mmo  server  movement  npc 

2
基于回合制策略游戏的复杂游戏AI
我正在为回合制策略游戏项目做一些研究,并在这个主题上寻找好的资源。该游戏是一种典型的战争游戏,各国可以互相战斗,部署单位并让这些单位在六角形的地图上移动,互相攻击等。 我对Civilization V的AI的组织方式特别感兴趣!根据Wikipedia的说法,该游戏针对游戏AI的不同层使用了四个不同的AI系统: 战术AI控制单个单位 行动AI负责监督整个战线 战略性AI管理着整个帝国 大型战略AI设定了长期目标并确定了如何赢得比赛 从概念上讲,这看起来对实现复杂的AI很有意义,而且让我好奇地发现这些不同的AI系统如何工作(并一起工作)。战术AI可能是最容易理解的,因为它可以处理单个单位的决策(移动,攻击,维修,撤退等),但我认为其他AI系统才是真正令人感兴趣的地方。例如,可操作的AI会做什么,以及它是如何做到的?我敢肯定,这些是Firaxis Games保留得最好的秘密,但是开始对此进行讨论以找到更多信息是很酷的。 同样,如果有人知道任何擅长基于回合制策略游戏AI的好书,那么也很高兴知道。显然,这是网上稀疏的话题。我得到了“通过示例编程游戏AI”,但是那本书更多地是关于单一代理行为AI,而不是高级的面向目标的AI。

6
抢占行为树
我试图绕过行为树,所以我要花一些测试代码。我正在努力解决的一件事是,当出现更高优先级的东西时,如何抢占当前正在运行的节点。 考虑一下以下简单的士兵行为树: 假设经过了一些滴答声并且附近没有敌人,那名士兵正站在草地上,因此选择了“ 坐下”节点以执行该命令: 现在,“ 坐下”动作需要时间才能执行,因为要播放动画,因此它会返回Running其状态。一两个勾号过去了,动画仍在运行,但是敌人在附近吗?条件节点触发器。现在,我们需要尽快抢占Sit down节点,以便执行Attack节点。理想情况下,士兵甚至都不会坐下来–如果他只是开始坐下,他可能会反转动画方向。为了增加逼真度,如果他已经超过动画中的临界点,我们可以选择让他完成坐下然后再站起来,或者让他跌跌撞撞地对威胁做出反应。 尽我所能,我一直无法找到有关如何处理这种情况的指南。过去几天(而且很多)我消费的所有文献和视频似乎都绕过了这个问题。我能找到的最接近的东西是重置运行中的节点的概念,但这并不能使像Sit down这样的节点有机会说“嘿,我还没有完成!” 我想到也许在我的基类上定义一个Preempt()or Interrupt()方法Node。不同的节点可以按照自己认为合适的方式进行处理,但是在这种情况下,我们将尝试让士兵尽快站起来然后返回Success。我认为这种方法还需要我的基地Node将条件的概念与其他行动分开。这样,引擎只能检查条件,如果条件通过,则可以在开始执行动作之前先抢占任何当前正在执行的节点。如果未建立这种区分,则引擎将需要不加选择地执行节点,因此可能会在抢占正在运行的节点之前触发新的操作。 供参考,以下是我当前的基类。再说一次,这是一个高峰,所以我试图使事情尽可能简单,仅在需要时以及当我理解时才增加复杂性,这就是我现在正在努力的目标。 public enum ExecuteResult { // node needs more time to run on next tick Running, // node completed successfully Succeeded, // node failed to complete Failed } public abstract class Node<TAgent> { public abstract ExecuteResult Execute(TimeSpan elapsed, TAgent …
25 ai  behavior-tree 

5
目标跟踪:什么时候可以加速和减速旋转炮塔?
假设我有一个移动的通知,target定义为: Vector2 position; Vector2 velocity; float radius; 旋转的turret(安装在某种移动的车辆上)定义为: Vector2 position; Vector2 velocity; float angle; // radians float angularVelocity; // radians per second const float maxAngularVelocity; // radians per second const float maxAngularAcceleration; // radians per second per second (或沿这些方向移动。请注意,两者的位置和速度都在其他位置控制-假设速度是恒定的,并且位置根据速度而变化。) 我试图在给定的框架上编写两个相关的AI函数来确定: 要对转塔的角度施加什么角加速度(以及朝哪个方向),以使转塔指向目标? 如果目标当前处于可见状态,是否可以将其(半径范围内的任何部分)保持可见状态x几秒钟,哪怕x是几分之一秒?(或者:是否有另一种策略可以确保目标实际上是“锁定在”目标,而不是简单地飞越景点?) 我可以帮忙...
24 ai  aiming 

9
有没有一种简单的方法可以阻止敌人站在同一地点?
所以:自上而下的游戏,我的敌人追赶玩家,当他们在一定距离之内时便站着不动并开火。如果它们都来自同一方向,则它们最终都将站在同一位置(即彼此“站在”内部),因为我目前不在敌人之间进行碰撞检测-它们可以自由越过彼此。 解决这个问题的简单方法是什么?某种形式的碰撞检测还是某种方式?

3
如何将有限状态机连接到基于组件的体系结构?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 状态机似乎在基于组件的体系结构中造成有害的依赖关系。 具体来说,如何在状态机和执行与状态相关的行为的组件之间处理通信? 我在哪里: 我是基于组件的体系结构的新手。 我正在制作格斗游戏,尽管我认为这并不重要。我设想我的状态机将用于切换“蹲下”,“破折号”,“阻塞”等状态。 我发现这种状态管理技术对于基于组件的体系结构来说是最自然的系统,但是它与我读过的技术相冲突: 用于可变行为角色的动态游戏对象组件系统它建议所有组件都激活/停用通过不断检查激活条件来检查自己。 我认为像“跑步”或“步行”之类的动作在状态上是有意义的,这与此处接受的响应不同:https : //gamedev.stackexchange.com/a/7934 我发现这很有用,但是模棱两可:如何在基于组件的游戏架构中实现行为?它建议有一个单独的组件,其中仅包含状态机。但是,这需要在状态机组件和几乎所有其他组件之间进行某种耦合。我不明白该如何处理耦合。这些是一些猜测: A. 组件取决于状态机: 组件接收对状态机组件的引用getState(),该引用返回枚举常量。组件会定期进行自我更新,并根据需要进行检查。 B. 状态机取决于组件: 状态机组件接收对其监视的所有组件的引用。它查询他们的getState()方法以查看它们的位置。 C. 它们之间的某种抽象 使用事件中心吗?命令模式? D. 使用引用组件状态模式的单独状态对象。创建了单独的状态对象,这些状态对象激活/停用一组组件。状态机在状态对象之间切换。 我正在将组件视为方面的实现。他们在内部完成使该方面实现所需的一切。看起来组件应该独立运行,而不依赖其他组件。我知道一些依赖是必要的,但是状态机似乎要控制我的所有组件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.