Skip to content

2026 年的网页游戏引擎:PlayCanvas、Three.js、Babylon.js 和 Unity WebGL 对比

作者:Oleg Sidorkin,Cinevva CTO 和联合创始人

A browser window showing a 3D scene transitioning from a white wireframe mesh on the left to a rendered colorful low-poly landscape on the right

如果你想在 2026 年发布一款跑在浏览器里的 3D 游戏,你有四个主流选择,还有几个更新的选项。它们常被归到一起叫"网页游戏引擎",但它们其实是解决不同问题的、真正不同的工具。选错一个会让你白白浪费几个月。这是一篇当下的、经过事实核查的对比,作者就是靠做网页 3D 引擎吃饭的人,在做出自己的引擎之前评估过这里所有这些。

我们会逐一过一遍每个选项,它到底是什么、适合谁、又在哪里掉链子,最后给你一份简短的决策指南。凡是提到版本号的地方,都以 2026 年 6 月的情况为准。

快速对比

PlayCanvasThree.jsBabylon.jsUnity WebGLCinevva
它是什么完整引擎 + 托管编辑器渲染库完整引擎 + 编辑器桌面引擎,网页导出AI 原生世界平台
架构实体组件(ECS)场景图场景图 + 组件GameObject/组件场景图 + AI 构建器
脚本TypeScript / JavaScriptJavaScript(其余靠你自己搭)TypeScript / JavaScriptC#(编译为 Wasm)自然语言 + 代码
渲染器WebGL2,WebGPU 渐趋成熟WebGL2,WebGPU 不断壮大WebGL2,WebGPU 不断推进WebGL2(导出)仅 WebGPU
编辑器托管,商业网页版,免费桌面版,商业世界内,沉浸式
物理Ammo / 集成自带内置 Havok内置(PhysX)自研角色解算器
授权引擎 MIT,编辑器专有MITMIT专有专有
最适合工作室风格的浏览器游戏自定义 3D,完全掌控开箱即用的游戏移植已有的 Unity 游戏世界内 AI 造游戏

这篇文章接下来的部分就是在解释这张表。

PlayCanvas

PlayCanvas 是网页上最接近 Unity 式工作流的东西。引擎以 MIT 许可开源,截至 2026 年 6 月 5 日版本为 v2.19.6。它用实体组件系统,你用 TypeScript 或 JavaScript 写游戏逻辑,资源走一条服务端流水线产出 GLB。有真正的商业游戏跑在上面,大公司也在生产环境里用它,Snap 就是一个公开的例子。

关于 PlayCanvas,人们常搞错的两件事值得纠正。第一,虽然引擎是 MIT 许可的,但大多数团队真正在用的那个托管可视化编辑器是一个商业产品,不是开源的。你可以不用它而免费使用引擎,但"编辑器加云"的工作流是付费的部分。第二,PlayCanvas 是 WebGL2 优先的。它有一条 WebGPU 路径,但那条路径仍在走向成熟,还不是默认渲染器,所以今天别指望用 PlayCanvas 跑生产级的 WebGPU 计算着色器。

PlayCanvas 真正领先的地方是 3D 高斯泼溅(Gaussian splatting)。它的 SuperSplat 编辑器和查看器(团队已经开源)在网页上捕捉和发布泼溅场景这件事上,是任何地方都数得上的顶级工具之一,还带有面向大型捕捉的基于 WebGPU 的流式加载。如果你做的是照片级的扫描环境,那确实是从这里起步的一个真实理由。

选 PlayCanvas,如果你想要一个 Unity 式的编辑器和一条面向浏览器的托管资源流水线,并且你要发布的是工作室会做的那类游戏。另寻他处,如果你今天就需要 WebGPU 计算,或者你想避开一个托管的商业编辑器。

Three.js

Three.js 不是一个游戏引擎。它是一个渲染库,而且是这个领域里使用最广泛的一个,遥遥领先。它给你场景图、相机、灯光、材质、几何体、加载器和一个渲染器,然后就到此为止。没有编辑器、没有物理、没有实体系统,也不对怎么组织一款游戏抱任何成见。这些都得你自己加,或者从生态里拉。

那种取舍就是它的全部故事。你得到最大的掌控权和网页 3D 里最大的社区,代价是渲染器之上的一切都得你自己搭或拼。它的 WebGPU 渲染器一直在稳步壮大,今天就可以用,不过和其他几个一样,WebGL2 路径仍是成熟的默认选项。Three.js 是 MIT 许可的。

选 Three.js,如果你想要完全掌控、一个最小的基座,并且你有工程能力在裸渲染器之上搭出自己的游戏系统。另寻他处,如果你想要别人把编辑器和游戏系统直接递到你手上。

Babylon.js

Babylon.js 是一个完整引擎,MIT 许可,由微软的一个团队支持。和 Three.js 不同,它自带了那些你本来得自己拼的部分:一套组件模型、集成好的 Havok 物理引擎、一个免费的网页版编辑器,还有一条资源流水线。它在 WebGPU 上的工作推进很快,在通用引擎里属于较为先进的,不过它仍把 WebGL2 当作广泛兼容的路径保留着。

如果你的心理模型是"我想要一个完整引擎、内置物理,并且我乐意在它的惯例里干活",那么 Babylon 是一个很强的默认选择,而且可以说是这个领域里功能最完整的免费选项。

选 Babylon.js,如果你想要开箱即用、内置物理和一个免费编辑器。另寻他处,如果你想要极小的依赖体积,或者你就是想要一个 Unity 式的托管工作流。

Unity WebGL

Unity WebGL 不是一个网页引擎,它是一个导出目标。你在 Unity 桌面编辑器里用 C# 构建,然后编译成一个 WebGL 包,通过 WebAssembly 跑在浏览器里。这让它成为某个特定情形下的显而易见的答案:你已经有一款 Unity 游戏,想要它的浏览器版本。

对于一个网页优先的项目,它带来真实的代价。运行时和下载体积都很可观,启动比原生网页引擎更慢,移动端浏览器性能是个众所周知的痛点。Unity 是专有的,它的 WebGL 输出面向 WebGL2。

选 Unity WebGL,如果你有一个已有的 Unity 项目要搬到浏览器,或者你的团队本来就泡在 Unity 里。另寻他处,如果中端手机上的即时加载是硬性要求,或者你是从零开始且网页优先。

AI 原生与世界内创作在哪儿落脚

上面这些都共享一个假设:开发者坐在桌前、在编辑器里构建游戏,然后发布一个运行时。这个假设对大多数项目都成立,如果它描述的就是你的情况,那就从上面四个里选。

但值得知道这个假设不再是唯一的选项了,因为一个不同的品类正在出现。我们做的 Cinevva 是一个仅 WebGPU 的世界平台,游戏是从世界内部创建的。你不是去打开一个编辑器,而是作为一个化身站在空间里,你描述你想要什么,一个 AI 构建器就在你站在那儿的时候把它变成地形、物件和行为。创作和游玩是同一场会话。在底层这意味着我们走了仅 WebGPU 的路线,用计算着色器做地形,写了一个自研的角色解算器而不是通用物理引擎,还做了一套动画和重定向系统,这些我们在我们为什么自己造了一个 WebGPU 引擎里写过。

这不是 PlayCanvas 或 Babylon 的替代品。如果你是一个开发者在做一款特定的游戏,那些才是对的工具。Cinevva 面向的是另一个目标:让那些不是引擎开发者的人通过描述来做出并分享可玩的空间。我们在这里提它,是因为"我该用哪个网页游戏引擎"这个问题,越来越有了一个根本不是引擎的第五个答案。

完整功能矩阵

上面那张快速表是头条。这是详细版,按子系统分组。关于怎么读它,有几条实话。"BYO"意思是自带(bring your own),也就是说引擎本身不带,但生态或你自己的代码可以加上。这对 Three.js 最重要,因为它在设计上就是一个渲染库,所以那里的"BYO"是这种理念的特性,不是缺口。Unity 的"仅导出"意思是该能力存在于桌面编辑器里、会随车带进 WebGL 构建,而不是网页原生的。竞品的格子反映的是截至 2026 年年中开箱即用的能力和有充分文档记载的行为。Cinevva 的格子反映的是我们已发布构建里实际跑着的东西,"计划中"标记的是已设计但尚未做出来的。

渲染

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
主渲染器仅 WebGPUWebGL2(WebGPU 测试版)WebGL2(WebGPU 壮大中)WebGL2(WebGPU 先进)WebGL2(导出)
生产环境计算着色器是(核心依赖)测试版经由 WebGPU是(WebGPU)仅导出,受限
着色器编写TSL 节点 + 计算Shader chunks / GLSLGLSL + 节点(TSL)节点材质 / GLSL / WGSLShaderLab / HLSL
簇式 / forward+ 光照是(froxel)BYO
体积云与天气BYOBYO部分BYO
3D 高斯泼溅工具计划中是(SuperSplat,领先)社区插件

世界与地形

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
内置大世界流式加载是(64m 区块)BYOBYOBYO仅导出
地形系统混合高度图 + marching-cubes/SDFBYOBYO扩展内置(桌面)
运行时地形雕刻是(GPU)BYOBYOBYO否(编辑时)
洞穴与悬垂(真正 3D 拓扑)是(marching cubes)BYOBYOBYOBYO
GPU 实例化植被与草BYO

物理与角色

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
物理引擎自研运动学解算器Ammo 集成BYO(Rapier/Cannon/Ammo)内置 Havok内置 PhysX
刚体动力学否(刻意如此)BYO
角色控制器是(多模式 FSM)模板 / AmmoBYO内置
地形集成碰撞(SDF)BYO

动画

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
骨骼动画
混合 / 状态机是(解析器 FSM)是(动画状态图)Mixer(混合需 BYO)是(Mecanim)
骨架重定向是(流水线)受限社区部分是(人形)
反向动力学计划中受限社区

多人与后端

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
内置多人是(边缘权威)BYO(Photon/Colyseus)BYOBYOBYO(Netcode,非网页原生)
持久化共享世界是(每区块一个 Durable Objects)BYOBYOBYOBYO
空间语音聊天是(WebRTC + HRTF)BYOBYOBYOBYO

创作与编辑

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
编辑器世界内,沉浸式托管的桌面风格(商业)无(极简)网页版(免费)桌面(商业)
世界内具身创作
自然语言 / AI 创作是(AI 构建器)
脚本自然语言 + JSTypeScript / JSJavaScriptTypeScript / JSC#

资源与分发

功能CinevvaPlayCanvasThree.jsBabylon.jsUnity WebGL
服务端资源流水线是(GLB + LOD + KTX2 + Draco)是(GLB)仅加载器导入工具
内置 AI 资源生成是(3D、图像、音频、音乐)
联合资源搜索是(十一个提供商)资源商店资源商店
浏览器里直接跑,无需安装是(很重)
引擎授权专有平台引擎 MIT,编辑器专有MITMIT专有

矩阵里的这种规律才是真正的故事。通用引擎把自己的强项横向铺开,它们各自都把大多数事情做得称职,把世界、后端和创作流程留给你。Cinevva 纵向集中,它做的事更少,但握住了从渲染器到一个你从内部创建的共享世界的整条路径。抽象地说,两种形态没有谁更好。它们回答的是不同的问题。

如何选择

把工具对应到情形上,而不是对应到一张功能清单上。

如果你已经有一款 Unity 游戏,用 Unity WebGL 导出它,并接受那份体积。如果你是一家想要编辑器驱动工作流来做浏览器游戏的工作室,用 PlayCanvas。如果你想要一个内置物理的完整免费引擎,用 Babylon.js。如果你想要完全掌控,并且有团队在一个裸渲染器上搭建,用 Three.js。而如果你的目标不是做一款游戏,而是让人们通过描述事物来在一个共享世界里创作和游玩,那就是我们所在的品类,你可以试试 Cinevva

无论你选哪个,在投入之前都用真正的 spike 做评估。这些里的每一个都能撑起一款真正的游戏,而中途换工具的代价,就是你没拿去发布的那几个月。