如何设计回合制游戏的AI.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何设计回合制游戏的AI 我们最近发售的作品暗影狂奔:龙陨——导演剪辑版里(Shadowrun: Dragonfall – Director’s Cut) ,拥有一个我们自己研发的AI 系统—— “秋葵 汤饭”(Gumbo)。在这篇文章里,我们会详细介绍Gumbo 是怎么被开发出来 的。我们最初定下的目标是什么,以及最后我们是如何达成这个目标的。我们希 望这篇文章能对你自己的回合制(或者即时战略)游戏里的 AI 起到抛砖引玉的作 用。 首先是一点背景知识介绍。2012 年 4 月,暗影狂奔:归来(Shadowrun: Returns)在 Kickstarter 上成功筹集到了 180 万美金,之后在 13 年的 7 月 25 日发售。之后的几个月,我们放出了一个大型的DLC 下载包——龙陨。最后在 2014 年 9 月 18 日,龙陨的导演剪辑版正式发售。 龙陨这部 DLC 一开始只是作为我们在 Kickstarter 上设立的一个达成金额的 目标。但当它最后被制作完时,却已经变成了一个很庞大的补充包,并且在游戏 的核心部分改进了很多。 我们制作组内部和许多玩家对于新加的部分都表示很满意。不过我们内部却 觉得仍有改进的余地。因此我们决定制作导演剪辑版。所有买过之前 DLC 的玩 家都会免费得到一份,因为导演剪辑版已经不是单纯意义上对原有游戏的补充和 修改,它自己已经是一部完整的游戏,所以系列的新玩家也能够直接享受最新最 好的版本。 开发之初我们在清单上写下我们想着重加强的游戏部分时,更加聪明的AI 被放在了最首要的位置。(特别是在游戏的战斗系统也有了很大的进化的情况 下)。回归和龙陨的AI 都是在 Unity 中由XML 树型分支(branching tree of xml) 推导出来的。它们中也用了很多自定义的代码来实现游戏过程中的读取数据和执 行动作。尽管这个系统在敌人基本行为的多样性上是比较成功的,但是我们一直 觉得,在有些方面我们可以做得更好。在现有的系统里,任何设计人员所希望的 调整和特殊行为都要通过工程方面的支持来实现。这非常耗时,因为资源库和代 码的重建是免不了的。这让迭代的速度变得非常慢,而且对于设计者来说,观察 AI 的决策(decision making)也变得比较困难。 目的 在游戏理论和经济学里,有一个术语叫实用度(Utility)。这个术语描述了一 种能力,它能够满足 AI 的需求。在我们的游戏里,有三种方法能够让实用度最 大化:减少所受的伤害,支援友军,最大化对敌的伤害。这几个目的往往要求了 一系列的行为,而每一种都有各自的潜在随机因素和失败的机率。在一个动态的 有智慧的世界里,每一个 AI 都应该以最大化各自的实用度作为行动准则。 以下是我们主要的开发目的。 简单 设计者在设计角色,道具以及地图的时候就应该能非常直观地看到战斗具体 是什么样子的。AI 应该充当设计环节中的最后一部分。设计者应该能很容易地 监测 AI 的一举一动,并且如果他想的话也很容易在AI 上做出修改。 安全 AI 递归或失败(Recursion or failure)在回合制游戏里会产生比较负面的影 响。在我们的第一个游戏里,我们一旦检测到AI 卡住了或者处于无限循环中, 就会引入了一个叫“卡死超时”(brain freeze timeouts)的机制。那只是一个临 时解决问题的办法,而且绝对谈不上理想。我们心目中新的AI 解决办法应该会 让有出问题的代码优雅地报告失败,而不是像之前那样直接全部杀死、结束。 可扩展性 AI 有了一套基本的行为和算法,这只是整个开发流程的第一步。因此,在 任何可能领域附加的特性都应该能用尽可能简单的方法整合到现有的AI 中去。 一些常用的套路有:加强某一种特性来达到一种前后一致的设计,并同时降低问 题发生的可能性。 快速 虽然回合制游戏看起来节奏很慢,但是AI 做决定的速度越快越好。某一个 由AI 控制的单位移动到地图上的某一位置,并且决定采取某种攻击,在这两者 之间的间隔是百害而无一利的。这原因就在于,这种停顿和间隔会在游戏里重复 无数次。同理,地图上所有的 NPC 也不可能有很多时间来思考下一步该做什么, 即使还没有轮到他们战斗,但是在游戏中这种状态会随时发生变化。我们的新 AI 会尽可能快地处理上述所有问题。 我们的解决方法 我们决定开发一种叫做 GumboScript 的轻量化新语言。

文档评论(0)

7号仓库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档