像素画游戏Shovel Knight游戏调试经验分享

摘要:像素画游戏Shovel Knight游戏调试经验分享

关键词:像素画,Shovel Knight,独立游戏,游戏开发,游戏调试,经验

撰文&编辑:三二 

教你画像素画首发 | 公众号 pixelart

本文共2658个字,阅读大约需要8分钟。



为什么需要游戏调试?

通过在游戏中实现强大的调试功能,我们大大缩短了游戏迭代时间!“游戏调试”通常是指发现游戏bug。

创建这些仅供开发人员使用的调试工具可以节省大量时间,进而使我们能够构建更强大,更令人兴奋的游戏体验。


通常,当玩家启动游戏时,他们会看到游戏标题画面。但是开发人员版本会直接看到上面的调试屏幕!开发人员可以启动想要玩的关卡,设置角色,设置多人游戏选项,切换保存位置等等!在游戏中的任何时候,都可以退出游戏并返回调试菜单。调试菜单为开发者提供了极大的灵活性,可以跳转到游戏的各个关卡并快速进行迭代!

我们认真考虑如何减少测试游戏的时间。我们甚至提供了搜索关卡选项,因为花时间点击所有关卡太浪费时间了!

在上面的gif中,所有设置的选项都将保存并显示在右上角。可以“固定”特定关佧,从而可以通过某些设置直接启动到该关卡。

此外,还会显示诸如版本号和日期之类的信息,以便确切地知道在玩什么。否则当尝试修复游戏错误版本中的错误时,可能会引起极大的混乱。

控制台


控制台是简单而有效的工具,可快速访问更多调试功能-也许这就是为什么它们从一开始就存在于游戏中!即使我们尝试将所有可能的命令绑定为快速按,有时也很难映射复杂的操作。这就是为什么我们需要一个控制台!它可以使用数百个命令,包括设置特定的保存数据,生成敌人以及创建有用的调试视觉效果。我们需要确保彻底记录所有这些控制台命令,以免忘记。

在上面的示例中,可以看到我们绘制了铲子骑士与之交互的所有碰撞点,以及他在屏幕上的攻击和防御框。这使我们可以清楚地看到铲铁骑士或敌人为何会受到伤害。“Boss”命令直接将铲子骑士传送到Boss那里!

我们还确保可以将这些复杂的控制台操作(采用许多参数或烦人的输入命令)保存到自定义键盘中。我们为团队中的每个人提供了一个自定义游戏并可以轻松使用它的动作。

飞行


我们可以按一个按钮使角色快速飞过关卡(如果需要,也可以非常缓慢地飞过)。我们可以跳过关卡,飞过墙壁,并避免受伤。此外在飞行时可以在控制器上添加许多调试功能,因为在正常游戏过程中玩家永远不会处于这种状态。在飞行中,可以添加或减少生命/魔法/金钱,升级,杀死敌人,将第二个角色卡入位置等等!

QA:按键提示


在右上角有一个显示屏,显示正在按下的按钮。还可以查看播放器的位置,舞台和房间号。这样就很容易报告bug并跟踪bug来源,而不必记住游戏中的所有新增内容。

AI逻辑显示可能会非常复杂。了解并能够切换有关游戏为何以某种特定方式运行的信息有助于我们快速找出如何使其变得更好的方法。

漂移摄像机

制作游戏时,有时,角色可能会漂移,或者其深度不太清楚。我们创建了一种根据需要操纵摄像机的方法,因此可以弄清楚某些元素是如何交互的。

帧率控制


当必须以每秒60帧的速度观看游戏,要确保每个小东西都是完美的帧可能是一项挑战。因此,我们有专用于逐帧浏览游戏的设置。


我们还可以随时加快或降低游戏速度。这可以调整自动滚动的持续时间,并使重复操作变得更加容易(因为可以以较低的速度进行游戏操作)。

游戏回放


玩家每个输入都会被记录并保存在本地。然后可以将其启动并播放,从而重新创建游戏体验。这使得查找罕见的错误变得更加简单-只需重现一次问题!团队中的任何人都可以直接将其控制输入的记录发送给QA质量检查人员,这样他们就可以在回放时亲身体验发生的事情。

实时重建/重新加载

重新加载游戏美术资源不仅很重要,而且能够重新加载关卡状态也同样重要。可以重复而轻松地测试与对象的各种交互。

多机种支持


只要我们具有特定于控制台的功能,就尽可能创建与PC等效的功能。这样,开发团队中的每个人都不需要在自己的桌子上放所有游戏主机。我们都可以使用PC更快地进行迭代!

角色统计


由于游戏规模很大,因此很难跟踪上次访问或进入房间的区域。因此,我们创建了一个工具来显示玩家最近的关卡,保存文件和播放日期,以及角色的确切位置。

专用调试工具

前面的介绍的调试工具可以用于绝大部分游戏。下面是Shovel Knight的专用调试工具。

文本工具

我们拥有专门用于在各种菜单中以所有可用语言查看游戏文本的工具。这使得管理12种语言数千行对话和菜单字符变得更加容易。它还使本地化团队可以轻松地检查其翻译。

金币统计

平衡游戏金币的价值需要在整个开发过程中进行大量调试。我们不希望玩家能够轻易购买任何东西。同时,我们希望玩家感觉自己得到了合理的回报,即使他们没有达到最佳状态。最后,我们要确保在整个游戏过程中,宝藏的价值能平稳上升。这就是为什么需要开发一种工具,使我们可以对每个关卡提供多少金币进行统计。这也有助于确认每个关卡需要包含多少收藏品-超级有用!

调色板测试

当美术、程序和引擎显示不同时,很难调试调色板效果。调色板调试工具可让我们加载游戏精灵并检查视觉效果是否正常。

卡片管理

当卡牌数量超过100时非常难以管理!为了解决这个问题,我们创建了一个特定的工具来跟踪在游戏世界中哪里可以找到卡片。

对手查找

我们希望每个角色都有一个朋友(或克星)在整个冒险模式中与之对抗。该竞争对手还将为每个角色的故事提供主要动力!不幸的是,我们意识到给20个角色对应一个对手就意味着10192158720个组合。

我们要确保每个角色都有一个独特的对手,并且没有人可以成为彼此的对手。我们不能仅凭脑力解决这个问题,所以做了一个求解器。首先,我们创建一个数据集,列出了每个角色必须具备的一些竞争对手偏好。然后,创建工具来生成选项,并根据这些首选项对它们进行排名!

身体交换

我们开发了一种工具,可以在屏幕上显示需要换装的角色。这使我们能够比较检查换装后的角色是否正常。

关卡扫描

每次更改游戏时,构建系统都会自动创建开发人员版本和可交付版本。但是,如果游戏更改会产生新bug怎么办?为了解决这个问题,我们建立了关卡扫描工具,可以快速检查关卡的每个房间,以查看是否发生bug!

AI测试

如果不花费大量时间,几乎不可能找到某些bug。当拥有AI时,这将变得容易得多,因为可以让AI永远为您服务!我们编写了一些AI测试,使游戏可以长时间的玩下去。

卡牌模拟

随着游戏复杂性和深度的增加,平衡卡牌变得非常棘手。因此,我们设置了一个工具,可以模拟卡牌游戏而无需实际玩!这有助于弄清我们的AI和卡牌的优缺点。

过场动画/保存加载

可以随时直接查看过场动画或加载自定义存档,而无需玩游戏!

gif截图

内建了gif截图捕获,方便游戏bug共享以及满足游戏宣传用图需要,可以节约大量时间。

完。


Author: pixel32