Show GN: Asdf Overlay - Rust로 작성된 고성능 인게임 오버레이 라이브러리
(github.com/storycraft)게임 창 위에 띄울 수 있는 오버레이 소프트웨어를 쉽게 작성할 수 있도록 도와주는 라이브러리 입니다. Rust로 작성되었지만 Node.js 바인딩 및 Electron 용 패키지도 제공하고 있습니다.
최근에 1.0 릴리즈를 하게 되어 올려봅니다.
인게임 오버레이가 무엇인가요?
게임 화면 위에 상호작용 가능한 UI를 띄우거나 각종 편의기능을 제공, 표시하는 프로그램을 말합니다. 아래 대표적인 프로그램중 하나를 통해 한번쯤 써보셨을 거라 생각합니다.
- Nvidia Overlay - 성능 표시 및 화면 녹화 기능
- MSI Afterburner - GPU 및 시스템 자원 사용량 표시 기능
- Discord - 보이스챗 오버레이 기능
- Steam - 스팀 알림 표시 및 채팅, 브라우저 기능
필요성
오버레이는 대상 프로세스에 코드를 삽입하여 렌더링 과정과 입력에 필요한 함수들을 후킹, 렌더링 마지막 과정에서 오버레이를 덧그리는 식으로 이루어집니다. 안정적으로 작동하는 프로그램의 제작이 쉽지 않지만, 오픈소스로 공개된 라이브러리도 거의 없는 편입니다.
Asdf Overlay는 오버레이 표시에 필요한 다양한 기능들을 제공하고, IPC 구현체를 통해 외부 프로세스에서도 쉽게 조작 가능하도록 해줍니다.
특징 및 기능
Asdf Overlay 라이브러리는 다음과 같은 기능을 지원합니다.
- DirectX9, 11, 12, OpenGL, Vulkan 그래픽 API 지원 및 자동 감지
- 창 입력 캡처 및 가로채기
- 기본적인 오버레이 레이아웃 기능
- CPU 오버헤드 없는 오버레이 렌더링
Electron를 통해 오버레이를 쉽게 제작할수 있도록 이에 대한 예제와 가이드 문서를 같이 제공하고 있습니다.