由于手动彻底测试视频游戏软件非常困难,因此需要拥有能够自动探索不同游戏功能的人工智能代理。此类代理的关键要求是玩家动作的模型,代理可以使用该模型来确定不同游戏状态下的可能动作集,以及对代理策略选择的游戏执行选定的动作。目前使用的典型游戏引擎不提供这样的动作模型,导致现有的工作要么需要人工手动定义动作模型,要么不精确地猜测可能的动作。在我们的工作中,我们通过为游戏中存在的用户输入处理逻辑开发最先进的分析方法来演示程序分析如何有效解决该问题,该分析可以使用离散动作空间自动建模游戏动作。
我们的主要见解是,游戏可能的动作对应于可以通过游戏代码中存在的用户输入处理逻辑采取的不同执行路径。我们的方法首先使用依赖性分析和程序切片等技术来识别负责用户输入处理的代码部分。接下来,我们设计了一个专门的符号执行,它使用用户输入和游戏状态的符号表示来评估输入处理代码,从而为我们提供了发生不同游戏操作的一组条件。这组条件用于定义游戏的离散动作空间,其中每个动作对应于不同的执行路径。最后,我们提出了有效的分析,用于确定代理玩游戏时的有效操作集,以及在游戏上模拟以执行所选操作的相关设备输入集。
我们为 Unity 游戏引擎实现了动作分析的原型,然后用它来自动指定两种流行探索策略的动作规范:简单的随机探索,其中代理均匀地随机选择有效动作,以及好奇心驱动的强化学习,代理随着时间的推移学习优先考虑更有可能导致新状态的行动。我们的主要发现是,对于我们数据集中的大多数游戏,使用我们分析确定的动作的代理实现的探索性能与手动注释游戏动作的理想情况相匹配或超过,平均而言实现了更好的性能。这证明了自动分析能力的一个关键优势是能够详尽地考虑所有可能的执行路径,因此通常比人工注释识别更多的有效输入组合。
随着计算机游戏自动化测试和分析技术的重要性日益增加,我们相信我们的工作为部署基于智能代理的下一代游戏测试工具提供了至关重要的组成部分。然而,即使使用我们的自动化方法来识别有效动作及其相关设备输入,探索大型游戏状态空间仍然很困难。开发新的探索策略、改进和启发式方法以供我们的分析使用,是实现更好的游戏测试代理的重要后续步骤。
版权声明
本文仅代表作者观点,不代表本网站立场。
本文系作者授权本网站发表,未经许可,不得转载。
发表评论