Oneshot Gems
立即玩

游戏开发者指南

控制使游戏测试可重复的变量

如果测试只有在敌人恰好生成在玩家旁边时才失败,就很难把它当作可靠信号。确定性测试会控制重要的变化因素,让相同设置沿着规则产生相同路径。目的不是消除实际游戏中的随机性,而是让测试的初始条件足够可预测,从而看出代码或游戏生成提示的更改是否改变了行为。

本页内容

识别不受控制的输入

列出运行之间可能有所不同的任何内容:随机敌人位置、经过的时间、动画帧计时、保存的高分、视口尺寸和用户输入序列。确定哪些变量对被测行为很重要。对于碰撞检查,请使用固定的敌人位置和已知的玩家起点。对于生成模式检查,控制随机序列,但测试多个选定的种子,以便一种设置不会隐藏不良模式。

控制时间而不冻结玩家行为

对于计时器规则,提供明确的开始时间并检查在有意义的边界处发生的情况,例如剩余三秒且恰好为零。对于基于帧的运动,比较相同的经过持续时间而不是相同数量的渲染帧。 MDN 指出 requestAnimationFrame 回调频率通常遵循显示刷新率,并且在大多数浏览器中隐藏选项卡时回调会暂停;因此,动画代码在计算进度时应使用其时间戳或其他时间源。

关于⁨确定性游戏测试⁩的常见问题

确定性测试是否意味着消除随机游戏玩法?

不。这意味着在选定的测试中控制随机性来比较行为。您仍然可以对不同的种子进行单独的探索性测试,以检查游戏的范围。

为什么测试可以在本地通过而在浏览器中运行失败?

不同的时间、视口、保存的状态或随机序列可以改变设置。记录这些条件并控制与正在检查的行为相关的条件。

延伸阅读

发现信息过时了? 报告需要更正的内容

继续玩下去。

免费浏览器游戏,随时等你开玩。发现喜欢的游戏,让它成为你的下一个最爱。

跟随好奇心探索