Top Related Projects
A framework for building native Windows apps with React.
A framework for building native applications using React
Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
Godot Engine – Multi-platform 2D and 3D game engine
Kotlin/Native infrastructure
Quick Overview
Puerts is a cross-platform JavaScript/TypeScript integration solution that allows developers to use JavaScript/TypeScript in C++ and C# projects. It provides a seamless way to bridge the gap between native and scripting languages, enabling developers to leverage the strengths of both.
Pros
- Cross-platform Compatibility: Puerts supports multiple platforms, including Windows, macOS, and Linux, making it a versatile choice for developers working on diverse projects.
- TypeScript Support: Puerts fully supports TypeScript, allowing developers to leverage the benefits of static typing and improved tooling.
- Performance Optimization: Puerts is designed for performance, with features like asynchronous function calls and efficient memory management.
- Extensive Documentation: The project has comprehensive documentation, including tutorials, API references, and examples, making it easier for developers to get started and integrate Puerts into their projects.
Cons
- Learning Curve: Integrating Puerts into an existing project may require a significant learning curve, especially for developers unfamiliar with the concept of bridging native and scripting languages.
- Dependency on Specific Frameworks: Puerts is primarily designed to work with Unity and Unreal Engine, which may limit its applicability for developers working with other game engines or native applications.
- Limited Community: Compared to more established JavaScript/TypeScript frameworks, the Puerts community is relatively small, which could make it harder to find support and resources.
- Potential Performance Overhead: While Puerts is designed for performance, there may be some overhead associated with the language bridging, which could be a concern for highly performance-critical applications.
Code Examples
Example 1: Calling a C++ Function from TypeScript
import * as csharp from 'csharp';
// Call a C++ function
const result = csharp.Puerts.TestClass.Add(1, 2);
console.log(result); // Output: 3
This example demonstrates how to call a C++ function from TypeScript using the csharp module provided by Puerts.
Example 2: Exposing a TypeScript Class to C++
import * as csharp from 'csharp';
class MyClass extends csharp.Puerts.TestClass {
public Add(a: number, b: number): number {
return a + b;
}
}
// Register the TypeScript class with C++
csharp.Puerts.TestClass.Register(MyClass);
This example shows how to expose a TypeScript class to C++ by extending a C++ class and registering the TypeScript class with Puerts.
Example 3: Asynchronous Function Calls
import * as csharp from 'csharp';
async function callAsyncCppFunction() {
const result = await csharp.Puerts.TestClass.DoSomethingAsync();
console.log(result);
}
callAsyncCppFunction();
This example demonstrates how to call an asynchronous C++ function from TypeScript using the await keyword.
Getting Started
To get started with Puerts, follow these steps:
-
Install the Puerts package in your project:
- For Unity, you can install the package from the Unity Package Manager.
- For Unreal Engine, you can download the Puerts plugin from the Puerts GitHub repository.
-
Create a new TypeScript file in your project and import the necessary Puerts modules:
import * as csharp from 'csharp'; -
Expose your C++ or C# functions and classes to TypeScript by using the Puerts API:
// Expose a C++ function csharp.Puerts.TestClass.Register( 'Add', (a: number, b: number) => csharp.Puerts.TestClass.Add(a, b) ); // Expose a C# class csharp.Puerts.TestClass.Register(MyClass); -
Call the exposed functions and use the exposed classes from your TypeScript code:
const result = csharp.Puerts.TestClass.Ad
Competitor Comparisons
A framework for building native Windows apps with React.
Pros of react-native-windows
- Specifically designed for Windows platform, offering native UI components and APIs
- Backed by Microsoft, ensuring long-term support and integration with Windows ecosystem
- Large community and extensive documentation for Windows-specific development
Cons of react-native-windows
- Limited to Windows platform, lacking cross-platform versatility
- Steeper learning curve for developers not familiar with Windows development
- May have performance overhead compared to native C++ development
Code Comparison
react-native-windows:
import { Text, View } from 'react-native';
import { Button } from 'react-native-windows';
const App = () => (
<View>
<Text>Hello, Windows!</Text>
<Button content="Click me" />
</View>
);
puerts:
import * as UE from 'ue'
class MyActor extends UE.Actor {
ReceiveBeginPlay(): void {
console.log("Hello, Unreal Engine!");
}
}
puerts.register(MyActor);
Key Differences
- react-native-windows focuses on building Windows applications using React Native
- puerts enables TypeScript/JavaScript development in Unreal Engine
- react-native-windows uses JSX for UI components, while puerts interacts with Unreal Engine's C++ API
- puerts offers broader game engine integration, while react-native-windows is tailored for Windows app development
A framework for building native applications using React
Error generating comparison
Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
Pros of cocos-engine
- Comprehensive game development framework with a rich set of tools and features
- Large and active community, providing extensive resources and support
- Cross-platform compatibility, allowing developers to target multiple platforms easily
Cons of cocos-engine
- Steeper learning curve due to its extensive feature set
- Potentially heavier resource usage compared to lightweight solutions
- May be overkill for simple projects or those not requiring a full game engine
Code Comparison
cocos-engine:
import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('HelloWorld')
export class HelloWorld extends Component {
start() {
console.log('Hello, Cocos Creator!');
}
}
puerts:
import { FString, Actor } from 'ue'
class HelloWorld extends Actor {
Constructor() {
this.PrimaryActorTick.bCanEverTick = true;
}
ReceiveBeginPlay() {
console.log('Hello, Puerts!');
}
}
The code snippets demonstrate basic setup and logging in both frameworks. cocos-engine uses decorators and a component-based approach, while puerts integrates more closely with Unreal Engine's actor system.
Godot Engine – Multi-platform 2D and 3D game engine
Pros of Godot
- Complete game engine with built-in editor, rendering, physics, and more
- Large, active community with extensive documentation and tutorials
- Cross-platform support for multiple desktop and mobile platforms
Cons of Godot
- Steeper learning curve for developers new to game development
- Less flexible for integrating with existing C++ codebases
- Performance may be lower compared to native C++ engines for complex games
Code Comparison
Godot (GDScript):
extends Node2D
func _ready():
print("Hello, Godot!")
func _process(delta):
position += Vector2(1, 0) * delta
PuerTS (TypeScript):
import * as UE from 'ue'
class MyActor extends UE.Actor {
BeginPlay(): void {
console.log("Hello, PuerTS!");
}
Tick(DeltaSeconds: number): void {
this.AddActorWorldOffset(new UE.Vector(100, 0, 0).Multiply(DeltaSeconds));
}
}
Summary
Godot is a full-featured game engine suitable for various game types, while PuerTS focuses on integrating TypeScript into existing Unreal Engine projects. Godot offers a more comprehensive solution for game development but may have a steeper learning curve. PuerTS provides better performance and integration with C++ codebases but requires existing knowledge of Unreal Engine.
Kotlin/Native infrastructure
Pros of kotlin-native
- Supports multiple target platforms, including iOS, macOS, Windows, and Linux
- Seamless interoperability with existing native libraries and frameworks
- Strong static typing and null safety features inherited from Kotlin
Cons of kotlin-native
- Steeper learning curve for developers not familiar with Kotlin
- Limited JavaScript ecosystem integration compared to puerts
- Potentially larger binary sizes due to inclusion of Kotlin runtime
Code Comparison
kotlin-native:
fun main() {
println("Hello, Kotlin/Native!")
}
puerts:
console.log("Hello, PuerTS!");
Key Differences
- puerts focuses on TypeScript/JavaScript integration with game engines, while kotlin-native is a general-purpose native compilation solution for Kotlin
- kotlin-native provides direct compilation to native binaries, whereas puerts acts as a bridge between TypeScript/JavaScript and native environments
- puerts is specifically designed for game development scenarios, while kotlin-native has broader applications across various domains
Use Cases
- Choose kotlin-native for developing cross-platform native applications with Kotlin
- Opt for puerts when integrating TypeScript/JavaScript into game engines like Unreal Engine or Unity
Community and Support
- kotlin-native benefits from JetBrains' extensive support and the broader Kotlin community
- puerts has a growing community, particularly in the game development sector, with strong backing from Tencent
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME

Unreal Releases
Unity Releases
Nuget Releases
WHAT is PuerTS?
PuerTS is a multi-language scripting solution for Unity/Unreal/DotNet.
- ð Multi-Language Support (Unity 3.0 New!): JavaScript/TypeScript, Lua, and Python â use the language your team is most productive in, or even mix them in one project. (Unreal currently supports JavaScript/TypeScript only.)
- ð Provides high-performance script runtimes with seamless C#/C++ interop.
- ð TypeScript declaration generation for type-safe access to host engine APIs.
WHY should I use PuerTS?
- Choose your language (Unity): PuerTS 3.0 introduces a unified
ScriptEnvarchitecture â write game logic in TypeScript, Lua, or Python with a consistent C# bridging API. No more one-size-fits-all. - Massive ecosystem access: leverage npm, LuaRocks, or PyPI packages alongside professional game engines to accelerate development.
- Type safety when you want it: TypeScript's static type checking significantly improves code robustness, while Lua and Python offer rapid prototyping flexibility.
- High efficiency: full-engine, cross-platform reflection calls â zero boilerplate for C++/C# interop.
- High performance: static wrapper generation for performance-critical paths, across all supported languages.
- Talented WebGL Support: massive advantage in performance and dev efficiency, even faster than pure C# in some cases.
Quick Start (Unity)
All three languages share the same ScriptEnv API â just swap the Backend:
JavaScript / TypeScript
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendV8());
env.Eval(@"
const Vector3 = CS.UnityEngine.Vector3;
const Debug = CS.UnityEngine.Debug;
let pos = new Vector3(1, 2, 3);
Debug.Log('Hello from JS! pos = ' + pos);
");
env.Dispose();
}
Lua
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendLua());
env.Eval(@"
local CS = require('csharp')
local Vector3 = CS.UnityEngine.Vector3
local Debug = CS.UnityEngine.Debug
local pos = Vector3(1, 2, 3)
Debug.Log('Hello from Lua! pos = ' .. pos:ToString())
");
env.Dispose();
}
Python
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendPython());
env.Eval(@"
exec('''
import UnityEngine.Vector3 as Vector3
import UnityEngine.Debug as Debug
pos = Vector3(1.0, 2.0, 3.0)
Debug.Log('Hello from Python! pos = ' + pos.ToString())
''')
");
env.Dispose();
}
ð¡ Three languages, one API surface. Each example creates a
Vector3, then callsDebug.Logâ real C# interop in just a few lines.
Puerts.AI (Unity Only)
Built on top of PuerTS, Puerts.AI brings AI capabilities directly into Unity â both in the Editor and at game runtime.
Unity Editor Assistant
Puerts.AI includes a ready-to-use Unity Editor Assistant that lets you control the Unity Editor with natural language. For example:
- "Build a medieval castle scene using basic meshes" â AI creates GameObjects, adjusts Transforms, assigns materials
- "Analyze puerts-related logs" â AI filters and summarizes logs intelligently
- "Check for missing scripts in the current scene" â AI traverses all GameObjects and reports issues
Any C# API is callable â the AI generates scripts that run in the PuerTS environment with full access to UnityEngine.* and UnityEditor.*.
The Editor Assistant comes in two versions:
| Agent Version (Built-in) | MCP Version (External) | |
|---|---|---|
| How it works | Chat directly inside a Unity Editor window | Connect from Cursor, Windsurf, Claude Desktop, or any MCP-compatible AI tool |
| Speed | â¡ Faster â no network round-trips | Communicates via HTTP/SSE |
| Best for | Scene building, inspections, quick prototyping | Vibe coding workflows â AI edits code while controlling Unity to verify results |
What makes Puerts MCP different from other Unity MCP solutions?
- No separate process â the MCP server runs directly inside the Unity process, no extra services to launch
- Single tool, on-demand builtins â instead of registering dozens of tools upfront, it exposes only one tool; builtin modules are loaded on demand, saving context tokens while remaining equally powerful
- Extensible via builtins & skills â add new capabilities by dropping files into the resource directory, no code changes needed
Puerts.Agent Framework
The Editor Assistant above is built with Puerts.Agent â an open, extensible LLM Agent framework. But it's not just for the editor â agents can also run in game runtime, opening up gameplay possibilities:
- ð® Smart NPC Demo â Each NPC has its own LLM Agent instance and personality-driven system-prompt. NPCs generate truly dynamic dialogue based on player behavior and game state, sense their surroundings via C# APIs, and form personalized interactions through conversation memory. (SmartNPCDemo)
- ð§© Maze Runner Demo â An AI that autonomously navigates a 3D maze by taking screenshots to observe the environment, reasoning about viable paths, executing movement commands, and verifying results â all powered by just two builtin modules and a system-prompt.(MazeRunnerDemo)
Build your own agent by creating a simple resource directory:
Resources/my-agent/
âââ system-prompt.md.txt # Who the AI is and how it behaves
âââ skills/ # Domain knowledge documents (loaded on demand)
âââ builtins/ # Executable helper modules
HOW can I start to use PuerTS
FAQ
How to Install
Changelog
Known issues
Select Script Backend
PuerTS supports multiple script backends. For JavaScript/TypeScript, choose from V8, QuickJS, or Node.js. PuerTS 3.0 also adds Lua and Python as first-class backends.
JavaScript Backends
-
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.
| JS Backend | Node API | Performance | Code Size | Debugging | Notes |
|---|---|---|---|---|---|
| V8 | â | ***** | *** | âï¸ | |
| QuickJS | â | ** | * | â | |
| Node.js | âï¸ | ***** | ***** | âï¸ | OpenSSL may be disabled |
Additional Language Backends (Unity 3.0 New!)
Note: Lua and Python backends are currently available for Unity only. Unreal Engine still supports JavaScript/TypeScript exclusively.
| Backend | Language | Performance | Platform Support | Notes |
|---|---|---|---|---|
| Lua | Lua 5.4 | ***** | All platforms | Ideal for teams already using Lua |
| Python | CPython | *** | Desktop only | Great for AI/ML integration & tooling |
Avaliable on these Engine
-
unreal engine 4.22 ~ latest
-
unity 5 ~ latest
-
Any .net project
Available on these Platform
PuerTS's core code supports all platforms supported by the game engines, but each script backend has its own platform requirements:
| Windows | Mac | Linux | Android | iOS | H5/Mini Games | |
|---|---|---|---|---|---|---|
| V8 | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | â |
| Nodejs | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | â |
| Quickjs | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ |
| Webgl | â | â | â | â | â | âï¸ |
| Lua | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ |
| Python | âï¸ | âï¸ | âï¸ | â | â | â |
Note 1: Only V8, Nodejs, and Quickjs backends are available for Unreal. Unity supports all backends listed above. Note 2: Although the Webgl backend only supports H5/Mini Games, its scripts run in the native JS VM of the web environment, which typically delivers higher performance (e.g., JIT support in iOS Mini Games). It also provides first-class language benefits such as convenient debugging and profiling. Note 3: For JavaScript, different platforms can use different JS backends â e.g., V8 for mobile apps and Webgl for H5 â achieving full platform coverage with optimal performance.
Ask for help
WHAT - æ®æ´±TSæ¯ä»ä¹?
PuerTS æ¯ Unity/Unreal/Dotnet ä¸çå¤è¯è¨èæ¬ç¼ç¨è§£å³æ¹æ¡ã
- ð å¤è¯è¨æ¯æï¼Unity 3.0 æ°ç¹æ§ï¼ï¼ï¼JavaScript/TypeScriptãLuaãPython ä¸å¤§è¯è¨å¼ç®±å³ç¨ââå¢éæ é¿ä»ä¹å°±ç¨ä»ä¹ï¼åä¸ä¸ªé¡¹ç®éçè³å¯ä»¥æ··ç¨ãï¼Unreal ç®åä» æ¯æ JavaScript/TypeScriptãï¼
- ð æä¾é«æ§è½èæ¬è¿è¡æ¶ï¼ä¸ C#/C++ æ ç¼äºæä½ã
- ð æä¾ TypeScript 声ææä»¶çæè½åï¼ç±»åå®å ¨å°è®¿é®å®¿ä¸»å¼æ APIã
WHY - 为ä»ä¹æè¯¥ç¨æ®æ´±TS?
- èªç±éæ©è¯è¨ï¼Unityï¼ï¼PuerTS 3.0 å¼å
¥äºç»ä¸ç
ScriptEnvæ¶æââç¨ TypeScriptãLua æ Python ç¼å游æé»è¾ï¼äº«åä¸è´ç C# æ¡¥æ¥ APIï¼ä¸å被æä¸ç§èæ¬è¯è¨ç»å®ã - **æµ·éçæéæå¯ç¨**ï¼npmãLuaRocksãPyPI çæµ·éå + ä¸ä¸æ¸¸æå¼æç渲æè½åï¼å éå¼åæçã
- **æééæ©ç±»åå®å ¨**ï¼TypeScript çéæç±»åæ£æ¥æ¾èæå代ç å¥å£®æ§ï¼Lua å Python åæä¾å¿«éååéªè¯ççµæ´»æ§ã
- 髿ï¼å ¨å¼æï¼å ¨å¹³å°æ¯æåå°è°ç¨ï¼æ éé¢å¤æ¥éª¤å³å¯ä¸å®¿ä¸» C++/C# éä¿¡ã
- 髿§è½ï¼å ¨å¼æï¼å ¨å¹³å°æ¯æçæéæè°ç¨æ¡¥æ¢ï¼æææ¯æçè¯è¨é½å ¼é¡¾äºé«æ§è½åºæ¯ã
- **WebGL å¹³å°å¤©çä¼å¿**ï¼ç¸æ¯å ¶ä»èæ¬æ¹æ¡ï¼PuerTS å¨ WebGL 平尿§è½åæçä¸é½ææå¤§æåï¼æéæ åµçè³æ¯çº¯ C# æ´å¿«ã
å¿«é䏿ï¼Unityï¼
ä¸ç§è¯è¨å
±äº«åä¸å¥ ScriptEnv APIï¼åªé忢 Backendï¼
JavaScript / TypeScript
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendV8());
env.Eval(@"
const Vector3 = CS.UnityEngine.Vector3;
const Debug = CS.UnityEngine.Debug;
let pos = new Vector3(1, 2, 3);
Debug.Log('Hello from JS! pos = ' + pos);
");
env.Dispose();
}
Lua
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendLua());
env.Eval(@"
local CS = require('csharp')
local Vector3 = CS.UnityEngine.Vector3
local Debug = CS.UnityEngine.Debug
local pos = Vector3(1, 2, 3)
Debug.Log('Hello from Lua! pos = ' .. pos:ToString())
");
env.Dispose();
}
Python
using Puerts;
using UnityEngine;
void Start() {
var env = new ScriptEnv(new BackendPython());
env.Eval(@"
exec('''
import UnityEngine.Vector3 as Vector3
import UnityEngine.Debug as Debug
pos = Vector3(1.0, 2.0, 3.0)
Debug.Log('Hello from Python! pos = ' + pos.ToString())
''')
");
env.Dispose();
}
ð¡ ä¸ç§è¯è¨ï¼åä¸å¥ APIãæ¯ä¸ªç¤ºä¾é½å建äºä¸ä¸ª
Vector3ï¼ç¶åè°ç¨Debug.Logââççå è¡ä»£ç å³å¯å®ç°çæ£ç C# äºæä½ã
Puerts.AIï¼ä» Unityï¼
åºäº PuerTS æå»ºç Puerts.AIï¼å° AI è½åç´æ¥å¸¦å ¥ Unityââæ è®ºæ¯ç¼è¾å¨è¿æ¯æ¸¸æè¿è¡æ¶ã
Unity ç¼è¾å¨å©æ
Puerts.AI å ç½®äºä¸ä¸ªå¼ç®±å³ç¨ç Unity ç¼è¾å¨å©æï¼è®©ä½ ç¨èªç¶è¯è¨ææ§ Unity ç¼è¾å¨ãä¾å¦ï¼
- "ç¨åºç¡ Mesh æå»ºä¸åº§ä¸ä¸çºªåå ¡åºæ¯" ââ AI èªå¨å建 GameObjectãè°æ´ Transformã设置æè´¨
- "åæä¸ puerts ç¸å ³çæ¥å¿" ââ AI æºè½è¿æ»¤å¹¶æ»ç»æ¥å¿
- "æ£æ¥å½ååºæ¯ææ²¡æèæ¬ä¸¢å¤±" ââ AI éåææ GameObject å¹¶æ¥åé®é¢
**塿¯ C# è½è°ç¨çï¼AI é½è½åå°**ââAI çæçèæ¬è¿è¡å¨ PuerTS ç¯å¢ä¸ï¼å¯ç´æ¥è®¿é® UnityEngine.* å UnityEditor.* ç宿´ APIã
ç¼è¾å¨å©ææä¸¤ä¸ªçæ¬ï¼
| Agent çï¼å ç½®ï¼ | MCP çï¼å¤æ¥ï¼ | |
|---|---|---|
| ä½¿ç¨æ¹å¼ | å¨ Unity ç¼è¾å¨çªå£å ç´æ¥å¯¹è¯ | ä» CursorãWindsurfãClaude Desktop çæ¯æ MCP åè®®ç AI å·¥å ·æ¥å ¥ |
| é度 | â¡ æ´å¿«ââæ²¡æç½ç»å¾è¿ | éè¿ HTTP/SSE éä¿¡ |
| éååºæ¯ | åºæ¯æå»ºãæ¥å¸¸æ£æ¥ãå¿«éåå | Vibe coding 工使µââAI ä¸è¾¹æ¹ä»£ç ä¸è¾¹ææ§ Unity éªè¯ææ |
Puerts MCP ä¸å¸é¢ä¸å ¶ä» Unity MCP æ¹æ¡æä½ä¸åï¼
- æ éé¢å¤å¯å¨è¿ç¨ ââ MCP Server ç´æ¥è·å¨ Unity è¿ç¨å ï¼ä¸ç¨å¦èµ·æå¡
- åå·¥å · + æéå è½½ builtin ââ ä¸åå ¶ä»æ¹æ¡é¢æ³¨åå åä¸ªå·¥å ·ï¼Puerts MCP åªæ´é²ä¸ä¸ªå·¥å ·ï¼builtin 模åæéå è½½ï¼æ´çä¸ä¸æ tokenï¼ä½åè½åæ ·å¼ºå¤§
- éè¿ builtin å skill æºå¶æå± ââ åªéå¾èµæºç®å½éæ¾æä»¶å°±è½æ·»å æ°è½åï¼æ 鿹代ç
Puerts.Agent æ¡æ¶
ä¸é¢çç¼è¾å¨å©æå°±æ¯ç¨ Puerts.Agent å¼åçââä¸ä¸ªå¼æ¾ã坿©å±ç LLM Agent æ¡æ¶ãå®ä¸ä» è½ç¨äºç¼è¾å¨ï¼è¿è½è·å¨æ¸¸æè¿è¡æ¶ç¯å¢ä¸ï¼ä¸º gameplay ç©æ³å¼åæå¼å ¨æ°å¯è½ï¼
- ð® æºè½ NPC Demo ââ æ¯ä¸ª NPC æ¥æç¬ç«ç LLM Agent å®ä¾å个æ§å system-promptãNPC è½æ ¹æ®ç©å®¶è¡ä¸ºå游æç¶æçæçæ£å¨æç对è¯ï¼éè¿ C# æ¥å£æç¥å¨å´ç¯å¢ï¼å¹¶åºäºå¯¹è¯åå²å½¢æä¸ªæ§åç交äºä½éªãï¼SmartNPCDemoï¼
- 𧩠迷宫 AI Demo ââ AI èªä¸»èµ°è¿·å®«ç Demoï¼å±ç¤º Agent éè¿æªå±è§å¯ + å·¥å ·è°ç¨æ¥æ¢ç´¢ 3D 迷宫ãAI æªå±è§å¯å½åè§éãæ¨çå¯è¡è·¯å¾ãæ§è¡ç§»å¨æä»¤ãåæªå±éªè¯ç»æââå®å ¨èªä¸»å®æï¼æ´ä¸ªå®ç°ä» ç¨äºä¸¤ä¸ª builtin 模åå䏿®µ system-promptãï¼MazeRunnerDemoï¼
æå»ºä½ èªå·±ç Agentï¼åªéå建ä¸ä¸ªç®åçèµæºç®å½ï¼
Resources/my-agent/
âââ system-prompt.md.txt # åè¯ AI 宿¯è°ã该æä¹å
âââ skills/ # é¢åç¥è¯ææ¡£ï¼æéå è½½ï¼
âââ builtins/ # 坿§è¡çè¾
婿¨¡å
HOW - æè¯¥æä¹å¼å§
常è§é®é¢
ææ°çæ¬å®è£
æ¹å¨æ¥å¿
å·²ç¥é®é¢ä¸è§£å³åæ³
èæ¬åç«¯éæ©
PuerTS æ¯æå¤ç§èæ¬å端ãJavaScript/TypeScript å¯é V8ãQuickJSãNode.jsï¼3.0 æ°å¢ Lua å Python ä½ä¸ºä¸çå ¬æ°å端ã
JavaScript å端
-
V8ï¼é»è®¤ï¼ï¼ç»¼åæ¯è¾ä¼ç§ï¼é«æ§è½ï¼ä»£ç ä½ç§¯éä¸ï¼ä» å å« ECMAScript è§èçå®ç°ï¼ä¸å å« Node.js APIãæµè§å¨ APIã
-
QuickJSï¼æ§è½ä¸å¦ V8ï¼ä¸æ¯æè°è¯ï¼ä½ä»£ç ä½ç§¯å°ï¼éç¨äºå ä½å¤§å°ææçåºæ¯ã
-
Node.jsï¼æ¯æ Node.js APIï¼Unreal Engine ç§»å¨å¹³å°ä¸ä¸æ¯æ OpenSSL ç¸å ³ APIï¼ï¼ä»£ç ä½ç§¯è¾å¤§ã
| JS å端 | Node API | æ§è½ | 代ç ä½ç§¯ | è°è¯ | è¡¥å |
|---|---|---|---|---|---|
| V8 | â | ***** | *** | âï¸ | |
| QuickJS | â | ** | * | â | |
| Node.js | âï¸ | ***** | ***** | âï¸ | OpenSSL å¯è½è¢«ç¦ç¨ |
æ°å¢è¯è¨å端ï¼Unity 3.0 æ°ç¹æ§ï¼ï¼
注æï¼Lua å Python å端ç®å**ä» å¨ Unity çæ¬**ä¸å¯ç¨ï¼Unreal Engine ä»ä» æ¯æ JavaScript/TypeScriptã
| å端 | è¯è¨ | æ§è½ | 平尿¯æ | è¡¥å |
|---|---|---|---|---|
| Lua | Lua 5.4 | ***** | å ¨å¹³å° | éåå·²æ Lua ææ¯æ çå¢é |
| Python | CPython | *** | æ¡é¢å¹³å° | éå AI/ML éæä¸å·¥å ·é¾å¼å |
å¯ç¨å¼æ
-
unreal engine 4.22 ~ latest
-
unity 5 ~ latest
-
ä»»æ.netç¯å¢
å¯ç¨å¹³å°
PuerTSçæ ¸å¿ä»£ç æ¯ææ¸¸æå¼ææ¯æçææå¹³å°ï¼ä½æ¯ä¸ªèæ¬å端æå ¶ç¹æçå¹³å°è¦æ±ï¼
| Window | Mac | Linux | Android | IOS | H5/å°æ¸¸æ | |
|---|---|---|---|---|---|---|
| V8 | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | â |
| Nodejs | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | â |
| Quickjs | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ |
| Webgl | â | â | â | â | â | âï¸ |
| Lua | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ | âï¸ |
| Python | âï¸ | âï¸ | âï¸ | â | â | â |
注1ï¼ Unrealä¸åªæV8ãNodejsãQuickjsä¸ç§å端ï¼Unityæ¯æä»¥ä¸ææèæ¬å端 注2ï¼ Webglå端è½ç¶åªæ¯æH5/å°æ¸¸æï¼ä½å®çèæ¬æ¯è¿è¡å¨webç¯å¢çåçjsèææºéï¼é常æ§è½æ´é«ï¼æ¯å¦å¨ioså°æ¸¸æç¯å¢éæ¯æjitï¼ï¼ä¹è½äº«åfirst classè¯è¨è¯¸å¦æ¹ä¾¿è°è¯ï¼profilerçå¥½å¤ æ³¨3ï¼ å¯¹äºjsï¼ä¸åå¹³å°å¯ä»¥éä¸åçjsèæ¬åç«¯ï¼æ¯å¦appév8ï¼H5å¹³å°éWebglå®ç°å ¨å¹³å°æ¯æä¸æ§è½æä¼
ææ¯æ¯æ
QQ群ï¼942696334
UE4ä¸å±ç¾¤ï¼689643903
å¼åå客
Top Related Projects
A framework for building native Windows apps with React.
A framework for building native applications using React
Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
Godot Engine – Multi-platform 2D and 3D game engine
Kotlin/Native infrastructure
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot