游戏体验 · 2024-01-10

《战神5·诸神黄昏》部分游戏拆解

这是拆解不是测评
经典的箱庭解密+四五两代沉积下的战斗系统厚度

动作系统碎碎念

 
四套动作系统的设计(盾牌、axe、双刃、长矛)

动作设计师非常成熟,依旧遵循成本与收益基本准则

输入成本 战斗收益
动作前摇后摇幅度、指令复杂度 伤害、削韧强弱、控制强弱

AXE、双刃、长矛都各有5套连击派生系统。但从总体动作收益来说,似乎不鼓励玩家完成连招的终结攻击,并且如果触发终结攻击反而会打断战斗体验,有种顿挫感。

与之相反的是,在中段连击中极其丝滑的武器切换,更鼓励玩家在战斗连击中切换武器,让玩家在四套动作系统中段连击循环中找到爽感。甚至为了让你保证正确的中段连击循环,可以在技能树中禁用部分派生动作,可能是设计师发现过多的终结派生在战斗中反而是种负担。
 

相较于前作,新增了盾牌性能以及长矛动作。使得战斗系统更加难平衡,在感性观感上2分钟的战斗流程可以打的很华丽,但从平衡上却更加难做了,其中盾牌则是重灾区。本作的盾牌的GP百分百削韧+子弹时间+宽松GP判断,使其成为收益最高的单体动作。让我在多种敌人配置环境下,大部分情况都在找盾牌GP空间。

另外一个难平衡点则是符文系统,在前作中曾围绕有着符文技能的bulid体系,但在本作中,由于多了套矛的符文技能,导致6个符文技能配合伙伴符文技能,可以控制精英甚至BOSS整整10秒,如果技能依旧维持前作高伤害,则会打破整体战斗平衡。因此,本作中的所有符文技能伤害似乎都砍半了,部分符文伤害收益甚至不如一个GP配一套中段连击。而且符文技能释放后的长后摇导致武器切换不流畅,反而导致战斗的顿挫感(虽然感官上非常爽快)。因此推测设计战斗系统时,更多的是将符文技能定位成控制而非伤害输出。
 

最后则是斯巴达之怒机制,则是作为常规动作中“血瓶”存在,在进入战斗僵局或者绝境时回复血量,减轻战斗场地以及敌人攻击压力的定位。

最后最后再补充一下,这个饰品机制,真的从头到尾没有用到…可能制作者想让玩家配合装备、符文、护符去做bulid,丰富操作手感,有个灵活的战斗资源配置格,不与武器系统绑定。但是自身对这个系统存在还是感受到了鸡肋,甚至没有动作空间去塞入这操作…
 

围绕着这样的战斗体系,我则揣测出战斗设计的设想定位

战斗开始 战斗环境控制 核心输出 环境变量 战斗气口
控制起手(符文技能、控制动作) 远程武器投掷或强制位移动作 武器切换+中段循环+盾牌GP 控制动作+武器属性切换 动作处决+符文技能+斯巴达之怒

 

当然以上的战斗系统都建立在极其优秀的指令输入管理,对指令的节流、防抖、权重控制都是顶级的(真正gameplay系统中的技术手艺活)

 


优秀的控制输入管理技术思考

 
在面对四套动作系统切换时,以及派生动作,节流、防抖、权重是如此重要

防抖(Debounce)
防抖技术确保在一段时间内,无论事件触发多少次,只有一次处理函数会被执行,以避免不必要的处理,导致额外派生动作发生。

设计逻辑:

  • 设置一个延迟时间阈值。
  • 记录上一次触发事件的时间。
  • 如果当前事件与上一次事件的时间差小于阈值,则忽略当前事件。
public class DebounceExample : MonoBehaviour
{
    private float lastTimePressed = 0f;
    private float debounceTime = 0.3f; // 300毫秒的防抖时间

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            float currentTime = Time.time;
            if (currentTime - lastTimePressed >= debounceTime)
            {
                HandleJump();
                lastTimePressed = currentTime;
            }
        }
    }

    void HandleJump()
    {
        Debug.Log("Jump!");
    }
}

 
设计一个输入管理器(Input Manager)来处理这些需求。做是一个简化的设计逻辑和伪代码:
设计逻辑:

1. 定义输入事件:创建一个输入事件类,用于封装输入信息和相关回调。
2. 注册输入事件:允许将输入事件与特定的按键或动作关联,并设置优先级。
3. 处理输入:在更新循环中检测输入,并根据注册的事件和优先级调用相应的回调。
4. 缓存输入:将输入事件缓存起来,以便在需要时可以回溯或重复使用。
5. 指令优先级:使用优先级队列或其他数据结构来确保高优先级的指令先被处理。

// 定义输入事件类型
public enum InputEventType{ }
// 输入事件回调委托
public delegate void InputEventCallback(InputEventType type);
// 输入事件类
public class InputEvent
{
    public KeyCode key;
    public InputEventType type;
    public int priority;
    public InputEventCallback callback;
    public InputEvent(KeyCode key, InputEventType type, int priority, InputEventCallback callback)
    {
        this.key = key;
        this.type = type;
        this.priority = priority;
        this.callback = callback;
    }
}

// 输入管理器
public class InputManager : MonoBehaviour
{
    private Dictionary<KeyCode, List<InputEvent>> inputEvents = new Dictionary<KeyCode, List<InputEvent>>();

    void Update()
    {
        // 检测所有注册的输入事件
        foreach (var key in inputEvents.Keys)
        {
            // 可以添加其他事件类型的检测,如长按或持续按住
        }
    }

    // 注册输入事件
    public void RegisterInputEvent(KeyCode key, InputEventType type, int priority, InputEventCallback callback)
    {
        inputEvents[key].Add(new InputEvent(key, type, priority, callback));
        // 确保按优先级排序
        inputEvents[key].Sort((a, b) => b.priority.CompareTo(a.priority));
    }
    // 触发输入事件
    private void TriggerEvents(KeyCode key, InputEventType type){ }
    // 取消注册输入事件
    public void UnregisterInputEvent(KeyCode key, InputEventCallback callback){ }
}

 

关卡设计底层拆解

 

多层次的箱庭解密

不知为何,我特别想拿同时代的《地平线》系列来与《战神5》做对比。虽然前者是开放世界、后者则是大箱庭,不是同种类型,但在我理解中,都是以地形解谜穿插战斗环节来构成关卡节点,再由节点串联后撑起一整个关卡流程,再由任务系统串联关卡变为章节
其中米德嘉尔、瓦斯纳海姆、华纳海姆三张图是本此游戏的核心,通过小开放世界+多箱庭撑起了地图。其余赫尔海姆、约顿海姆其本身是一箱庭一张图。

在《战神》中一个关卡近似一个箱庭,对每个箱庭可以拆解为这么几个模块

箱庭侧重定位 叙事、战斗、探索、教学
节点类型 叙事型、战斗型、教学型、解谜型
战斗节奏 敌人种类配置、是否软引导玩家战斗模组切换
箱庭地图设计 跑图时长控制,地图指引设计
解谜类型 类九连环式开门,武器互动式开门
箱庭探索心流 类九连环式开门,武器互动式开门

其中最值得说道的是地图设计,利用解密、道具开门,80%的节点地图都遵照着回型设计思路。既完成一个解密节点地图,出发点与结束始点重合。并利用场景中锚定场景标志物进行方位判断,让玩家不走回头路

虽然这是大部分设计思路,但是《战神》地图设计真正厉害在于,利用单向门等机制,将一个节点的跑图流程变成的多层次。(这样的设计是真掉头发,并且得有强大的项目管理能力,协同演出、战斗、等部门配合关卡实现效果)

以上的箱庭设计在华纳海姆后期开放的三块区域达到了顶峰,但同时也让我有了探索压力

接下来就是需要吐槽的一点地方,如此复杂的关卡地图,除了解密、战斗、演出、剧情带给玩家的推图动力。资源奖励分布则在这些箱庭中给我带来了焦虑情绪(当然这部分就是数值成长系统相关了),数值成长低了,就会有高的资源诉求,诉求多了自然带动推图动力。但这个量对于我个人来说明显是不平衡,看见资源宝箱后,我就会被当前路径卡死焦虑很久

另外则需要吐槽串联各个箱庭的路径的枯燥(划船、雪橇、沙撬),虽然一方面是提供了电影化叙事空间,但是在二次回到这地图后,只让我感受了三百六十里路,痛苦。制作组也意识到了这个问题,在后期增加了二次探索时方可开启的传送门。但问题是我需要二次探索才能开启这传送门,雪橇,划船这些流程在二次探索时还得走啊!尤其是瓦斯纳海姆这图,划船是甬道路径,非常的无聊!


最后再拆聊数值

数值与能力本作拆分到了武器系统、套装效果、符文系统、以及数值成长道具这块区域中。
虽然这部分是应该最需要统计模型来量化的,但是我还是体感侧面来侃侃吧(主要确实自己确实暂时没有这个能力,也不像WOW有大佬开发的数值模拟工具)

感受到数值成长这块被大量消耗在了关卡设计中,为了推动玩家去跑图,除了支线任务,更多的就是数值道具的分散。

于是出现了这样循环:阶段性主线箱庭完成后,发现数值跟不上下一阶段的敌人成长,然后被迫去探索地图。(其实战斗也不难,但是一单拉长了战斗时长,反而会觉得疲惫引起消极情绪,带着消极情绪去探图,进入负循环)但这也比FF16好,主线完成后强制做支线的设计思路,怕是脑子被门挤了


剧情方面

虽然《战神5》副标题是诸神黄昏,但是这电影化叙事的核心依旧延续了上部父与子。情感表演极其细腻,并在游戏内用巨量的自动文本对话、特定叙事节点等、战斗对话、特定演出,无孔不入的将父子之间的情感变化传递给玩家。

并且在前作一镜到底的电影思路,在本作中更强大服务于叙事。用匕首镜头、挥拳镜头无缝切换奎托斯与阿特柔斯,不同空间下,父子情的相连

经历父子互相关心但不说,阿特柔斯叛逆离家,到奎托斯信任、敞开心扉,再到奎托斯放手长大了阿特柔斯。游戏配合全程着无孔不入的情绪渲染,让这篇电影深入我的心扉

在这父子情感线外,还有奎托斯与劳菲的内心情感变化,然这单亲家庭变的复杂而感人。从电影角度来说,这是个俗套家庭亲情的故事。但是配合着游戏这样交互体验,更能带我的情感,毕竟50个小时的情绪体验不是能被2小时电影式评价所代表的。