type
status
date
category
summary
language
面向群体
游戏品类
资料类型
平台
tags
password
Sub-项目
作者
文章链接
来源
标签
Parent 项目
发布时间
slug
icon
作为一名新入职的程序员,我在第二年被分配到了《塞尔达传说:荒野之息》的开发团队,并负责编写马的动作程序。那时候我既感到紧张又备受鼓舞。因为虽然我在入职后曾参与过Wii U主机功能和某个游戏的开发,但大部分都是辅助性的工作,这是我第一次真正参与游戏开发。
在编写马的动作时,一种方法是根据控制器的输入来实现动作。但是这样做的话,马的动作就会像机器一样被遥控操纵,失去了乘坐生物的感觉。因此,在负责马之前,我决定使用之前参与开发的路径规划程序。例如,当林克遭遇敌对怪物集团时,它们会在避开各种障碍物的同时,分别选择路径进行攻击,这是因为路径规划程序的运用。

避免眼前的障碍物的机制
因此,我尝试将路径规划应用于马的动作,但在通过复杂地形时,马的行动会变得难以理解。换句话说,由于马变得过于聪明,它会预测到遥远处尚不可见的障碍物并绕过它们。结果,玩游戏时会感到非常不适,所以我进行了多次尝试和试错。最终,我决定只让马避开眼前的桶或岩石等障碍物。因此,在离完成还有4个月的时候,我放弃了这个富有情感的路径规划程序。
可爱但又让人讨厌
《荒野之息》的世界非常广阔。而且,其中的魅力之一就是玩家可以去想去的地方。但是,在让马奔跑时,会遇到很多障碍物。因此,我决定在不同地方让马奔跑并进行验证。只要马的动作稍有不符合自己的预期,我作为程序员就会感到非常遗憾。这可能只是一些微小的事情。然而,为了减少这种令人遗憾的情况,我一边重新观看该场景的录像,一边逐个验证是如何计算和实现这些动作的,一直持续修正,直到最终完成。

各种动作
除了让马奔跑外,我还编写了许多其他动作的程序。例如,当在地面上放置苹果或胡萝卜时,马会吃掉它们;当主角林克吹口哨时,马会跑过来,这也是使用前面提到的路径规划程序。此外,我还编写了程序,让马能够在林克吹口哨时跑过来,以便林克可以及时跳上后面跑来的马。看到这些马的动作,我觉得它们非常可爱,但与此同时,我也为它们给我带来的困扰而有点讨厌。