Skip to content
/ puerts Public
forked from Tencent/puerts

普洱TS!Write your game with TypeScript in UE or Unity. PuerTS can be pronounced as pu-erh TS

License

Notifications You must be signed in to change notification settings

ps5mh/puerts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f1a0498 · Nov 28, 2024
Nov 20, 2024
Nov 8, 2024
Nov 28, 2024
Nov 27, 2024
Jan 7, 2022
Mar 16, 2021
Aug 16, 2020
Oct 25, 2024

Repository files navigation

Logo

license PRs Welcome

unreal

unity Unity_Test

跳转中文

WHAT is PuerTS (PUER Typescript)?

PuerTS is a TypeScript programming solution in Unity/Unreal/DotNet.

  • provides a JavaScript Runtime.
  • allows TypeScript to access the host engine with the help of TypeScript declarations generation.

WHY should I use PuerTS?

  • Facilitates game-building processes by combining JavaScript/Node.js ecosystem and professional game engines
  • In contrast to Lua script, TypeScript supports static type checking, which significantly improves code robustness and maintainability.
  • High efficiency: supports reflection call throughout the host - no extra steps needed for interop with C++/C#.
  • High performance: supports static wrapper generation - handles complex scenes with high-performance demands.
  • Talented WebGL Support: massive advantage in performance and dev efficiency compared to Lua, even faster than pure C# in some cases.

HOW can I start to use PuerTS

Documentation


FAQ

How to Install

Changelog

Known issues


Select Script Engine

Currently puerts supports three script engines: v8, quickjs, nodejs, choose the one that suits you.

  • V8 (default): Generally excellent performance, moderate code size, only includes the implementation of the ECMAScript specification, does not include Node.js API or browser API.

  • QuickJS: Performance is not as good as V8, does not support debugging, but has a small code size, suitable for scenarios where code size is critical.

  • Node.js: Supports Node.js API (OpenSSL-related APIs are not supported on Unreal Engine's mobile platform), but has a larger code size.

Script Engine Node api Performance Code Size Debugging Notes
V8 ***** *** ✔️
QuickJS ** *
Node.js ✔️ ***** ***** ✔️ OpenSSL may be disabled

Avaliable on these Engine

  • unreal engine 4.22 ~ latest

  • unity 5 ~ latest

  • Any .net project

Available on these Platform

  • iOS
  • Android
  • OpenHarmony
  • Windows
  • Macos

Ask for help

Github Discussion


WHAT - 普洱TS是什么?

PuerTS是 Unity/Unreal/Dotnet 下的TypeScript编程解决方案

  • 提供了一个JavaScript运行时
  • 提供TypeScript声明文件生成能力,易于通过TypeScript访问宿主引擎,

WHY - 为什么我该用普洱TS?

  • JavaScript生态有众多的库和工具链,结合专业商业引擎的渲染能力,快速打造游戏
  • 相比游戏领域常用的lua脚本,TypeScript的静态类型检查有助于编写更健壮,可维护性更好的程序
  • 高效:全引擎,全平台支持反射调用,无需额外步骤即可与宿主C++/C#通信。
  • 高性能:全引擎,全平台支持生成静态调用桥梁,兼顾了高性能的场景。
  • WebGL平台下的天生优势:相比Lua脚本在WebGL版本的表现,PuerTS在性能和效率上都有极大提升,目前极限情况甚至比C#更快。

HOW - 我该怎么开始


常见问题

最新版本安装

改动日志

已知问题与解决办法


脚本引擎选择

目前puerts支持三种脚本引擎:v8、quickjs、nodejs,选择合适你的那个。

  • v8(默认):综合比较优秀,高性能,代码体积适中,仅包含ecmascript规范的实现,不包含nodejs api、浏览器 api

  • quickjs: 性能不如v8,不支持调试,但代码体积小,适用于代码段大小敏感型业务

  • nodejs:支持nodejs api(unreal engine的移动平台下不支持openssl相关api),代码体积较大

脚本引擎 Node api 性能 代码体积 调试 补充
V8 ***** *** ✔️
QuickJS ** *
Node.js ✔️ ***** ***** ✔️ OpenSSL 可能被禁用

可用引擎

  • unreal engine 4.22 ~ latest

  • unity 5 ~ latest

  • 任意.net环境

可用平台

  • iOS
  • Android
  • 鸿蒙(OpenHarmony)
  • Windows
  • Macos

技术支持

Github Discussion

QQ群:942696334

UE4专属群:689643903

开发博客

知乎专栏

About

普洱TS!Write your game with TypeScript in UE or Unity. PuerTS can be pronounced as pu-erh TS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 44.6%
  • C# 21.1%
  • C 12.9%
  • JavaScript 9.3%
  • TypeScript 6.5%
  • CMake 4.5%
  • Other 1.1%