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]

역사

엔진 아키텍처

개발 언어와 스크립팅

렌더링과 그래픽스

장면·월드와 게임 객체

물리·입력·오디오

개발 도구와 자산 처리

지원 플랫폼과 실행 환경

라이선스와 소스 공개

활용 사례와 주요 게임

관련 문서

  1. Duality 프로젝트 소개 ↩
  2. Duality 엔진 및 편집기 기능 ↩
  3. Duality 개발 상태 및 소스 ↩