E엔진

엔진

오브젝트 모델, 에셋 시스템, 라이프사이클, 그리고 이를 실행하는 플랫폼입니다. 나머지는 모두 추가하는 패키지입니다.

코어

엔진에는 기본 타입이 들어 있습니다. Deki::Object와 Deki::Component, 라이프사이클 매니저, 에셋 시스템, 그리고 플랫폼이 구현하는 프로바이더 인터페이스입니다. 렌더링, 스프라이트, 입력, 오디오, 네트워킹과 모든 주변 장치는 패키지에 있습니다.

가운데에 엔진 코어가 있고 그 주위를 패키지가 둘러싸고 있습니다. 각 패키지는 런타임에 로드되는 DLL입니다

태그 하나로 어디서나

Deki::Component를 상속하고 필드에 DEKI_EXPORT 태그를 붙입니다. 이 태그 하나로 인스펙터 위젯, 직렬화, 실행 취소, 에셋 참조 해석이 모두 처리됩니다. 따로 등록할 곳은 없습니다.

헤더에서 익스포트한 float 세 개와, 에디터 인스펙터에 슬라이더로 나타난 같은 세 값

핫 리로드

컴포넌트를 수정하고 에디터로 포커스를 옮기면, 에디터가 다시 빌드하고 DLL을 그 자리에서 교체합니다. 씬은 계속 실행됩니다.

소프트웨어 렌더러

QuadBlit 파이프라인 하나에 출력 포맷이 네 가지입니다. 더티 렉트 덕분에 패널의 부분 업데이트는 배터리 부담이 적습니다.

엔진이 320x240, RGB565로 렌더링한 프레임 세 장

DLL로 된 패키지

모든 패키지는 독립된 공유 라이브러리이며, 코어에 포함되지 않습니다. 렌더링도, 입력도, 오디오도 없이 라이프사이클만으로 배포할 수 있습니다.

플랫폼

플랫폼도 패키지입니다. 통합 패키지를 바꾸면 다른 타겟으로 옮겨 갈 수 있고, 헤드리스 서비스라면 디스플레이와 입력을 통째로 뺄 수 있습니다.

플랫폼상태설명
ESP32지원 중주력 타겟입니다. ESP-IDF로 빌드하므로 SDK가 지원하는 변형 칩은 모두 대상입니다. SD, 디스플레이, 터치를 포함하며, 에디터의 빌드 파이프라인이 하드웨어까지 이어집니다.
Windows 데스크톱지원 중창, 입력, 파일 시스템을 SDL3로 처리합니다. 에디터 자체도 이 위에서 돌아갑니다.
Linux 데스크톱실험적엔진과 에디터가 GCC 16으로 빌드되고 실행되며, Steam Deck에서 처음부터 끝까지 검증했습니다. 네이티브 파일 대화상자를 사용합니다.

하드웨어 FPU가 필요합니다. 트랜스폼, 트윈, 렌더링 모두 네이티브 float에 의존합니다. 소프트 플로트로도 동작하지만 훨씬 느립니다.

현재 상태

0.x이며, 이 숫자는 정직합니다. API는 아직 릴리스마다 바뀌고 보드도 계속 추가되고 있습니다. 엔진, 에디터, 모든 패키지는 Apache 2.0 오픈 소스로 github.com/orgs/dekiengine에 있으며, 에디터는 다운로드할 수 있습니다.

C++ API, 컴포넌트 레퍼런스, 각 패키지의 문서는 문서에 있습니다.