Steamworks 문서
Steam 오버레이

개요

Steam 오버레이는 Steam에서 실행한 거의 모든 게임에서 활성화할 수 있는 Steam 사용자 인터페이스의 하나입니다. 사용자는 오버레이를 통해 친구 목록, 웹 브라우저, 채팅과 게임 내 DLC 구매 등의 기능을 사용할 수 있습니다.

사용자는 기본적으로 SHIFT+TAB 키를 눌러 게임 내에서 오버레이를 띄울 수 있으며 이 단축키는 Steam -> 설정에서 변경할 수 있습니다.

요구 사항

Steam으로 실행하는 게임은 자동적으로 오버레이와 연동되기 때문에 특별한 요구 사항은 없습니다. 개발 과정에서 게임을 디버거로 실행할 때는 SteamAPI_Init을 요청하여 오버레이를 불러올 수 있습니다. 그러려면 OpenGL/D3D 장치를 초기화하기 전에 먼저 SteamAPI_Init을 요청해야 하며, 그렇지 않을 경우 장치 생성과 연동되지 않습니다.

오버레이는 DirectX 7~12, OpenGL, Metal, Vulkan을 사용하는 게임을 지원합니다. 소프트웨어 래스터화(Rasterize) 게임에는 사용할 수 없습니다.
참고: 오버레이는 ‘소프트웨어’ 앱 유형에 자동으로 비활성화됩니다.

앱에서 오버레이 활성화하기

Steamworks API에는 게임 오버레이를 직접 작동시키는 함수가 있습니다.

오버레이에서 게임으로의 통신

오버레이에서의 사용자 동작으로 인해 Steam에서 게임으로 아래와 같은 신호(콜백)가 전송될 수 있습니다.
  • GameOverlayActivated_t
    오버레이가 활성화 또는 비활성화되었을 때 게시됩니다. 싱글 플레이어 게임을 일시 정지 또는 다시 시작할 때 사용할 수 있습니다.
  • GameServerChangeRequested_t
    사용자가 친구의 게임에 참여하기를 선택할 때 게시되며 접속하는 게임 서버에 대한 상세 정보를 담고 있습니다.
  • GameLobbyJoinRequested_t
    사용자가 친구의 게임에 참여하기를 선택할 때 게시되며 접속하는 로비에 대한 정보를 담고 있습니다.

자주 묻는 질문

참고: 고객 상담 지원 사이트에서 Steam 커뮤니티 오버레이 활성화 문제에 대한 추가 답변을 찾아볼 수 있습니다.

질문: Steam 오버레이를 실행하면 앱 충돌이 일어나는 이유가 무엇인가요?

답: Steam 오버레이는 이미 몇천 개의 게임에 사용되고 있으며 철저한 테스트 과정을 거쳤기 때문에 거의 충돌을 일으키지 않습니다. 오버레이는 실행 중인 게임에 삽입되기 때문에 렌더링 API 사용 시 메모리 누수 또는 메모리 오염을 발생시킬 수 있으나, 이것이 게임 플레이에 영향을 주기는 어렵습니다.

오버레이 충돌을 진단하려면 d3d 디버그 런타임을 모든 (정보/경고/에러/공지) 레벨의 스퓨를 켠 상태로 진행하여 D3D가 불량한 상태로 변한 이유를 찾아보세요. 고립된 d3d 리소스에서 문제가 발생한 것일 수도 있습니다. 이 방식으로 문제점을 찾지 못했다면 일반적인 메모리 오염 문제일 수도 있습니다. 게임을 종료할 때마다 문제가 발생한다면 종료 시 클린업을 진행하지 않는 게임의 종료 명령 문제일 가능성이 높습니다.

디버깅 후에도 앱이 오버레이와 충돌을 일으킨다면 Steamworks Development Group에 문의해 주세요.

질문: 앱에 Steam 오버레이가 표시되지 않는 이유는 무엇인가요?

답: 먼저 위 요구 사항을 충족하는지 확인하세요. 요구 사항을 모두 충족하였으나 오버레이가 실행되지 않을 경우, Steam 클라이언트를 통해 앱을 실행했는지 확인하세요. 로비/빠른 시작 목록에서 바로, 혹은SteamAPI_RestartAppIfNecessary를 호출하여 확인할 수 있습니다.