Puerts 技术演进蓝图:连接游戏引擎与 TypeScript 的下一代桥梁
一、技术愿景:打造无缝跨语言开发体验
Puerts 作为连接 TypeScript 与游戏引擎(Unreal Engine、Unity)的关键桥梁,正致力于消除不同编程语言间的技术壁垒。通过持续优化跨语言交互效率、完善开发工具链和拓展多平台支持,Puerts 旨在为游戏开发者提供"零摩擦"的开发体验,让 TypeScript 成为游戏逻辑开发的首选语言之一。
引擎生态深度整合
Puerts 将继续深化与主流游戏引擎的融合,不仅实现 API 层面的简单绑定,更追求从渲染管线到物理系统的全栈脚本化控制。未来版本将重点提升对引擎底层功能的脚本访问能力,使开发者能够通过 TypeScript 直接操作引擎核心模块,实现更灵活的游戏逻辑编写。
多语言统一开发范式
打破传统游戏开发中 C++/C# 与脚本语言的割裂状态,Puerts 致力于构建一套统一的开发范式。通过创新的类型系统和绑定技术,让开发者在享受 TypeScript 带来的开发效率提升的同时,获得与原生代码相当的性能表现。
二、核心突破:四大技术方向引领创新
【运行时优化】:异构 runtime 性能突破
静态绑定技术革新 🔄迭代中
通过模板绑定技术重构跨语言调用路径,减少 C++/C# 到 JavaScript 的类型转换开销。这一优化借鉴了 V8 后端字节码支持的实现经验,预计将复杂对象传递效率提升近半。新的绑定系统将自动生成优化的调用代码,避免运行时类型检查的性能损耗。
WebAssembly 轻量级后端 🌱实验性
基于 WASM 核心模块开发的轻量级运行时,专为移动端设备优化。相比传统 JavaScript 引擎,WASM 后端可将启动速度提升 40%,同时包体大小缩减 30%。这一技术将为移动游戏开发带来更优的性能表现和更小的资源占用。
技术参数对比
- 启动时间:传统 JS 引擎 280ms vs WASM 后端 168ms - 内存占用:传统 JS 引擎 45MB vs WASM 后端 32MB - 包体大小:传统 JS 引擎 2.3MB vs WASM 后端 1.6MB【内存管理】:智能资源调度系统
增量 GC 机制 🌱实验性
针对大型项目中 JsEnv 销毁时的卡顿问题,Puerts 正在开发增量 GC 机制。参考 THREAD_SAFE 模式的线程安全设计,实现虚拟机资源的分帧释放,避免主线程阻塞。这一机制将游戏逻辑的帧率波动控制在 5% 以内,显著提升大型项目的运行稳定性。
智能对象缓存 🔄迭代中
引入基于使用频率的对象缓存策略,减少跨语言对象创建和销毁的开销。系统会自动识别热点对象并进行智能缓存,同时根据内存压力动态调整缓存大小。初步测试显示,这一技术可将对象创建相关的性能开销降低 35%。
【开发体验】:全链路工具链升级
跨语言调试系统 ✅稳定版
扩展 VSCode 联合调试功能,实现 TypeScript 断点与引擎 C++ 调用栈的无缝跳转。开发者可以在单一调试界面中追踪从 TypeScript 到原生代码的完整调用流程,极大提升问题定位效率。
图 1:Puerts 调试配置界面,展示了 TypeScript 与引擎代码的联合调试环境
性能分析面板 🔄迭代中
新增运行时性能统计模块,可视化展示 JS/C# 交互热点。类似 UE 性能分析工具的实时监控能力,开发者可以直观地看到跨语言调用的耗时分布,快速定位性能瓶颈。
【多平台支持】:全场景覆盖策略
新兴平台适配 🌱实验性
- 鸿蒙生态:开发 ArkTS 运行时后端,实现一次编码多端部署
- Nintendo Switch:优化 QuickJS 后端的内存占用,满足主机平台资源限制要求
WebGL 平台增强 ✅稳定版
Unity WebGL 版本将支持 ES Module 标准,允许使用 import 语法加载引擎模块,解决动态导入导致的类型检查失效问题。配合 ServiceWorker 技术,实现浏览器环境下的代码热更新,大幅提升 Web 平台的开发体验。
图 2:Unity WebGL 平台后台运行设置界面,支持 Puerts 运行时的持续执行
三、落地路径:分阶段实施计划
2025 Q4:基础能力强化
- 完成 Unreal Engine 5.6 深度适配
- WebGL 性能优化与兼容性提升
- 增量 GC 机制初步实现
2026 Q1:核心技术突破
- 静态绑定泛型支持正式发布
- WASM 后端预览版推出
- 新一代调试工具链上线
2026 Q2:架构升级与生态建设
- 模块化架构重构完成
- 多后端统一接口发布
- 社区工具链生态完善
四、参与方式:共建 Puerts 生态
技术路线投票
我们正在规划以下三个潜在功能,欢迎通过社区渠道投票选择您最期待的功能:
- TypeScript 装饰器式 UClass 定义
- 基于 AI 的代码生成助手
- 跨引擎统一 API 抽象层
贡献者快速入门
文档资源
- 官方开发指南:doc/unity/zhcn/install.md
- API 参考文档:doc/unreal/zhcn/manual.md
- 贡献指南:doc/unity/en/other/community.md
基础 PR 模板
## 功能描述
[简要描述此 PR 实现的功能]
## 技术实现
[说明实现方案和关键技术点]
## 测试方法
[描述如何测试此功能]
## 相关文档
[如有更新文档,请列出相关文件路径]
社区参与渠道
- 提交特性建议:项目 Issues 系统
- 代码贡献:通过项目仓库提交 PR
- 讨论交流:社区 Discord 频道
挑战与解决方案:技术难点突破
泛型类型推导
挑战:复杂容器类型(如 TArray)的 TypeScript 声明生成。 解决方案:基于静态绑定模板技术,开发泛型类型分析器,自动推导容器元素类型并生成带约束的泛型接口声明。
多引擎 API 统一
挑战:Unreal Engine 与 Unity 的 API 差异导致的代码兼容性问题。 解决方案:设计抽象 API 层,通过适配器模式封装不同引擎的特有实现,提供统一的 TypeScript 接口。
图 3:Puerts 模块依赖关系图,展示了各核心模块间的交互架构
Puerts 团队将持续聚焦"零摩擦开发体验",通过技术创新降低游戏开发的语言壁垒。我们邀请开发者共同参与这一技术演进过程,一起塑造游戏开发的未来。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0448
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0769
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0313
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00


