Duality
Duality는 C# 및 OpenTK을 기반으로 개발된 공개 2차원 게임 엔진 및 프레임워크다. 코드 라이브러리만 제공하기보다 게임 객체와 컴포넌트를 시각적으로 편집하는 Duality Editor를 함께 제공하며, 확장 가능한 플러그인 구조를 통해 다양한 2D 게임을 제작하도록 설계됐다...
| 분류 | 게임 엔진, 2차원 개발 프레임워크 |
|---|---|
| 개발 주체 | AdamsLair 프로젝트 |
| 개발 시작 | 2011년경 |
| 작성 언어 | C# |
| 기반 기술 | .NET, OpenTK, OpenGL |
| 주요 구조 | 컴포넌트 기반 게임 객체, 플러그인 |
| 개발 도구 | Duality Editor |
| 주요 기능 | 2D 렌더링, 물리, 오디오, 입력, 콘텐츠 관리 |
| 도구 기능 | 핫 리로드, 라이브 편집, 자산 브라우징 |
| 기본 개발 환경 | Windows 및 Visual Studio |
| 크로스 플랫폼 | 일부 코어 코드의 Mono 기반 빌드 |
| 공개 라이선스 | MIT License |
| 프로젝트 상태 | 개발 무기한 중단, 2025년 저장소 보관 |
| 소스 코드 | AdamsLair/duality |
| 문서 | Duality 공식 문서 |
Duality는 C# 및 OpenTK을 기반으로 개발된 공개 2차원 게임 엔진 및 프레임워크다. 코드 라이브러리만 제공하기보다 게임 객체와 컴포넌트를 시각적으로 편집하는 Duality Editor를 함께 제공하며, 확장 가능한 플러그인 구조를 통해 다양한 2D 게임을 제작하도록 설계됐다. 2011년경부터 개발되었고 소스 코드는 MIT 라이선스로 공개됐다.[1]
Duality의 게임 객체는 컴포넌트를 결합하여 동작과 데이터를 구성한다. 새로운 게임 로직을 C#으로 작성하고 컴포넌트 형태로 객체에 부착할 수 있으며, 엔진의 공통 실행 주기는 객체의 갱신과 표시를 담당한다. 플러그인을 통해 렌더링 및 게임 시스템을 확장할 수 있어 특정 장르의 고정된 제작 방식만 요구하지 않는 구조다.
시각적 편집기는 장면과 게임 객체·자산을 다루는 통합 작업 공간으로 제공된다. 개발자는 파일을 편집기로 가져오고, 코드로 작성한 게임 로직을 연결하고, 실행 결과를 확인할 수 있다. 자산의 핫 리로드와 플러그인 업데이트는 게임 실행과 콘텐츠 변경 사이의 반복 시간을 줄이는 기능으로 소개됐다.[2]
프로젝트의 핵심 구현은 C#과 .NET으로 이루어지며 그래픽스 백엔드에 OpenTK와 OpenGL을 이용한다. 원본의 전체 편집기 빌드 절차는 Windows 중심이며, 다른 운영체제에서는 일부 핵심 프로젝트만 빌드할 수 있도록 안내되었다. 따라서 크로스 플랫폼 코드라는 특징과 모든 편집 기능의 다중 운영체제 지원 여부를 구별해야 한다.
공식 GitHub 저장소는 2025년 7월 보관 처리되어 현재 읽기 전용이다. 유지보수진은 프로젝트 개발이 무기한 중단되었고 패키지 관리자의 오래된 NuGet 연동이 더 이상 정상 작동하지 않는다고 설명한다. 공개 소스와 이전 릴리스는 참고할 수 있지만 신규 프로젝트에 적용할 때에는 외부 의존성 및 빌드 환경을 확인해야 한다.[3]