把 K3、Fable5、GLM5.2、Hy3 这四款大模型放到同一个页游开发项目里做横评,是我最近半个月做得最多的一件事。很多人选大模型只看跑分和排行榜,但真正动手做页面游戏时,响应速度、代码质量、上下文保持和多轮修改能力,才是决定你能不能按时交付的关键。这篇横评不做抽象能力排行,而是围绕一个具体目标:用同一套需求,让四款模型分别完成页游开发中的页面生成、玩法逻辑、接口联调和报错修复,最后给出选型建议。如果你正准备用大模型辅助做网页游戏,或者团队在纠结该把哪款模型接到内部工具里,这篇应该能帮你省掉不少对比时间。先说清楚,这里所有结论都来自我自己的实测环境,带有明显主观判断,不代表官方能力声明,也不构成绝对选型依据。
1. 评测先定标准:页游开发到底考模型哪些能力
1.1 为什么选页游做横评场景
网页游戏是一个特别适合做大模型对比的测试场景。它不像普通管理系统那样只有增删改查,也不像博客系统那样以静态展示为主。一个稍微完整的页游,至少要包含页面结构、交互事件、玩法逻辑、状态管理、数据存储和接口联调。这些环节对模型的代码生成能力、逻辑推理能力、上下文理解能力和多轮修改稳定性都有不同要求。
更关键的是,页游开发是一个“高频改动”的过程。需求经常会变:数值要调、技能要改、界面要换、接口要对接。模型的真实价值不只是一次性生成多少代码,而是面对需求变更时能不能既快又不改坏其他功能。
我用四款模型分别做了同一个页游小项目的开发测试,项目复杂度控制在个人开发者一周内能完成的水平:角色面板、技能系统、怪物区域、战斗逻辑、战斗日志、本地存储和模拟接口。这个规模既不会因为太简单而看不出差异,也不会因为太大而难以控制变量。
1.2 我用来判断的四项核心指标
第一项是单次生成完整度。给模型一段需求描述,看它第一次返回的代码能不能直接打开、直接跑,还是需要反复追问修正。这一项直接影响使用效率。
第二项是多轮修改稳定性。页游开发中需求必然变化,我会在生成完第一版后连续提出几个修改需求,看模型能不能在已有代码基础上局部改动,而不是把整个文件重写一遍,或者改着改着把原来的功能改没了。
第三项是逻辑正确性。页面好看只是第一步,战斗计算、技能冷却、胜负判定这些逻辑错了,游戏根本没法玩。我会重点检查边界条件、重复操作和异常输入。
第四项是代码可维护性。变量命名、函数拆分、注释习惯、代码风格是否一致,决定你拿到代码后能不能自己接手维护。这一点在长期项目里比一次性生成速度更重要。
1.3 测试环境和提示词设计
测试环境是同一台开发机,浏览器用 Chrome,没有任何额外插件,所有代码都在本地运行。四款模型使用同一个需求文档,提示词模板完全一致,只替换模型名称。所有生成结果我都单独保存,方便回来对比。
提示词模板是这样的结构:先说明项目目标,再列出功能清单,然后给出界面布局要求,最后指定技术栈和交付格式。我特别在提示词里要求模型“先输出代码,再简要说明设计思路”,这样既能判断代码质量,也能看出模型对自己生成内容的理解程度。
注意:评测结果和提示词写法强相关。如果你直接用不同的提示词模板,四款模型的表现排序可能发生变化。这里的结论只对这套测试模板负责。
2. 第一轮:从零生成完整页面,四款模型的表现差异
2.1 K3:页面骨架稳,但样式细节需要追问
K3 在第一轮的表现是“稳”。它生成的页面结构完整,HTML 语义化不错,CSS 基础样式也很规范,区块划分清晰,角色面板、技能栏、怪物区域、战斗日志四个模块都能按要求一次性给出来。
但问题也很明显:样式偏朴素。如果不额外追加“美化、加动效、调整布局”这类需求,第一版页面看起来就是一个没有装饰的原型。游戏类项目对视觉表现要求比管理后台高,这一项上 K3 需要多轮打磨才能到可展示状态。
从工程角度看,K3 的代码结构最适合二次开发。它会把脚本和数据定义拆开,函数命名也够清楚,你拿到的第一版不是一坨只能看的 HTML,而是真的可以往上叠功能的骨架。
2.2 Fable5:前端结构完整,组件拆分思路清晰
Fable5 给我印象最深的是组件拆分意识。同样是一个页游主界面,它会自然地把角色信息、技能列表、战斗区域拆成独立函数或独立模块,甚至在纯 HTML 文件里也保留清晰的区域注释。
这种做法的好处是后面改需求时很舒服。你要改技能栏,只需要定位到技能栏对应的代码块,不用在几千行代码里翻找。对想长期维护页游项目的人来说,这个优势比页面“一眼好看”更重要。
Fable5 第一版页面同样不算花哨,但它对 CSS 类和 ID 的命名更统一,整体代码风格偏工程化。如果你有代码洁癖,看到 Fable5 生成的代码会舒服很多。
2.3 GLM5.2:单文件输出能力强,长代码连贯性好
GLM5.2 在单次生成完整度上表现靠前。同样一个页游主界面,它能一次性输出一个相对完整、打开就能看到效果的单文件。HTML、CSS、JavaScript 混在一个文件里,但结构不乱。
它的长代码连贯性比较突出。很多模型在输出超过 300 行代码后,后半段会出现组件缺失、状态变量突然没定义、函数名前后不一致这类问题。GLM5.2 在这轮测试中代码前后一致性较好,战斗日志区域的动态渲染逻辑和前面定义的变量能对得上。
不过它也有一些小毛病:生成的脚本注释偏少,个别地方用了比较隐晦的写法。如果你不是第一次接触这份代码,理解起来需要花一点时间。
2.4 Hy3:代码风格更克制,需要多轮修正
Hy3 第一轮代码的风格是“克制”。它不会一上来就铺一个大而全的页面,而是更倾向先把核心功能做得能用,视觉和交互细节放在后面。
这个特点有利有弊。如果你希望模型像美术一样直接输出炫酷页面,Hy3 很可能让你失望。但如果你更重视功能正确性,它会先把角色显示、技能点击、日志追加这类核心流程写完整,再让你逐步追加视觉要求。
我在测试中发现,Hy3 对“逐步细化”的响应不错。第一版朴素没有关系,你提出“增加技能冷却进度条”“怪物区域加血条动画”之后,它能比较准确地定位到对应代码修改,而不是把整个页面重写。这在实际开发中反而是更珍贵的品质。
2.5 第一轮对比结果怎么看
只看第一轮,四款模型的差距没有想象中大。除了 Hy3 明显偏保守,其他三款都能在给定需求下输出一个可以运行的页面。真正的差异出现在两个地方:一是代码结构是否方便后续修改,二是追加视觉需求时是局部改还是整体重写。
我把代码结构质量排了个序:Fable5 最佳,K3 次之,GLM5.2 居中,Hy3 第一版结构最简单但容易扩展。这个顺序不是最终结论,因为第二轮加入玩法逻辑后,排序会发生明显变化。
我建议你在实际使用时不要只看第一版效果。可以先让模型输出一个你能跑通的最小版本,然后连续提三个修改需求,观察它是局部修改还是全部重来。这个测试方法比一次性生成完整页面更容易暴露真实能力。
3. 第二轮:核心玩法逻辑,才是页游开发的真正分水岭
3.1 我用同一个需求验证逻辑能力
第二轮我让四款模型实现一套回合制战斗逻辑:玩家攻击怪物、怪物反击、技能有冷却时间、血量到零后判定胜负,最后把整场战斗过程写入日志。这是一个典型的中间复杂度逻辑,既要有数据计算,也要有状态流转,还要处理重复点击和边界情况。
测试方法还是同一套需求模板,只改模型名称。我会先让模型生成完整战斗系统,然后连续提出几个修改需求:增加暴击概率、加入技能消耗、调整怪物反击规则、增加战斗结束后的重新开始按钮。每一步都观察模型能不能在原有代码上精准修改。
3.2 状态管理和事件循环的实现差异
K3 在状态管理上表现最稳。它会用一个全局对象保存角色血量、技能冷却、战斗状态,所有函数都围绕这个状态对象操作。好处是逻辑清晰,排查问题方便。你给我一个报错,我能很快定位到是哪个函数改了状态。
GLM5.2 倾向于把状态变量分散在局部作用域,这在小型逻辑里没问题,但涉及多个技能、多个怪物时,变量之间的相互影响会更复杂。它生成的逻辑能跑,但代码评审时需要更仔细。
Hy3 对事件循环的处理比较注意。它会主动避免按钮重复点击导致战斗逻辑重复执行,在点击事件入口加了状态锁。这个细节很多模型不会主动处理,但在页游里非常关键——玩家连点技能按钮,不能让战斗循环触发十次。
Fable5 的抽象能力最强。它会封装一个战斗流程函数,把攻击、伤害计算、胜负判断拆成独立方法。这种代码在前期开发时可能要写更多行,但后续加新技能、新怪物时扩展成本最低。
3.3 数值计算和边界条件谁处理得更干净
这一轮我专门测了三个边界条件:角色血量降为负数时是否会被纠正为 0、技能冷却时间在极端情况下是否会变成负数、怪物血量为 0 后是否还能继续被攻击。
K3 在这三个测试点全部通过,而且没有出现逻辑冲突。它在每次伤害计算后都会主动做边界校验,代码里能看到明确的Math.max(0, currentHp)这类保护写法。
GLM5.2 主体逻辑正确,但在“怪物死亡后仍然可以选中攻击”这个场景上,需要我追加一句“怪物死亡后需要置灰或移除点击事件”才修复。第一版代码里没有主动处理这个状态。
Fable5 对边界条件的处理也不错,尤其擅长把“怪物是否存活”作为独立判断条件嵌入攻击逻辑,从设计上避免死掉怪物还能被攻击的问题。
Hy3 在三项边界测试中表现中等。它能正确处理血量归零,但技能冷却的计时逻辑用了相对复杂的写法,在小样本测试中没发现问题,放到更长战斗流程里是否稳定还需要更多验证。
3.4 逻辑复杂度上来后,谁的上下文保持更好
这是整轮横评中最能拉开差距的一项。我会在完成第一版逻辑后,连续追加 5 个修改需求,每个需求之间不重新描述整个项目背景,只说明“在上一版基础上修改”。
K3 的上下文保持最好。五轮修改之后,它没有忘记前面定的技能规则,也没有把已经写好的暴击逻辑改乱。它的代码结构让每一轮修改都落在明确的位置。
GLM5.2 前四轮修改都很稳定,但第五轮让它新增“战斗中不能切换技能”的规则时,把原有冷却逻辑重写了一段,产生了两个计时器并存的隐患。我检查后手动清理了冗余代码。
Fable5 在这个环节最稳定。因为它一开始就把逻辑模块化,追加新规则只需要增加一个条件判断,不需要改动核心战斗流程。五轮修改后代码的可读性仍然很高。
Hy3 的问题在于它每轮都会把相关函数整体重写一遍。虽然逻辑正确,但改动范围偏大,容易引入回归问题。我在第五轮修改后特别做了回归测试,发现重新开始按钮的状态重置逻辑被新代码覆盖掉了。
建议:如果你准备用模型辅助开发游戏逻辑,尽量在初始提示词里就要求“把核心状态封装成独立结构,函数尽量拆分”。这个要求能显著提升模型在多轮修改中的稳定性。
4. 第三轮:接口联调、数据 Mock 和异步处理
4.1 模拟后端接口时的代码生成质量
页游不可能只有前端,玩家数据、排行榜、存档这些功能都需要接口。为了控制测试变量,我不实际搭建后端,而是让模型生成一个本地 Mock 接口来模拟网络请求。
这个环节重点看三件事:模型能不能生成规范的异步代码、能不能模拟延迟和异常、返回的数据结构是否和前端逻辑匹配。
Fable5 在接口封装上最接近真实工程实践。它会主动用一个request函数封装fetch,统一处理错误和超时,前端调用时只需要传入接口地址和参数。
K3 生成的 Mock 代码也很规范,但更倾向于直接在组件内写异步逻辑,没有单独抽离请求层。在小型项目里没关系,但如果后续接口数量增多,这种写法会变得臃肿。
GLM5.2 对异步流程的理解扎实,async/await用得很标准,错误捕获也完整。不过它生成的 Mock 数据结构相对简单,对嵌套数据的模拟不够充分。
Hy3 生成的 Mock 代码稳定性不错,但风格偏保守,使用了较传统的Promise.then链式写法。代码能跑,但与周围新代码风格不太统一。
4.2 异步错误处理和超时机制
这个维度直接考察模型对真实网络环境的预判。一个成熟的接口层,不能假设请求一定成功。
K3 和 Fable5 都会主动生成超时控制逻辑,比如用AbortController或Promise.race处理请求超时。它们生成的错误提示也更具体,不只是console.log一下,而是会在页面上给用户可见的提示。
GLM5.2 的错误处理集中在catch块里,代码正确但没有把错误状态同步到界面上的意识。你需要额外追加需求,它才会把“接口失败后页面上显示失败提示”补上。
Hy3 在错误处理上最保守,第一版代码居然只用了alert提示错误。对于演示项目来说够用,但这是页游,频繁alert会直接打断玩家操作。
4.3 数据结构和命名一致性
这一项决定了前端代码和接口数据能不能顺利对上。很多模型在生成前端时会假定某个字段名,生成接口时又用了另一个字段名,导致联调阶段才能发现问题。
K3 在前后端数据字段命名上保持了较高一致性。它会先用一个数据结构定义文档,再基于这个结构同时生成 Mock 数据和前端渲染逻辑。
GLM5.2 在单份文件里一致性好,但当你要求它把接口拆成独立模块时,字段命名偶尔会有出入。我在测试中遇到一个小问题:前端写成playerName,接口返回的却是name,需要手动修正。
Fable5 的字段命名跟项目业务结合最紧,它会根据实际含义命名,比如playerHp、monsterId,可读性和一致性都很好。
Hy3 的命名整体统一,但存在精简过度的倾向,比如用hp、mp、cd这类缩写,对熟悉业务的人来说没问题,但新接手的人需要额外理解成本。
5. 第四轮:报错修复和需求变更,实战中最耗时的环节
5.1 给模型一段报错信息,看它如何定位
我故意在代码里制造几个典型错误:一个变量未定义、一个异步时序问题、一个 CSS 选择器写错。然后分别把报错信息原样丢给四款模型,看它们能不能直接定位并修复。
K3 的定位能力最直接。它会先复述一遍错误信息里最关键的代码行,再给出修改后的代码段,不会东拉西扯。这种回答方式对使用者最友好。
GLM5.2 在变量未定义这类简单问题上处理也很快,但遇到异步时序问题时,它会给出多种可能性,让你自己判断是哪个原因。这不算错,但排查效率会低一些。
Fable5 定位异步问题时最准。它会主动分析事件触发的先后顺序,指出是数据还没返回就渲染导致的空值错误,给出的修复方案也不会影响原有逻辑。
Hy3 在这个环节表现中规中矩。它能修复简单错误,但遇到跨函数调用的报错时,偶尔会给出错误定位,需要我进一步提供上下文。这个问题可以通过把整个文件内容贴给它来缓解。
5.2 需求变更时,谁的改动更局部化
做页游最怕的就是需求突然变了,模型把整个逻辑全部重写,结果你之前改好的视觉细节全没了。
我测试了一个典型的变更场景:把原本的回合制战斗改成可以手动选择技能目标。这个需求会牵动技能面板、战斗流程、日志记录三个模块。
Fable5 的改动最符合预期。因为它的代码从一开始就模块化,变更只落在技能选择函数和战斗流程入口,原有视觉布局和日志逻辑没有被破坏。
K3 也能控制改动范围,但需要你在提示词里明确说明“只改技能选择相关逻辑,其他部分保持不变”。它的执行准确,但比较依赖提示词约束。
GLM5.2 在增加功能时比较激进。给同一个需求后,它会从“优化整体架构”的角度重构战斗循环,导致一些原本微调过的细节被新版本覆盖。改动完成后需要检查一遍回归。
Hy3 对需求变更的反应最保守。它倾向用追加新函数的方式满足新需求,而不是修改原有函数。这样改动风险小,但可能导致代码冗余——每次需求变更都新增一个函数,五六轮后代码量会明显膨胀。
5.3 多轮对话中改坏代码的概率
这是我最在意的一项。页游开发往往要在一个会话里连续对话几十次,模型一旦在前期积累了大量上下文,后期修改时很容易出现“改 A 破坏 B”的问题。
K3 和 Fable5 在连续 10 轮修改后仍然保持较高的正确率。K3 胜在状态管理清晰,Fable5 胜在模块边界明确。
GLM5.2 在 10 轮后会偶尔出现“新代码调用了旧版本中已经被删除的函数”这类问题。这不是普遍现象,但在我的测试中出现过一次。
Hy3 的冗余代码问题在长时间对话中会被放大。它会不断追加新的实现,导致函数功能重叠,后期你需要花时间清理。
实测经验:如果你计划在一个会话里和模型聊很久,建议每完成一个功能节点,就让模型输出一次当前完整代码。这样即使后面改错了,你也可以手动回退到最近的稳定版本。
6. 最终结论:四款模型分别适合什么人和什么场景
6.1 综合评分表
下表是我对四款模型在页游开发场景下的主观评分,满分为 5 分。这个评分只代表我的测试环境,不代表绝对能力。
| 维度 | K3 | Fable5 | GLM5.2 | Hy3 |
|---|---|---|---|---|
| 单次生成完整度 | 4.0 | 4.0 | 4.5 | 3.5 |
| 多轮修改稳定性 | 4.5 | 4.5 | 3.5 | 3.5 |
| 逻辑正确性 | 4.5 | 4.0 | 4.0 | 4.0 |
| 代码可维护性 | 4.0 | 4.5 | 3.5 | 3.5 |
| 接口联调能力 | 4.0 | 4.5 | 4.0 | 3.0 |
| 报错修复效率 | 4.5 | 4.5 | 4.0 | 3.0 |
如果只算平均分,K3 和 Fable5 在这套测试里并列靠前,GLM5.2 紧随其后,Hy3 落后一些。但平均分没有意义,因为不同人的开发场景完全不同。
6.2 如果只选一款做页游开发
对刚入门的前端开发者,我建议从 GLM5.2 开始。它的单次生成能力强,能让你快速看到一个完整页面,减少早期受挫感。等你有经验了,再换到更工程化的方案。
对要长期维护页游项目的个人开发者,K3 或 Fable5 更合适。K3 的状态管理写得好,适合逻辑复杂的游戏;Fable5 的模块化设计好,适合需求频繁变化的项目。两者选哪个,取决于你更看重逻辑稳定性还是代码结构。
对已经在大规模代码库里工作的团队,Fable5 更接近团队协作风格。它的代码可读性强,字段命名规范,其他成员接手成本低。K3 和 GLM5.2 更适合作个人辅助工具,而不是团队统一接入模型。
对追求极致响应速度的临时原型验证,GLM5.2 最省事。它一次生成的长代码能快速覆盖大部分需求,即使个别边界处理不完美,后续手动修也不麻烦。
Hy3 并不是不好,它的风格更适合谨慎型开发者。你希望模型先把核心功能做扎实,再逐步美化界面,那 Hy3 会让你满意。如果你需要它直接给一个足够酷炫的成品,它可能要排到最后一名。
6.3 我的几条实战建议
第一,不要用同一个提示词跑一款模型,就直接决定长期用它。你应该准备一套固定需求,让所有候选模型都跑一遍,再连续改三轮需求。这个测试方法比看任何排行榜都真实。
第二,把“代码结构要求”写进提示词。哪怕实际使用中你根本不在乎结构,也建议让模型输出规范代码,因为后续排错时结构好不好直接影响效率。
第三,重要功能节点保存一次完整代码。大模型对话窗口是有长度限制的,聊得越久越容易出现代码陈旧或变量遗漏。每完成一个功能都让模型输出当前完整文件,对你来说只是复制一次,却能避免很多返工。
第四,接口联调阶段不要完全依赖模型生成的 Mock 数据。让模型先定义数据字段和类型,你再手动维护一份样例数据,两边对齐后再开发前端逻辑,这样能避开字段不一致的坑。
第五,也是最容易被忽略的:大模型生成的游戏逻辑一定要做回归测试。不要因为新功能加成功了就觉得旧功能没问题。特别是状态切换、冷却计时、重复点击这类环节,改一次需求就应该回归一遍。
如果你只想记住一句话:做页游辅助开发,K3 和 Fable5 更适合长期项目,GLM5.2 更适合快速原型,Hy3 更适合你愿意多轮打磨的场景。剩下的,靠你的实际需求来定。