Urho3D
Urho3D는 C++로 작성된 크로스 플랫폼 2D·3D 오픈 소스 게임 엔진이다. Lasse Öörni가 시작한 프로젝트이며 OGRE와 Horde3D 등의 그래픽스 기술에서 영향을 받았다. 실시간 렌더링뿐 아니라 장면·게임 객체, 입력·오디오·물리 및 네트워크 기능을 통합해 소규모 게임...
| 분류 | 게임 엔진, 경량 2D·3D 게임 엔진 |
|---|---|
| 초기 개발자 | Lasse Öörni |
| 개발 모델 | 공개 공동체 개발 |
| 작성 언어 | C++ |
| 게임 개발 언어 | C++, Lua 및 외부 바인딩 |
| 기술적 영향 | OGRE, Horde3D |
| 렌더링 | OpenGL, Direct3D 등 버전별 |
| 장면 구조 | Node와 Component 기반 Scene |
| 주요 기능 | 2D·3D 렌더링, 물리, 오디오, UI, 네트워크 |
| 리소스 형식 | XML·JSON 기반 장면·설정 |
| 개발 플랫폼 | Windows, Linux, macOS 등 |
| 라이선스 | MIT License |
| 관련 후속 개발 | Dviglo, Turso3D 등 별도 포크·프로젝트 |
| 소스 코드 | GitHub |
| 공식 프로젝트 | urho3d.github.io |
Urho3D는 C++로 작성된 크로스 플랫폼 2D·3D 오픈 소스 게임 엔진이다. Lasse Öörni가 시작한 프로젝트이며 OGRE와 Horde3D 등의 그래픽스 기술에서 영향을 받았다. 실시간 렌더링뿐 아니라 장면·게임 객체, 입력·오디오·물리 및 네트워크 기능을 통합해 소규모 게임과 실시간 애플리케이션 개발에 사용할 수 있다.[1]
장면은 Scene·Node·Component로 구성되며 Node는 위치·회전과 계층 관계를 관리하고 Component는 카메라·광원·렌더링·충돌 및 사용자 스크립트 같은 동작을 연결한다. 이러한 구조는 게임 객체를 상속 계층의 고정된 클래스보다 조합 가능한 기능으로 정의할 수 있게 한다.
렌더링 엔진은 메시·텍스처·재질, 광원 및 여러 화면 효과를 제공한다. 2D 스프라이트·타일맵과 GUI 시스템도 포함되어 3D 콘텐츠와 2D UI를 동시에 사용할 수 있으며, 물리 엔진과 오디오·애니메이션 시스템은 게임플레이의 기반 기능을 제공한다. 구체적인 그래픽스 API는 플랫폼과 빌드 버전에 따라 다르다.
Urho3D는 전체 소스 코드를 공개하고 C++ 프로젝트에서 엔진을 직접 빌드·변경하도록 한다. Lua와 언어 바인딩·스크립트 기능도 버전별로 지원해 게임 로직을 작성할 수 있으며, 사용자는 원하는 에디터·빌드 도구 또는 독립적인 콘텐츠 파이프라인을 조합할 수 있다.
Urho3D는 MIT 라이선스로 배포된다. 원래 프로젝트가 제공한 기술을 바탕으로 여러 포크 및 후속 실험이 등장했고, 공식 저장소는 Dviglo에서의 비호환성 변경 개발과 초기 개발자의 별도 Turso3D 프로젝트를 안내하고 있다. 이런 프로젝트는 기술적 연결이 있지만 현재 Urho3D와 별도 코드·제품으로 취급된다.[2]