用AI把“页游”转换为虚幻大作。
整理/秋秋&电了个教
今年的GDC(游戏开发者大会)上,腾讯游戏带来了20多场涵盖游戏开发、AI工具、工程技术等领域的精彩分享。
其中,光子工作室群资深工程师(principal engineer) Yang Hao 带来了一场题为“AI驱动的3D游戏原型开发:引擎集成实践(AI-Driven 3D Game Prototyping with Engine Integration)”的技术演讲。
传统游戏原型制作往往面临较高的技术壁垒,而目前市面上的AI生成工具多局限于Web端,难以与虚幻(Unreal)等专业3D引擎整合。
本次演讲分享了腾讯游戏如何通过一套“C.A.T.原则”,让AI理解3D空间数据,实现从Web端2D原型到引擎内3D高保真原型的无缝转换,以及如何在生产管线中利用Agent(智能体)进行自动化测试与Bug修复。
以下为经过整理的演讲实录,内容有所删减调整:
01
游戏原型制作的瓶颈
大家早上好,我是来自光子工作室群的资深工程师 Yang Hao。在过去的十多年里,我曾负责过千万级DAU休闲游戏的后端架构,也主导过无缝开放世界底层服务器系统的开发。
而在过去的三年里,我将研究重心转向了AI、游戏引擎以及AIGC的工业化落地。
今天,我想和大家探讨如何使用AI和虚幻引擎(Unreal Engine)来构建游戏原型(Prototypes)。虽然我以Unreal为例,但这套思路同样适用于其他引擎。
让我们先来谈谈原型制作(Prototyping)。
传统上,原型制作是游戏开发早期必不可少的一环。一个可运行的原型不仅能测试核心玩法,也是我们用来跨国、跨语言团队间沟通的工具。
然而,原型制作目前存在明显的技术壁垒(Technical skill barrier)——设计师通常需要掌握编程语言才能构建原型,这导致迭代循环非常缓慢,严重限制了我们验证创意的数量。
目前市面上已经有一些基于Web的AI工具,能快速生成简单的2D概念原型。但它们最大的局限在于缺乏引擎整合。
Web对AI很友好,但AI对3D游戏引擎却举步维艰。
因为大多数引擎工具都是GUI优先(GUI-first)的。它们拥有对人类极其友好的图形界面(如蓝图节点、连线),但这些界面并非为AI设计。AI更擅长处理API或对Token友好的代码结构。
对于人类来说,连接节点能立刻看到结果;但对于AI来说,这些GUI界面基本上就是“一堵像素墙”。
那么,我们该如何打破这堵墙,结合Web的便捷性与引擎的强大表现力?
02
从Web到引擎的跨越
在我们的工作流管线(Pipeline)中,一切从设计师的创意开始。
AI首先会生成一个基于Web的2D原型,团队可以立即游玩、测试并导入自定义资产。在Web端迭代完善后,系统会将其自动转换为准备好的3D引擎项目,设计师可以在引擎内继续进行高级迭代,最终得到一个可用于生产环境的项目起点。
对此,我们测试了三款游戏。
第一款是《8球(8-Ball Pool)》游戏。我们选择它是因为它有着非常明确的物理规则和几何规则。虽然它主要是由物理驱动的,并不非常考验AI写代码的能力,但这非常适合用来测试我们的工具,去验证它在没有太多人工干预的情况下能否处理好基础的几何计算。
第二款游戏是一个俯视角自动射击游戏(Top-down auto-shooter)。这款游戏里的大部分功能都是由单一的Prompt(提示词)生成的。为了创建这款游戏,我们要求AI自己做研究,并在一次生成中尽可能多地完成游戏内容。
第一个Prompt大约花了40分钟来处理。但它一次性完成了最终版本里大约70%的功能。当然,还是存在一些Bug需要解决,比如还有4个功能需要我们去手动调整和开发。
最后一款是一个第一人称(FPS)Boss战游戏。在这里,我们的目标是创建多种不同的游戏机制(Gameplay mechanics)。我们添加了不同层级的角色,每个角色都有自己的身份,并且我们还为Boss制作了多种攻击模式(Patterns)和不同的武器。
现在,让我们更深入地看看这个工具。它是如何从Web引擎进行原型制作的?
左边看到的是在Web浏览器中运行的2D台球游戏,里面有光标、物理反馈,这些都能毫不费力地构建出来。而在右边,你会看到它的3D版本,运行在Unreal(虚幻引擎)中。
为了实现这种跨平台的飞跃,我们要求AI遵循特定的约束,我们将其总结为“C.A.T.原则”:
它们非常容易记住,只要想一想CAT(猫)。这只猫是真实的,不是AI生成的,它是我的一个同事养的。
C - Code Reuse(代码复用):在Web端和Engine端之间共享尽可能多的代码,将整合过程中的一致性最大化。
A -AdapterDesign(适配器设计):当某些代码不可避免地需要不同实现方式时,我们抽象出通用接口,让AI来处理这两种不同的底层实现。
T - Token-friendly(Token友好):这是最重要的一点,意味着要用代码来驱动引擎,而不是用像素。这让生成过程对AI来说变得更加容易。
为了彻底打破“像素墙”,我们基于腾讯在GitHub上的一个开源引擎插件,允许在Unreal和Unity引擎中直接运行JavaScript或TypeScript代码。
你不需要写图形化的蓝图代码,只需用对AI极度友好的TypeScript去调用引擎函数即可。
03
UI、渲染与核心逻辑的映射
基于Token友好的基础,我们构建了独立于特定引擎的纯逻辑代码架构。通过“适配器层”,我们将项目拆分为独立模块,确保核心逻辑独立且复用率最大化。
接下来,我们逐一拆解几个核心模块:
UI(用户界面)的映射
将Web UI转化为游戏内UI,主要有两种方式。第一种是直接在引擎中嵌入网页(Unreal内置了Web Browser Widget),通过进程间通信同步数据,这种方式能实现像素级的完美还原。
但在实际操作中,对于像“血条”这样需要跟随角色动态移动的UI,浏览器的性能开销是不可接受的。
因此,我们采用了第二种方式:让AI动态解析DOM(文档对象模型)以抓取样式和布局,再参照解析结果在UMG(Unreal Motion Graphics)中组建对应的UI控件树——虽然牺牲了一点设计上的绝对一致性,但换来了极佳的性能。
渲染与空间理解
渲染的核心难题是:如何让大语言模型(LLM)理解3D空间?这对人类很直观,对AI却很难。我们通过三种方式来解码空间数据:
知识(Knowledge):将游戏规则(如台球桌的尺寸、球的运动轨迹)作为常识嵌入模型。
资产元数据(Asset Metadata):将所有资产的边界、包围盒和碰撞体数据提供给AI。
设计元数据(Design Metadata):设计师在关卡中使用标记工具(Markers)放置特定区域,这些标记带有变换和层级关系,成为AI理解空间的锚点。
结合这三者,AI就能计算出所有坐标并完成正确的3D放置。
这是一个从2D Web游戏转换到3D引擎的例子:《8球(8 ball pooling)》。
规则被严格定义为牌桌尺寸以及每个球应该去哪里,同时我们有球的尺寸资产。
虽然我们没有太多的设计元数据可以用,但有了这些数据输入,AI可以计算出所有的坐标并完成正确的放置。这意味着2D原型现在变成了一个具有高保真物理反馈的3D游戏。
让我们看另一个例子,这次有设计元数据的参与。这是一个21点(Blackjack)游戏。
在原型制作期间,我们不在乎卡牌或筹码在桌子上是怎么移动的,我们只需要确保游戏逻辑是对的。
但是当它进入Unreal时,我们需要让它感觉像真正的发牌。发牌员在哪里?卡牌的发牌区域在哪里?
为此,我们的设计师使用标记工具(Marker tools)来标记特定区域,AI会识别这些标记,提供更加生动的体验。
在将2D游戏映射到3D空间时,除了空间理解,AI还需要知道如何映射资产、材质。虽然还有很多领域我们没有涵盖,但这已经证明了其可行性。
游戏核心逻辑与ECS架构
我们需要给AI一个框架来遵循,我们选择了ECS(实体组件系统)。ECS是数据驱动、高度解耦和模块化的,天然契合AI生成代码的模式。
我们将逻辑分为两部分:
一部分是与平台无关的核心逻辑(如游戏规则、AI决策),这部分直接复用;
另一部分是引擎内置的系统(如物理系统)。在Web端,我们使用简单的2D物理引擎;在Unreal端,我们通过适配器模式接入Unreal的原生3D物理引擎。
系统逻辑不知道底层运行的是什么,因此状态是完全可移植且易于扩展的。
04
引擎内直接生成
除了“从Web到引擎”的路径,如果我们跳过Web原型,直接在引擎中构建(Engine-Only)会怎样?
我们直接使用Agent(智能体)与引擎对话,生成TypeScript(用于替代蓝图可视化编程的脚本语言,对AI Token更友好,可直接调用引擎API驱动游戏逻辑)来驱动游戏,并结合多模态AI(结合视觉与语言理解能力)进行场景和语义生成。
05
自动化分层测试
我们注意到,为了构建完整的游戏,人类依旧需要很重的参与到开发流程中,这其中有很多琐碎、不必要的情形;我们想进一步提升开发流程的自动化程度,减少这些内容对人的精力分散,更关注游戏设计等核心内容。
基于此,我们希望对游戏系统中可验证的部分,譬如游戏规则等,构建一套可以自动化迭代的系统。
著名的Ralph Loop告诉我们,不断迭代以完成需求;但并没有明确认定什么叫“完成”。我们则引入分层测试作为终止条件,构建了一个自动化的Bug修复循环(Autonomous bug fix loop)。
这里的要点很简单:测试不是可选项。它是控制因代码复杂性带来的Bug泛滥的防线,主要分为三层:
1. 单一系统测试(单元测试):比如单元测试,一次验证一个系统的功能。
2. 集成测试:将多个系统连接,运行多帧以验证较长的游戏序列。
3. 自动游玩测试:模拟真实玩家的行为和输入,捕捉边缘情况。
数据表明,消耗更多的Token确实能捕获并修复更多的Bug,随着模型能力的增强,这种自动化推理的上限也会不断提升。
06
总结与未来展望
我们展示了两条AI制作原型的路径。
如果你的重点是快速验证核心循环、方便在浏览器中分享,且不需要原生引擎资产,那么基于Web的方法迭代速度极快;如果你需要立即评估特定引擎的特性(如3D物理、高级渲染),直接在引擎中构建(Engine-Only)会是更好的选择。
展望未来,我们看到了几个明显的趋势:
首先,游戏引擎将逐渐把它们的特性变得对Token更加友好,以便更容易地接入AI管线;
其次,目前的3D空间理解仍依赖大量文本元数据,未来极有可能需要基础技术突破,引入更强大的多模态能力;
最后,Agent反馈循环与提示词技术仍有巨大的优化空间。
但无论技术如何发展,人类依然是整个过程的主导者,AI只是帮助我们走得更快的工具。希望大家能从今天的分享中获得启发,如果只记住一件事,请记住那只“猫”——C.A.T.原则。
游戏葡萄招聘商务经理,
| |
| |
游戏行业书籍推荐
(星标可第一时间收到推送和完整封面)
热门跟贴