☰
三款AI编程助手实测:Step 5、DeepSeek V4 Pro、GLM5.3开发3D游戏对比
2026/11/2 10:06:13 网站建设 项目流程

1. 三款模型同台竞技的背景与实测动机

1.1 为什么我要做这次横向对比

最近这段时间,AI 编程助手这个赛道热闹得有点不像话。Step 5 Preview、DeepSeek V4 Pro、GLM5.3 这三个名字几乎同时出现在我的信息流里,身边做开发的朋友分成三派,各说各的好。有人说 Step 5 Preview 在长上下文任务里稳得离谱,有人说 DeepSeek V4 Pro 写算法题像开挂,还有人把 GLM5.3 吹成了"国产代码模型天花板"。听多了这种争论,我反而起了逆反心理——与其看别人吵架,不如自己动手做一次真实项目的横向实测。

我选的项目是从零做一个 3D 游戏。为什么偏偏选 3D 游戏?因为这类项目对模型的考验是全方位的:它既需要数学功底(向量、矩阵、四元数、碰撞检测),又需要图形学知识(渲染管线、光照模型、着色器),还得有工程能力(场景管理、资源加载、状态机),最后还要能把这些东西组织成能跑起来的完整代码。一个模型如果只会写 LeetCode 风格的算法题,在 3D 游戏这种综合性任务上会立刻露馅。这就像考驾照,场地考满分不代表上路不熄火。

这次实测我给自己定的规则很简单:同一个需求描述,分别喂给三个模型,看谁产出的代码能最快跑起来、结构最合理、后续扩展最省心。需求我写得尽量克制,不引导任何特定实现方式,让模型自己发挥。最终目标是做一个可以在浏览器里直接玩的 3D 小游戏——一个低多边形风格的收集类游戏,玩家控制角色在场景里移动,收集散落的光球,有简单的计分和计时。

1.2 三个模型的基本盘与预期

在动手之前,我先梳理了一下三个模型的定位,这有助于理解它们后续的表现差异。

Step 5 Preview是阶跃星辰推出的预览版本,主打长上下文和复杂推理。从公开信息看,它在多轮对话和长文档理解上有明显优势,这对 3D 游戏这种需要"记住前面写了什么"的任务很关键。我预期它在代码一致性和跨文件组织上会表现不错。

DeepSeek V4 Pro是深度求索的旗舰版本,代码能力一直是它的招牌。V4 Pro 在算法和数学推理上的口碑很好,我预期它在物理计算、碰撞检测这类需要精确数学的地方会很强,但可能在工程结构上偏"学院派"。

GLM5.3是智谱的最新版本,综合能力均衡,中文理解尤其出色。我预期它在理解我的中文需求描述时最不容易跑偏,代码风格可能偏实用主义。

提示:做模型横向对比时,一定要先明确每个模型的定位和擅长领域,否则很容易用"苹果和橘子"的方式得出错误结论。比如拿一个擅长算法的模型去比工程结构,本身就不公平。

1.3 实测环境的统一配置

为了保证对比的公平性,我把三个模型的运行环境尽量统一。测试机器是一台 32GB 内存、RTX 4070 显卡的工作站,操作系统是 Ubuntu 22.04。三个模型都通过各自的 API 接口调用,温度参数统一设为 0.3(偏低,减少随机性),最大输出长度设为 8192 token。前端运行环境是 Chrome 120,用 Vite 做本地开发服务器。

这里有个细节值得说:温度参数的选择对代码生成影响很大。我试过 0.7 的温度,三个模型都会出现"自由发挥"的情况,比如擅自引入我没要求的库,或者把简单的实现复杂化。调到 0.3 之后,输出明显收敛,更贴近需求本身。如果你也在做类似的代码生成测试,建议从 0.2 到 0.4 之间开始调。

2. 需求拆解与三模型首轮产出对比

2.1 我给出的需求描述原文

为了让对比有据可查,我把需求描述原文贴出来。这段描述我刻意写得像产品经理给开发提需求,不涉及任何技术选型:

做一个 3D 收集类小游戏,浏览器里能直接玩。玩家用 WASD 控制一个角色在平面上移动,鼠标控制视角旋转。场景里随机散布 20 个发光的光球,玩家靠近光球就能收集,每收集一个加 10 分。游戏限时 60 秒,时间到了显示总分。场景要有地面、几棵树或者柱子作为参照物,光照要自然一点。角色移动要平滑,不能一顿一顿的。

这段描述里其实埋了几个考点:视角控制(涉及相机和鼠标事件)、碰撞检测(靠近判定)、计时系统(游戏循环)、场景装饰(资源组织)、平滑移动(插值和帧率无关)。哪个模型能把这些点都照顾到,基本就能看出它的综合能力。

2.2 Step 5 Preview 的首轮产出分析

Step 5 Preview 拿到需求后,第一轮就给出了一个相当完整的方案。它选择了 Three.js 作为渲染引擎,理由是"浏览器 3D 场景的事实标准,生态成熟"。这个选择很务实,没有为了炫技去用原生 WebGL。

它的代码组织让我印象深刻:主动拆成了五个模块——场景初始化、角色控制、光球管理、游戏状态、主循环。每个模块职责清晰,模块之间通过一个简单的状态对象通信。这种结构不是需求里要求的,是它自己判断"这样更好维护"才做的。我特意检查了模块间的依赖关系,没有循环引用,说明它在生成时是有全局规划的,不是一段一段拼出来的。

平滑移动这块,它用了deltaTime做帧率无关的插值,代码里明确写了position.lerp(targetPosition, 1 - Math.pow(0.001, deltaTime))。这个写法比简单的lerp(a, b, 0.1)要专业,因为后者在不同帧率下移动速度会不一致。这个细节说明 Step 5 Preview 对游戏开发的常见坑是有认知的。

不过它也有个小问题:光球的碰撞检测用了简单的距离判断,但没有考虑角色本身的半径。结果就是玩家要走到光球正中心才能收集,手感偏"硬"。这个问题在三个模型里都出现了,后面我会专门讲怎么修。

2.3 DeepSeek V4 Pro 的首轮产出分析

DeepSeek V4 Pro 的首轮产出走的是另一条路。它同样选了 Three.js,但代码风格明显更"数学化"。角色移动部分,它没有用简单的向量加法,而是引入了速度向量和加速度的概念,做了一套带阻尼的移动系统。代码里能看到velocity.multiplyScalar(damping)这样的写法,物理感很强。

碰撞检测是它的亮点。它没有用简单的距离判断,而是写了一个球体与球体的精确碰撞函数,还考虑了角色移动速度对检测的影响,加了简单的"防穿透"处理。这段代码的数学严谨性明显高于另外两个模型,注释里还推导了为什么用平方距离而不是开方距离(性能优化)。

但它的工程结构就相对松散。所有代码几乎都堆在一个文件里,虽然有注释分隔,但没有模块化。我数了一下,单文件超过了 600 行。对于一个小游戏来说能跑,但如果要扩展成更复杂的项目,这个结构会很快变成负担。这印证了我之前的预期:DeepSeek V4 Pro 强在算法和数学,弱在工程组织。

还有个细节:它的光照设置偏暗,场景看起来有点"阴天"的感觉。需求里说了"光照要自然一点",它用了环境光加方向光,但方向光强度给低了。这个不算错,但说明它对"自然"的理解偏保守。

2.4 GLM5.3 的首轮产出分析

GLM5.3 的首轮产出是最"接地气"的。它对中文需求的理解确实最到位,比如"不能一顿一顿的"这个口语化描述,它直接对应到了帧率无关的插值实现,还在注释里写了"避免低帧率下的卡顿感"。

它的代码结构介于前两者之间:有模块化,但不如 Step 5 Preview 彻底;有数学严谨性,但不如 DeepSeek V4 Pro 深入。它把代码分成了三个文件——主逻辑、工具函数、配置常量。配置常量单独抽出来这个做法很实用,因为游戏参数(比如移动速度、光球数量、时限)经常要调,抽出来之后改起来方便。

GLM5.3 最让我惊喜的是它对场景装饰的处理。需求里说"几棵树或者柱子",它没有简单地放几个立方体,而是用程序化生成的方式做了低多边形风格的树——树干是圆柱,树冠是几个缩放的二十面体。这个细节让场景看起来明显比另外两个模型更有"游戏感"。而且它把树的生成封装成了函数,可以传参数控制树的密度和大小,扩展性很好。

它的短板在计时系统。它用了setInterval来做倒计时,而不是在游戏主循环里累加deltaTime。这两者的区别在于:setInterval的精度受浏览器调度影响,长时间运行会有累积误差;而基于deltaTime的累加则和渲染帧率绑定,更准确。这个小问题在 60 秒的游戏里影响不大,但如果是长时间运行的游戏就会暴露。

2.5 首轮产出对比速查表

对比维度Step 5 PreviewDeepSeek V4 ProGLM5.3
渲染引擎选择Three.jsThree.jsThree.js
代码模块化五模块,最彻底单文件,最松散三文件,居中
移动平滑处理帧率无关插值速度+阻尼物理帧率无关插值
碰撞检测精度简单距离精确球体碰撞简单距离
场景装饰基础几何体基础几何体程序化低多边形树
计时系统主循环累加主循环累加setInterval
中文需求理解良好良好最佳
首轮可运行性直接可跑直接可跑直接可跑

这张表是我实测后整理的,不是模型自己说的。从表里能看出,三个模型都能完成基本任务,但各有侧重。没有哪个模型是全面碾压的,选哪个取决于你更看重什么。

3. 核心环节的深度实测与代码剖析

3.1 角色移动系统:三种实现思路的取舍

角色移动是 3D 游戏的手感基础,这块我花了最多时间对比。三个模型的实现思路差异很大,值得逐个拆解。

Step 5 Preview 用的是目标位置插值法。每一帧根据输入计算出一个目标位置,然后让角色当前位置向目标位置插值。核心代码大概是这样:

// Step 5 Preview 的移动实现 const targetPos = currentPos.clone().add(moveDirection.multiplyScalar(speed * deltaTime)); mesh.position.lerp(targetPos, 1 - Math.pow(0.001, deltaTime));

这个写法的好处是移动非常平滑,而且天然帧率无关。1 - Math.pow(0.001, deltaTime)这个系数是经过推导的,保证在不同帧率下每秒的插值进度一致。缺点是角色永远"追不上"目标位置,会有一个微小的延迟感。对于收集类游戏来说这个延迟可以接受,但如果是格斗游戏就会影响操作精度。

DeepSeek V4 Pro 用的是速度阻尼法。它维护一个速度向量,输入改变的是加速度,速度再积分成位置,同时速度每帧乘以一个阻尼系数。代码大概是这样:

// DeepSeek V4 Pro 的移动实现 velocity.addScaledVector(acceleration, deltaTime); velocity.multiplyScalar(Math.pow(damping, deltaTime)); mesh.position.addScaledVector(velocity, deltaTime);

这个写法物理感最强,角色有惯性,起步和停止都有加速减速过程,手感偏"重"。适合模拟真实物理,但对于一个轻松的收集游戏来说有点"用力过猛"。而且阻尼系数的调参比较敏感,调不好角色会像在冰面上滑。

GLM5.3 用的是直接位移法加平滑。它先直接算出位移,然后对位移做一个平滑处理:

// GLM5.3 的移动实现 const displacement = moveDirection.multiplyScalar(speed * deltaTime); const smoothed = displacement.clone().multiplyScalar(smoothingFactor); mesh.position.add(smoothed);

这个写法最简单直接,手感介于前两者之间。smoothingFactor是一个 0 到 1 之间的常数,调起来直观。缺点是它其实不是严格帧率无关的,smoothingFactor固定的话,高帧率下平滑效果会减弱。不过在实际测试中,60 帧和 120 帧的差异肉眼几乎看不出来。

实操心得:如果你要做的是休闲游戏,GLM5.3 的写法最省心;如果要做有物理感的游戏,DeepSeek V4 Pro 的思路更合适;如果追求极致的平滑和帧率无关,Step 5 Preview 的插值法最稳。我最后在项目里用的是 Step 5 Preview 的方案,因为收集类游戏对操作精度要求不高,平滑优先。

3.2 碰撞检测:从"能跑"到"手感好"的关键

碰撞检测这块,三个模型的差距在首轮就体现出来了,但真正的问题是在实测中才暴露的。

前面说过,Step 5 Preview 和 GLM5.3 都用了简单的距离判断,DeepSeek V4 Pro 用了精确球体碰撞。听起来 DeepSeek 更好,但实际测试下来,问题不在精度,而在判定半径。

简单距离判断的代码是这样的:

// 简单距离判断 const dist = player.position.distanceTo(orb.position); if (dist < collectRadius) { collectOrb(orb); }

这里collectRadius如果设成光球的半径,那玩家必须走到光球正中心才能收集,手感很"硬"。如果设成光球半径加玩家半径,手感就自然多了。三个模型里,只有 DeepSeek V4 Pro 在代码注释里提到了这一点,另外两个都需要手动调。

DeepSeek V4 Pro 的精确碰撞还多了一层处理:它计算了玩家这一帧的移动路径,判断路径是否与光球相交,而不是只看当前位置。这解决了高速移动时"穿透"光球的问题。代码大概是这样:

// DeepSeek V4 Pro 的防穿透检测 const movement = player.position.clone().sub(player.prevPosition); const toOrb = orb.position.clone().sub(player.prevPosition); const t = toOrb.dot(movement) / movement.lengthSq(); const clampedT = Math.max(0, Math.min(1, t)); const closestPoint = player.prevPosition.clone().add(movement.multiplyScalar(clampedT)); if (closestPoint.distanceTo(orb.position) < collectRadius) { collectOrb(orb); }

这段代码的数学是投影几何,把玩家移动路径投影到光球方向,找到路径上离光球最近的点,再判断距离。这个处理在玩家移动速度很快时特别有用。我实测把玩家速度调到很高,Step 5 Preview 和 GLM5.3 都会出现"穿过光球但没收集"的情况,DeepSeek V4 Pro 则稳定收集。

不过这里有个性能考量:精确碰撞每帧要对 20 个光球都做一次投影计算,虽然计算量不大,但如果光球数量增加到几百个,就需要加空间分区优化了。对于 20 个光球的小游戏,这个开销可以忽略。

3.3 场景装饰:程序化生成 vs 手工摆放

场景装饰这块,GLM5.3 的程序化生成思路明显胜出。我详细看了它的实现,值得展开讲。

它的树生成函数大概是这样:

// GLM5.3 的程序化树生成 function createTree(x, z, scale) { const tree = new THREE.Group(); const trunkGeo = new THREE.CylinderGeometry(0.2 * scale, 0.3 * scale, 2 * scale, 6); const trunkMat = new THREE.MeshStandardMaterial({ color: 0x8B4513 }); const trunk = new THREE.Mesh(trunkGeo, trunkMat); trunk.position.y = 1 * scale; tree.add(trunk); const crownGeo = new THREE.IcosahedronGeometry(1 * scale, 0); const crownMat = new THREE.MeshStandardMaterial({ color: 0x228B22, flatShading: true }); const crown = new THREE.Mesh(crownGeo, crownMat); crown.position.y = 2.5 * scale; tree.add(crown); tree.position.set(x, 0, z); return tree; }

这里有几个细节值得说。圆柱的径向分段设为 6,这是低多边形风格的关键,分段太多就变成"高模"了,失去风格感。二十面体的 detail 设为 0,也是同样的道理。flatShading: true让树冠有棱有角,强化低多边形风格。这些参数选择说明 GLM5.3 对低多边形美学是有理解的,不是随便填的数。

Step 5 Preview 和 DeepSeek V4 Pro 都是手工摆放几个立方体或圆柱,虽然也能用,但场景看起来比较"空",缺乏游戏感。我后来把 GLM5.3 的树生成函数移植到了最终项目里,稍微改了下参数,效果很好。

注意:程序化生成虽然好,但要注意随机种子的控制。如果每次刷新页面树的位置都变,玩家会失去空间记忆。我在最终项目里用了固定种子的伪随机函数,保证每次生成的场景一致。

3.4 计时系统:一个容易被忽视的精度问题

计时系统看起来简单,但三个模型的实现差异暴露了一个常见误区。

Step 5 Preview 和 DeepSeek V4 Pro 都在主循环里累加deltaTime:

// 主循环累加计时 let elapsed = 0; function animate() { const deltaTime = clock.getDelta(); elapsed += deltaTime; if (elapsed >= 60) { endGame(); } // ... 渲染逻辑 }

GLM5.3 用了setInterval:

// setInterval 计时 let remaining = 60; const timer = setInterval(() => { remaining -= 1; if (remaining <= 0) { clearInterval(timer); endGame(); } }, 1000);

两者的区别在长时间运行时会显现。setInterval的 1000 毫秒是"至少 1000 毫秒",浏览器在繁忙时可能延迟到 1010 甚至 1020 毫秒,累积下来 60 秒的计时可能实际过了 62 秒。而主循环累加deltaTime是和渲染帧绑定的,虽然也有误差,但不会累积得那么快。

我实测跑了几次,setInterval版本的 60 秒实际耗时在 60.5 到 61.2 秒之间波动,主循环版本在 60.1 到 60.3 秒之间。对于休闲游戏这个差异可以接受,但如果做的是竞速游戏,这个误差就会影响公平性。

还有个细节:页面切到后台时,浏览器的setInterval会被节流,可能变成每秒只执行一次甚至更慢。而requestAnimationFrame驱动的游戏主循环在后台会暂停,切回来时deltaTime会是一个很大的值,需要做上限截断,否则角色会瞬移。这个坑我在实测中踩到了,后面会讲怎么处理。

4. 整合优化与最终项目落地

4.1 取长补短的整合策略

三个模型各有优劣,我的最终项目没有直接用任何一个的完整产出,而是做了一次"取长补短"的整合。具体策略是:

移动系统用 Step 5 Preview 的帧率无关插值,因为收集类游戏平滑优先。碰撞检测用 DeepSeek V4 Pro 的精确球体碰撞加防穿透,但把判定半径改成了玩家半径加光球半径。场景装饰用 GLM5.3 的程序化树生成,加了固定随机种子。计时系统用主循环累加deltaTime,并加了后台切换的deltaTime截断。代码结构用 Step 5 Preview 的五模块划分,但把配置常量单独抽出来,参考了 GLM5.3 的做法。

这个整合过程本身就是一次学习。我发现模型生成的代码更像是"草稿",真正能用的代码需要人来判断和整合。每个模型都有自己的"偏见"——Step 5 Preview 偏工程,DeepSeek V4 Pro 偏数学,GLM5.3 偏实用。人的价值在于知道什么场景该用什么。

4.2 关键参数的计算与调优过程

整合过程中有几个参数需要计算和调优,我把过程记录下来。

移动速度:需求里没给具体数值,我根据游戏体验反推。场景大小是 40x40 单位,玩家从中心走到边缘需要 20 单位。我希望这个时间在 3 秒左右,所以速度设为 20/3 约等于 6.7 单位每秒。实测下来 6.7 稍快,调到 6.0 手感最好。

收集半径:玩家角色半径 0.5,光球半径 0.3。如果判定半径设为 0.8(两者之和),玩家边缘碰到光球边缘就算收集,手感自然。如果设为 0.3,就要走到光球中心,太硬。最终用 0.8。

光球数量与分布:需求说 20 个。我实测发现 20 个在 40x40 的场景里密度适中,玩家平均每 3 秒能收集一个,60 秒理论上能收集 20 个。但实际因为要跑动,一般能收集 12 到 15 个。这个难度曲线我觉得合适,不会太简单也不会太挫败。

光照参数:环境光强度 0.6,方向光强度 0.8,方向光位置在 (10, 20, 10)。这个组合下场景明亮但不刺眼,阴影柔和。我试过环境光 0.8 加方向光 1.0,太亮,光球的光晕都看不清了。

光球发光效果:用MeshStandardMaterial的emissive属性,颜色设为青色,强度 0.5。再加一个点光源在光球位置,强度 1.0,距离 3。这样光球在场景里很显眼,玩家一眼就能看到。

4.3 后台切换的 deltaTime 截断处理

前面提到的后台切换坑,我详细讲下怎么处理。当页面切到后台,requestAnimationFrame会暂停。切回来时,clock.getDelta()返回的是从上次暂停到现在的总时间,可能是几十秒。如果不处理,角色会瞬间移动几十秒的距离,直接飞出场景。

处理方法是给deltaTime加一个上限:

// deltaTime 截断 let deltaTime = clock.getDelta(); if (deltaTime > 0.1) { deltaTime = 0.1; }

0.1 秒相当于 10 帧的时间,即使卡顿也不会让角色移动太远。这个处理三个模型都没做,是我实测中踩坑后加的。这个坑很隐蔽,因为开发时很少切后台,但玩家实际使用时切后台是高频操作。

提示:除了 deltaTime 截断,还可以监听visibilitychange事件,在页面隐藏时暂停游戏,显示时恢复。这样体验更好,但实现稍复杂。对于小游戏,deltaTime 截断就够了。

4.4 最终项目的性能表现

整合后的项目我做了性能测试。在 RTX 4070 上,1080p 分辨率下稳定 60 帧,GPU 占用率约 15%。在集成显卡的笔记本上,帧率在 45 到 60 之间波动,GPU 占用率约 40%。这个性能对于浏览器 3D 游戏来说是可以接受的。

性能瓶颈主要在光球的点光源上。每个光球一个点光源,20 个点光源对 GPU 是不小的负担。我试过把点光源去掉,只保留emissive发光,帧率在集成显卡上能提升到稳定 60 帧,但光球的"发光感"会弱一些。最终我保留了点光源,因为视觉效果更重要,而且目标用户的设备一般不会太差。

如果要做进一步优化,可以考虑用实例化渲染(InstancedMesh)来批量渲染光球,或者用后处理的 bloom 效果来模拟发光,减少实时光源数量。这些是后续可以扩展的方向。

5. 常见问题排查与避坑经验实录

5.1 模型生成代码的典型问题速查表

在实测过程中,我整理了三个模型生成代码时的高频问题,做成速查表方便对照。

问题现象可能原因排查方法解决方案
角色移动一顿一顿用了固定步长而非 deltaTime检查移动代码是否乘了 deltaTime改用帧率无关插值
高速移动穿过光球碰撞检测只看当前位置把速度调高测试加路径投影检测
切后台回来角色瞬移deltaTime 未截断切后台 10 秒再切回加 deltaTime 上限
计时不准用了 setInterval对比实际耗时改主循环累加
场景太暗光照强度不足检查环境光和方向光强度环境光 0.6 方向光 0.8
光球不显眼缺少发光效果检查材质 emissive加 emissive 和点光源
树的位置每次刷新都变随机种子未固定刷新页面观察用固定种子伪随机
代码越写越乱单文件堆砌看文件行数按职责拆模块

这张表里的每一条都是我实际踩过的坑,不是理论推测。比如"切后台回来角色瞬移"这条,我是在测试时无意中切了下后台才发现的,如果不做这个测试,这个 bug 会一直留到用户手里。

5.2 三个模型各自的"脾气"与应对

用久了会发现,每个模型都有自己的"脾气",了解这些能让你用得更顺手。

Step 5 Preview 偏工程,它会主动帮你做模块化、加注释、考虑扩展性。好处是代码结构好,坏处是有时候会"过度设计"。比如我只要一个简单的距离判断,它可能会给你封装成一个带配置项的碰撞系统。应对方法是需求描述里明确说"保持简单,不要过度封装"。

DeepSeek V4 Pro 偏数学,它喜欢用严谨的数学表达,代码里经常出现向量运算和矩阵推导。好处是精度高、边界情况处理好,坏处是代码可读性对新手不友好。应对方法是如果看不懂它的数学,可以让它"用更直白的方式重写这段"。

GLM5.3 偏实用,它的代码最接近"能直接用的水平",中文注释也最到位。好处是上手快,坏处是有时候会在细节上偷懒,比如计时用 setInterval。应对方法是关键模块要自己 review 一遍,别完全信任。

实操心得:我现在的习惯是,同一个需求先让三个模型各出一版,然后对比着看。不是为了选一个,而是为了看不同思路。有时候 A 模型的某个细节处理得妙,B 模型的某个结构更合理,整合起来比任何单一模型都好。这个"三模型对照法"虽然费点时间,但产出质量明显更高。

5.3 从"能跑"到"好玩"的最后一公里

代码能跑起来只是第一步,从"能跑"到"好玩"还有一段路。这段路模型帮不上太多忙,得靠人来调。

我实测发现,模型生成的游戏在"手感"上普遍偏"硬"。具体表现是:移动响应太直接,没有缓冲;收集反馈太弱,没有音效和粒子;难度曲线太平,没有起伏。这些都需要手动调。

我做的几个调整:移动加了一点起步和停止的缓冲,参考了 DeepSeek V4 Pro 的阻尼思路,但只用了很小的阻尼系数,保持轻快感。收集光球时加了一个缩放消失的动画,用requestAnimationFrame做一个 0.2 秒的缩放,比直接消失有反馈感。光球收集后 5 秒在随机位置重生,保持场景里始终有 20 个光球,避免后期没东西可收集。

这些调整都不复杂,但效果很明显。我让几个朋友试玩,加了这些细节之后的版本,他们的评价从"能玩"变成了"有点意思"。游戏开发的最后一公里,往往就是这些细节决定的。

5.4 关于 WorkBuddy 等工具链的延伸思考

实测过程中我也在思考工具链的问题。现在市面上像 WorkBuddy 这类 AI 工作台工具越来越多,它们把模型能力包装成了更易用的形态。对于不写代码的人来说,这类工具确实降低了门槛。但对于要做 3D 游戏这种复杂项目的开发者来说,直接调用模型 API 反而更灵活,因为你可以控制每一个细节,可以对比不同模型,可以整合最优方案。

WorkBuddy 这类工具的价值在于"标准化流程",比如它可能内置了代码审查、测试生成、文档编写等 skill。如果你做的是重复性较高的开发任务,用这类工具能省不少事。但如果你做的是探索性的、需要反复对比和调优的项目,直接和模型对话更合适。

我的建议是:把 WorkBuddy 这类工具当成"加速器",而不是"替代品"。它能帮你更快地完成已知任务,但探索未知方案时,还是得自己动手。这次三模型实测就是一次探索,过程中学到的关于移动插值、碰撞检测、计时精度的知识,是任何工具都给不了的。

6. 实测结论与个人体会

三个模型跑完这一轮,我的整体感受是:它们都能完成 3D 游戏的基础开发,但各有各的"性格"。Step 5 Preview 像个靠谱的架构师,代码结构最省心;DeepSeek V4 Pro 像个严谨的数学家,边界情况处理最到位;GLM5.3 像个务实的工程师,上手最快、中文理解最好。

如果非要选一个"综合最强",我会选 Step 5 Preview,因为它的工程结构在项目变大时优势最明显。但如果只做小项目,GLM5.3 的性价比最高。DeepSeek V4 Pro 适合对物理精度要求高的场景,比如模拟类游戏。

最后分享一个我在这次实测中最大的体会:模型生成的代码质量,很大程度上取决于你的需求描述质量。我第一版需求描述写得比较随意,三个模型的产出都偏"通用"。后来我把需求拆得更细,明确了场景大小、角色速度范围、光球数量这些具体参数,产出质量立刻上了一个台阶。所以与其纠结用哪个模型,不如先把需求想清楚。需求描述里的每一个模糊点,都会变成模型产出里的一个坑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询