
给AI一句“生成一款坦克大战游戏”,代码很快跑了起来。敌方坦克出现在屏幕上,炮管锁定玩家,战斗看似已经开始。但靠近敌人后,坦克没有发射炮弹,反而挥起炮管开始近身攻击。第一眼看上去,这像是一次典型的AI抽风。继续玩下去却会发现,移动、碰撞、攻击和伤害判定都能正常工作——它偏离了常见设计,却意外形成了一套可以成立的新玩法。
这个例子暴露了AI生成游戏领域最容易被忽略的问题:代码能运行,只是第一步。 过去一年,大模型已经生成了大量贪吃蛇、平台跳跃和射击游戏。页面能打开、角色能移动,并不等于玩家能够完成一局游戏。平台可能高于跳跃极限,敌人有动画却没有攻击判定,障碍物的刷新频率可能叠成一条无法通过的“必死路”。修改同样可能带来连锁反应:用户只想把角色跳跃调高一点,系统却同时改变了重力和其他物体的运动轨迹。
每个局部看起来都对,组合起来却不能玩——这就是AI游戏生成中的 “可玩性黑洞” 。它比编译报错更难处理。代码报错通常能定位到具体文件和行数,但游戏“不好玩”可能同时涉及数值、地图、反馈和玩家操作。只有把这些因素放回同一个运行过程里检查,系统才知道问题究竟出在哪里。
Vibe Gaming正是对这个问题的系统性回应。它不是一个单一的框架或产品,而是一类技术范式的统称:用自然语言作为主要创作界面,用多个专用智能体协同完成从设计、编码、美术到试玩验证的全流程,将“好不好玩”从玄学问题转化为可迭代的工程动作。
当前Vibe Gaming领域存在两条截然不同的技术路径。理解它们的差异,是理解这个领域的关键。
杭州达迩文智能推出的Spellcaster平台,采用六个专用Agent协同工作的架构。其核心设计思想是:先把用户描述整理成结构化的游戏规格,再交给多个专用Agent分头处理。
六个Agent的分工如下:
这套流程并不追求一次生成就结束,而是形成“生成—运行—检查—修复”的循环。用户拿到结果后仍可以继续对话:调整角色速度、增加敌人、修改关卡,或者更换视觉风格。系统根据修改意图处理对应部分,不必每次都从头生成。
从工程角度看,Spellcaster的价值在于它把游戏生成从“自然语言到代码的单步翻译”,转变为多智能体协同的验证闭环。输入“生成一个星空背景的弹幕射击游戏”,大约15分钟后便能拿到可以试玩的原型。
南京大学PRLab联合新加坡南洋理工大学S-Lab及Liblib.ai提出的VibeGame框架,走了一条更底层的路线。它的核心洞察是:让Agent直接操作游戏引擎,而不是生成代码再交给引擎执行。
VibeGame首先构建了一个AI原生游戏引擎,将项目状态表示为结构化文本,带有显式引用和schema验证。在这个引擎之上,VibeGame实现了帧同步运行时控制,允许Agent检查游戏状态、执行动作并验证行为。
在此基础上,VibeGame组织了八个专用Agent,形成对抗式多智能体团队。一个编排器协调设计、美术、架构、编程、审计、试玩和审核等角色。通过将实现与评估分离,团队将失败的结构性、行为性和视觉检查转化为修复任务,重新进入开发流程。
VibeGame最独特的设计是无需参数训练的经验积累机制。它将被接受的项目蒸馏为可复用的骨架、已验证的模块和协作契约,并在开发后续项目时适配和重新验证这些经验。这意味着VibeGame在多次使用后会变得“更聪明”,而不需要任何模型微调。
两条路径的对比可以总结为:Spellcaster是代码生成驱动的,它的Agent团队围绕“生成正确的代码”来组织验证逻辑;VibeGame是引擎交互驱动的,它的Agent直接“生活在”游戏世界里,通过帧同步控制来感知和验证。前者更容易对接现有的Web游戏技术栈,后者在验证深度和长期可维护性上更有优势。
Vibe Gaming之所以在2026年成为一个独立的技术议题,核心原因在于它专门补上了“试玩”这个最难自动化的环节。
传统的AI代码生成评估以compile-pass rate为主要指标。但Mage等研究指出,对于游戏这种多组件领域特定产物,compile-pass rate可能具有主动误导性。一个游戏可以完美编译、无运行时错误,但依然不可玩。
游戏可玩性涉及多个正交维度:
Spellcaster的解法是引入专门的Playability Agent和Simulation Agent。Playability Agent在游戏运行后检查关键路径是否可达、核心交互是否有效;Simulation Agent则通过大量模拟运行来检测是否存在必死局。
VibeGame的解法更进一步。它的帧同步运行时控制允许Agent以“自己的节奏”检查游戏状态。这意味着Agent不是在游戏结束后才检查结果,而是在游戏运行的每一帧都可以观察状态、执行动作、验证响应。这种交互式验证比事后的静态分析更接近真实玩家的体验。
更广泛的生态中,专门的AI试玩工具正在出现。WAI Play是一个面向Vibe Coding网页游戏创作者的自动试玩与质量诊断Agent,它会在真实浏览器中操作游戏,提交游戏后自动试玩、验证关键流程、整理问题证据,最终输出评分与优化建议。Ludus则将编码Agent转变为Unity项目的QA部门,实现agent-native、engine-native的游戏测试。
这些工具的共性在于:它们不是在测试代码,而是在测试体验。 这是Vibe Gaming与传统AI代码生成最根本的分野。
以下Python代码展示一个简化的游戏试玩Agent的核心循环,用于说明可玩性验证的工程逻辑。
# playtest_agent.py — 简化的游戏试玩与可玩性验证Agent
# 模拟Spellcaster的Playability Agent核心逻辑
import random
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class GameState:
"""游戏运行时状态的抽象表示。"""
player_x: float = 0.0
player_y: float = 0.0
player_health: int = 100
enemies: list = field(default_factory=list)
platforms: list = field(default_factory=list)
goal_reached: bool = False
frames_elapsed: int = 0
class PlaytestAgent:
"""一个简化版的自动试玩Agent。
核心逻辑:在每一帧观察状态,选择一个动作,
执行后检查状态变化是否合理。
"""
def __init__(self, max_frames: int = 3000):
self.max_frames = max_frames
self.issues: list[str] = []
self.visited_positions: set = set()
self.max_x_reached: float = 0.0
self.damage_events: int = 0
self.stuck_counter: int = 0
def observe(self, state: GameState) -> dict:
"""观察当前游戏状态,提取关键特征。"""
return {
"position": (round(state.player_x, 1),
round(state.player_y, 1)),
"health": state.player_health,
"enemy_count": len(state.enemies),
"goal_reached": state.goal_reached,
}
def select_action(self, observation: dict) -> str:
"""基于观察选择动作。
这里的策略是启发式的:优先向右移动,
遇到敌人时攻击,血量低时后退。
"""
if observation["health"] < 30:
return "retreat"
if observation["enemy_count"] > 0:
return "attack"
return "move_right"
def execute(self, action: str, state: GameState,
game_env) -> GameState:
"""在游戏环境中执行动作,返回新状态。"""
if action == "move_right":
state.player_x += 1.0
elif action == "attack":
# 模拟攻击:有概率消灭最近的敌人
if state.enemies and random.random() > 0.3:
state.enemies.pop()
elif action == "retreat":
state.player_x -= 0.5
state.frames_elapsed += 1
return state
def check_invariants(self, state: GameState,
prev_state: GameState) -> None:
"""检查游戏不变量,发现异常时记录问题。"""
# 检查1:玩家是否卡住
if state.player_x == prev_state.player_x:
self.stuck_counter += 1
if self.stuck_counter > 120: # 连续2秒无位移
self.issues.append(
f"玩家在 x={state.player_x:.1f} 处卡住超过2秒"
)
self.stuck_counter = 0
else:
self.stuck_counter = 0
# 检查2:血量是否在无敌人时减少
if (state.player_health < prev_state.player_health
and len(state.enemies) == 0):
self.issues.append(
f"帧{state.frames_elapsed}: 无敌人时血量异常减少"
)
# 检查3:是否到达过新位置
pos = (round(state.player_x, 0), round(state.player_y, 0))
self.visited_positions.add(pos)
# 检查4:生命值是否为负
if state.player_health < 0:
self.issues.append(
f"帧{state.frames_elapsed}: 生命值变为负数"
)
def run(self, game_env) -> dict:
"""运行完整的试玩循环。"""
state = game_env.reset()
prev_state = state
for _ in range(self.max_frames):
obs = self.observe(state)
action = self.select_action(obs)
state = self.execute(action, state, game_env)
self.check_invariants(state, prev_state)
if state.goal_reached:
break
prev_state = state
# 汇总试玩报告
report = {
"frames_played": state.frames_elapsed,
"goal_reached": state.goal_reached,
"final_health": state.player_health,
"unique_positions": len(self.visited_positions),
"issues_found": self.issues,
"playability_verdict": self._verdict(state),
}
return report
def _verdict(self, state: GameState) -> str:
"""基于试玩结果给出可玩性判断。"""
if not self.issues and state.goal_reached:
return "playable"
if len(self.issues) <= 2 and self.visited_positions:
return "marginally_playable"
return "not_playable"
# ============================================================
# 与Spellcaster Repair Agent的对接逻辑
# ============================================================
class RepairRouter:
"""根据试玩Agent发现的问题,路由到对应的修复Agent。
这是Spellcaster六Agent架构中Repair Agent的核心职责:
定位问题属于规则、数值、关卡、素材还是代码。
"""
def classify(self, issue: str) -> str:
"""将试玩问题分类到修复领域。"""
keywords = {
"rule": ["规则", "判定", "胜负"],
"number": ["速度", "跳跃", "重力", "血量"],
"level": ["卡住", "不可达", "必死"],
"asset": ["素材", "缺失", "风格"],
"code": ["异常", "负数", "崩溃"],
}
for domain, words in keywords.items():
if any(w in issue for w in words):
return domain
return "code" # 默认路由到代码修复
def route(self, playtest_report: dict) -> dict:
"""将试玩报告转化为按领域分组的修复任务。"""
tasks: dict[str, list] = {
"rule": [], "number": [], "level": [],
"asset": [], "code": []
}
for issue in playtest_report["issues_found"]:
domain = self.classify(issue)
tasks[domain].append(issue)
return {k: v for k, v in tasks.items() if v}这段代码的核心逻辑是:试玩Agent在每一帧观察状态、选择动作、执行后检查不变量。当发现问题时,RepairRouter根据问题类型将其路由到对应的修复Agent。这就是Spellcaster“生成—运行—检查—修复”循环中“检查”和“修复”两个环节的工程实现。
2026年下半年,Vibe Gaming从实验室和开源项目走向了平台化产品。这一转变的标志性事件是Meta和灵珠AI的入场。
Meta在Connect大会上正式公布了Horizon Create和Horizon Studio两款生成式AI游戏开发工具。Horizon Create是一款面向移动设备的应用程序,用户通过自然语言描述游戏内容,AI自动生成可玩的2D或3D游戏。Horizon Studio则运行在浏览器中,提供更精细的编辑能力,可以调整游戏难度、美术风格、任务进程和成长系统。
Meta方案的关键差异在于分发能力。通过Horizon Create和Horizon Studio制作的游戏,可以直接发布到Meta生态内部,接入Facebook和Instagram等平台。这意味着创作者不仅能够生成游戏,还能够立即触达Meta现有庞大的用户群体。Meta Horizon副总裁Saxs Persson表示,新平台的目标并非帮助用户制作概念草图或原型,而是真正创建具备完整玩法深度的游戏内容。
灵珠AI的“魔丸”则代表了另一种平台化路径。魔丸面向中国用户,定位为游戏生成场景的AI智能体,支持游戏生成、修改、发布、魔改和上架,并可接入激励广告获得收益。据报道,传统人工制作同体量的可玩游戏通常至少需要一周,而魔丸端到端生成时间可压缩至约1小时,单个可玩游戏的生产周期压缩约40倍,交付成功率超过90%。
魔丸的独特之处在于魔改机制。专区中大量作品开放魔改权限,用户可直接在原作基础上进行二次创作,通过指令更换美术风格、调整初始资源、增加角色技能或重设玩法规则。这形成了一个内容再创造的生态循环。
Yield Guild Games推出的vibecode.game则聚焦于竞技与社区。它于2026年7月启动了名为VibeBlitz的全球虚拟游戏开发竞赛系列,参赛者使用Vibe Coding工具在四周内完成游戏。首届比赛的获奖作品包括基于自定义确定性引擎的浏览器2D格斗游戏Agent Fighter等,展示了Agent辅助下独立游戏开发的深度可能性。
这些平台的入场揭示了一个重要趋势:Vibe Gaming正在从“能不能做”转向“做完之后往哪里放” 。当生成门槛降低到自然语言级别时,真正的瓶颈不再是技术能力,而是分发渠道、质量保证和内容治理。
数据已经开始揭示Vibe Coding对游戏生态的实际影响。研究公司ATTN Economy发现,截至2026年5月的六个月内,移动游戏上线数量达到181,000款,其中很大一部分来自Vibe Coding推动的零编程知识创作者。
这个数字需要辩证看待。一方面,它证明了Vibe Gaming确实在实现“让每个人都能做游戏”的承诺。内容创作者可以把互动故事或网络热梗变成可操作的版本,普通用户不必先掌握编程和游戏引擎。独立开发者可以先验证一个玩法值不值得继续投入,而不是从一份陌生代码重新开始。
另一方面,大量低质量作品的涌入也引发了关于发现机制和生态健康的担忧。数字趋势网站Digital Trends的评论文章指出,AI和Vibe Coding释放了大量新游戏,但不一定是更好的游戏。ATTN Economy的研究还发现,2026年上半年使用Vibe Coding工具制作的游戏,其用户次日留存率中位数仅为传统手工制作游戏的约三分之一。
这指向了Vibe Gaming最核心的工程挑战:可玩性不等于留存性。 一个游戏可以通过所有可玩性检查——路径可达、交互有效、无致命bug——但在“好玩”这个维度上仍然失败。可玩性是必要条件,不是充分条件。
Mage研究提出的多轴评估协议是一个值得关注的方向。它将LLM生成游戏场景的评估从单一的compile-pass rate扩展为compile success、runtime success、behavioral correctness和aesthetic quality四个维度。这种多维度评估框架,比“能不能跑”或“能不能通关”更接近游戏质量的全貌。
Vibe Gaming在工程实践中有几个需要清醒认识的边界。
第一,设计意图与涌现玩法的张力。 文章开头的坦克近身攻击例子说明了一个有趣的现象:AI生成游戏有时会产生“未被提前设计但确实可以玩”的玩法。Spellcaster团队对此的态度是开放的——在只关注代码的流程里,这很容易被当成错误删除;在可玩性验证之后,它也可能被识别为一条逻辑自洽的玩法路径。对游戏原型来说,价值有时不仅来自准确复现,也来自那些没有被提前设计、但确实可以玩的意外。但如何在“修复bug”和“保留涌现玩法”之间做出判断,目前仍然是人的工作,而非Agent的。
第二,经验复用的泛化边界。 VibeGame的经验复用机制将已接受项目蒸馏为可复用的骨架和模块。但这些经验的泛化能力存在边界:一个平台跳跃游戏的关卡设计经验,可能完全不适用于塔防游戏。经验库的规模和跨类型的迁移效率,是决定VibeGame长期价值的关键变量。
第三,世界模型路径的不确定性。 Spellcaster团队已经将下一阶段方向指向世界模型:玩家的移动、攻击和选择会与当前画面、角色状态和交互逻辑直接关联,代码可能不再是连接创意与最终画面的中间层。如果世界模型路径成熟,它将从根本上改变Vibe Gaming的技术架构——从“生成代码再运行”变为“直接生成可交互的视觉体验”。但世界模型在实时交互、物理一致性和可控性方面的成熟度,目前仍有较大不确定性。
第四,平台锁定与互操作性。 Meta的Horizon Create生成的游戏只能在Meta生态内发布,灵珠的魔丸有自己独立的创作和分发体系。如果每个平台都形成自己的游戏生成和分发闭环,Vibe Gaming可能会走向碎片化,而非形成一个统一的创作生态。
Vibe Gaming的真正贡献,不在于它让“一句话生成游戏”成为可能——这个能力在2024年就已经出现了。它的贡献在于,它承认了“代码能跑”和“游戏能玩”之间的巨大工程距离,并系统性地填补了这个距离。
Spellcaster用六个专用Agent的协同验证闭环来填补,VibeGame用AI原生引擎和对抗式Agent团队来填补,WAI Play和Ludus用专门的自动试玩工具来填补,Meta和灵珠用平台化的质量保障和分发体系来填补。每一条路径都在解决同一个问题的不同侧面。
但有一个根本性的问题,目前的Vibe Gaming方案都还没有完全回答:“好玩”是否可以被工程化地验证? 可玩性可以被检查——路径是否可达、交互是否有效、是否存在必死局,这些都有明确的判断标准。“好玩”则涉及心流体验、惊喜感、掌控感和叙事张力,这些维度在目前的自动试玩框架中很难被量化。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。