Panda3D
Panda3D는 C++로 구현되고 Python과 C++ API를 제공하는 공개 3차원 게임 엔진·실시간 그래픽스 프레임워크다. Disney의 게임 개발에 사용된 기술을 바탕으로 Carnegie Mellon University와 공개 개발 공동체가 발전시켰으며, 게임·교육·시뮬레이션·인터...
| 분류 | 게임 엔진, 3D 애플리케이션 프레임워크 |
|---|---|
| 초기 개발 | Disney의 VR Studio |
| 개발·유지보수 | Carnegie Mellon University 및 Panda3D 공동체 |
| 작성 언어 | C++ |
| 개발 언어 | Python, C++ |
| 장면 구조 | Scene Graph, NodePath |
| 렌더링 | OpenGL 등 백엔드 |
| 물리 기능 | Bullet 등 외부 물리 기술 연동 |
| 주요 기능 | 렌더링, 애니메이션, 충돌, 오디오, 입력, 네트워크 |
| 사용 프로그램 | Toontown Online, Pirates of the Caribbean Online |
| 개발 운영체제 | Windows, Linux, macOS |
| 배포 방식 | Python 패키지 및 C++ SDK |
| 라이선스 | 수정 BSD 라이선스 |
| 소스 코드 | GitHub |
| 공식 사이트 | panda3d.org |
Panda3D는 C++로 구현되고 Python과 C++ API를 제공하는 공개 3차원 게임 엔진·실시간 그래픽스 프레임워크다. Disney의 게임 개발에 사용된 기술을 바탕으로 Carnegie Mellon University와 공개 개발 공동체가 발전시켰으며, 게임·교육·시뮬레이션·인터랙티브 시각화 프로그램의 구현에 활용된다.[1]
엔진의 장면은 부모·자식 노드 구조의 Scene Graph로 표현한다. Python 프로그램에서는 NodePath를 이용해 모델과 광원, 카메라의 위치와 계층 관계를 조작하고, 작업 관리 시스템을 통해 매 프레임 호출되는 게임 로직을 구성한다. 이 구조는 프로그래머가 일반적인 Python 모듈과 도구를 유지하면서 3차원 화면과 게임 상태를 직접 제어하도록 한다.
Panda3D의 그래픽 시스템은 모델·텍스처·재질, 셰이더·조명과 여러 렌더링 단계를 관리한다. 자산은 모델 변환 도구와 로더를 거쳐 장면에 추가할 수 있으며, 충돌·애니메이션·입력 및 오디오 시스템도 프레임워크에 포함된다. 물리 계산에는 외부 Bullet 기술과 같은 시스템을 연동할 수 있다.[2]
Python은 게임 로직의 주된 개발 언어이지만 실행 성능이 중요한 렌더링·자산 처리 및 런타임 계층은 네이티브 C++로 구현되어 있다. 개발자는 Python 패키지 형태로 엔진을 설치하거나 C++ API를 이용할 수 있으며, 통합 장면 편집기를 필수로 사용하는 대신 일반 IDE와 자체 콘텐츠 도구를 조합할 수 있다.
Panda3D는 수정 BSD 라이선스에 따라 소스와 바이너리를 배포하므로 엔진 사용에 별도 실행 로열티가 부과되지 않는다. Unreal Engine이나 Unity처럼 에디터 중심의 전체 제작 환경을 우선하는 제품과는 다르게, 코드에서 장면·렌더링·게임 로직을 세밀하게 구성할 수 있는 프레임워크 성격이 강하다.