Repolode
Tencent

Tencent/puerts

Решение для написания игровой логики Unity и Unreal Engine на TypeScript/JavaScript, с поддержкой Lua и Python в Unity.

Звёзды
6,236
Форки
869
Открытые issues
313
Последний коммит
6 дней назад

Что это?

PuerTS — мульти языковое решение для скриптинга в Unity, Unreal Engine и .NET. Игровую логику можно писать на TypeScript или JavaScript: команды получают доступ к пакетам npm и статической проверке типов TypeScript, сохраняя возможность работать с API движка на C# или C++. В Unity также доступны бэкенды Lua и Python с тем же API ScriptEnv, поэтому в одном проекте можно сочетать разные языки.

Проект поддерживает несколько сред выполнения JavaScript: V8 по умолчанию, QuickJS для уменьшения размера сборки и Node.js, если нужны API Node. Взаимодействие с движком основано на рефлексии и охватывает весь его API; для критичных к производительности участков можно статически генерировать обёртки. Кроме того, проект генерирует объявления TypeScript, обеспечивающие типобезопасный доступ к API движка.

В PuerTS 3.0 появился Puerts.AI для Unity: помощник в Editor управляет редактором с помощью запросов на естественном языке, а агентный фреймворк может работать непосредственно в игровом runtime.

Ключевые возможности

  • 01Пишите игровую логику на TypeScript или JavaScript с доступом к API UnityEngine или Unreal.
  • 02В Unity доступны бэкенды Lua и Python через тот же API ScriptEnv.
  • 03На выбор — среды выполнения JavaScript V8, QuickJS и Node.js.
  • 04Взаимодействие с C#/C++ на основе рефлексии; для повышения производительности можно генерировать статические обёртки.
  • 05Генерирует объявления TypeScript для API хост-движка.
  • 06Помощник Puerts.AI для редактора и агентный фреймворк для runtime в Unity.

Сценарии использования

  • Разработка игр для Unity или Unreal командами, использующими TypeScript.
  • Горячее обновление игровой логики, написанной на скриптах, без перекомпиляции C#.
  • Повторное использование пакетов npm в игровом проекте.
  • Сборка проектов для WebGL или мини-игр с бэкендом QuickJS.

Быстрый старт

  1. 1

    Добавьте пакет Puerts Unity (установите его согласно руководству по установке Unity).

  2. 2

    Создайте ScriptEnv с бэкендом JavaScript/TypeScript и запустите скрипт.

Что важно знать

  • Бэкенды Lua и Python доступны только для Unity; Unreal поддерживает только JavaScript/TypeScript.
  • Бэкенд Python предназначен только для настольных систем и не поддерживает Android и iOS.
  • В метаданных лицензия указана как NOASSERTION, поэтому перед использованием проверьте её условия.

Темы

Частые вопросы

Что такое puerts?
Решение для написания игровой логики Unity и Unreal Engine на TypeScript/JavaScript, с поддержкой Lua и Python в Unity. PuerTS — мульти языковое решение для скриптинга в Unity, Unreal Engine и .NET. Игровую логику можно писать на TypeScript или JavaScript: команды получают доступ к пакетам npm и статической проверке типов TypeScript, сохраняя возможность работать с API движка на C# или C++. В Unity также доступны бэкенды Lua и Python с тем же API ScriptEnv, поэтому в одном проекте можно сочетать разные языки.
puerts можно использовать бесплатно? Какая у него лицензия?
puerts распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
puerts всё ещё поддерживается?
Активно поддерживается. Последний коммит в puerts — 15 окт. 2026 г..
Для чего можно использовать puerts?
Разработка игр для Unity или Unreal командами, использующими TypeScript. Горячее обновление игровой логики, написанной на скриптах, без перекомпиляции C#. Повторное использование пакетов npm в игровом проекте. Сборка проектов для WebGL или мини-игр с бэкендом QuickJS.
Как установить puerts?
Добавьте пакет Puerts Unity (установите его согласно руководству по установке Unity). Создайте ScriptEnv с бэкендом JavaScript/TypeScript и запустите скрипт.
Где скачать puerts?
Исходный код и инструкции по установке — на GitHub: https://github.com/Tencent/puerts

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты