https://github.com/Tencent/puerts
GitHub - Tencent/puerts: PUER(普洱) Typescript. Let's write your game in UE or Unity with TypeScript.
PUER(普洱) Typescript. Let's write your game in UE or Unity with TypeScript. - Tencent/puerts
github.com
먼저, puerts는 중국 텐센트에서 개발한 라이브러리로 유니티, 언리얼 엔진의 C#, C++을 type script로 변환해서 개발할 수 있게 해주는 라이브러리이다.
PuerTSUnity/Unreal/DotNet용 다국어 스크립팅 솔루션 입니다 .
- 🌐 다국어 지원 (Unity 3.0 신규 기능!) : JavaScript/TypeScript, Lua , Python — 팀에서 가장 생산적인 언어를 사용하거나, 하나의 프로젝트에서 여러 언어를 혼합하여 사용할 수도 있습니다. (Unreal Engine은 현재 JavaScript/TypeScript만 지원합니다.)
- 🚀 C#/C++와의 원활한 상호 운용성을 갖춘 고성능 스크립트 런타임을 제공합니다.
- 📝 호스트 엔진 API에 대한 타입 안전 접근을 위한 TypeScript 선언 생성 기능.
출처 - puerts github
현재 재직중인 회사에서 해당 라이브러리를 사용하여 게임을 개발, 서비스 중이다. 그렇다면 왜 이 라이브러리를 사용하고 있을까?
- 원하는 언어를 선택하세요(Unity) : PuerTS 3.0은 통합 ScriptEnv아키텍처를 도입하여 TypeScript, Lua 또는 Python으로 게임 로직을 작성하고 일관된 C# 브리징 API를 사용할 수 있습니다. 더 이상 획일적인 방식은 없습니다.
- 방대한 생태계 접근성 : npm, LuaRocks 또는 PyPI 패키지를 전문 게임 엔진과 함께 활용하여 개발 속도를 높이세요.
- 필요할 때 타입 안정성을 확보하세요 : TypeScript의 정적 타입 검사는 코드의 견고성을 크게 향상시키며, Lua와 Python은 빠른 프로토타이핑을 위한 유연성을 제공합니다.
- 높은 효율성 : 완전한 엔진, 크로스 플랫폼 리플렉션 호출 — C++/C# 상호 운용을 위한 상용구 코드가 전혀 필요 없습니다.
- 고성능 : 지원되는 모든 언어에서 성능에 중요한 경로에 대한 정적 래퍼 생성 기능을 제공합니다.
- 뛰어난 WebGL 지원 : 성능 및 개발 효율성 측면에서 엄청난 이점을 제공하며, 경우에 따라 순수 C#보다도 빠릅니다.
출처 - puerts github
해당 라이브러리 사용 후기
장점
1. 스크립트 개발
본래 상용 게임 엔진(유니티, 언리얼)의 스크립트를 변경하면 빌드 > 스토어에 검수 > 대기 > 배포 이러한 과정을 겪게 되는데 해당 과정을 겪을 필요 없이 빌드 하고 배포중인 게임에 스크립트만 업데이트 하면 된다. (재접속 후 갱신됨)
2. 빠른 개발
상용 게임 엔진에서 스크립트를 변경하고 해당 엔진으로 돌아오면 컴파일이 한 번 돌게 되는데 puerts 에서는 스크립트 백엔드 기능도 제공하여 JS의 V8을 사용해 코드 변경 후 해당 변경 부분이 바로 적용이 되어 엔진에서 확인 가능하다.
단점
1. 부족한 자료
해당 라이브러리를 사용하는 국내, 해외 기업이 많지 않아서 자료가 많이 부족하다. 국내 기업은 없는 것 같고 해외 기업들도 중국 기업들이 대부분이고 대표적으로 명조가 해당 라이브러리를 사용하여 개발되었다.
2. type script
사실 C++, C# 만 사용하다가 type script를 사용하면 익숙하지 않다. 대표적으로 C#에서 Linq를 자주 사용했었는데 type script es5기준 비슷한 기능을 하는게 몇 개 있을뿐 내부적으로는 똑같이 작동하지 않는다.
실제 사용 자료

UnityEngine의 기능들을 미리 바인딩 시키고 ts로 만든다.

purets 툴을 사용하여 index.d.ts 파일로 생성하면 엔진의 해당 기능을 사용할 수 있게 된다. Vector3를 예시로 들었다.

해당 부분을 가져와서 ts에서 사용한다.

디버깅도 유니티의 디버깅 기능이 아닌 node.js의 디버깅을 이용했다.
'C# > Unity' 카테고리의 다른 글
| [유나이트 서울]모바일 던파 기술 전환 과정 (0) | 2025.04.16 |
|---|---|
| [Unity C#] HutongGames.PlayMaker 런타임 실행(실제 빌드에서의 런타임) 오류 해결방법 (0) | 2025.03.18 |
| 면접 도움 링크 (1) | 2024.04.02 |
| [Unity C#] JAVA_HOME 환경 변수 설정 오류 (1) | 2023.12.11 |
| [Unity C#] 2022 이상 버전 경고 문구 (1) | 2023.12.11 |






















