이 페이지에 없는 질문이 있으면 지원 문의 페이지의 연락처 정보를 사용하여 문의하세요.
이 페이지는 자주 묻는 질문이 접수되는 대로 업데이트될 수 있습니다.
일반
이 섹션에는 특정 카테고리에 속하지 않는 질문이 포함되어 있습니다.
YouTube 환경에서 게임을 테스트할 수 있나요?
예. 개발자 포털을 사용하고 테스트 안내를 따르세요.
Android 또는 SDK 테스트 모음에서 게임이 렌더링되지 않습니다. 어떻게 해야 하나요?
게임이 Android 또는 SDK 테스트 모음에서만 렌더링되지 않는 경우 WebView에서 게임이 로드되는 방식이 원인인 경우가 많습니다. 성능상의 이유로 게임은 처음에 사용자에게 표시되지 않는 WebView에 로드되므로 WebView 뷰포트 크기가 0이 됩니다. 이 문제를 해결하려면 다음 해결 방법을 사용하는 것이 좋습니다.
(1) 뷰포트 크기와 관계없이 게임 코드가 실행되는지 확인합니다.
(2) 게임 코드가 뷰포트 크기 조정을 처리하고 뷰포트 크기가 0일 때 게임 코드가 대기하거나 실패하지 않는지 확인합니다.
window 이벤트 resize를 수신 대기하고 window.innerHeight가 0이 아닌 경우에만 게임의 높이를 설정하는 것이 좋습니다.
기술 요구사항
이 섹션에는 YouTube 게임 룸 기술 요구사항과 관련된 질문이 포함되어 있습니다.
개별 파일 크기 제한에 대한 예외를 받을 수 있나요?
아니요. 개별 파일 크기는 엄격한 제한입니다.
초기 번들 크기는 어떻게 측정되나요?
초기 번들 크기는 Playable에서 gameReady 이벤트가 호출될 때까지 다운로드한 총 바이트 수로 측정됩니다.
Playables는 가능한 경우 HTTP 압축을 사용합니다. 즉, 초기 번들 크기가 애셋의 총 원시 크기보다 작을 수 있습니다. SDK 테스트 모음에서 초기 번들 크기를 테스트할 때 로컬 호스트가 애셋을 압축하지 않으면 Playable이 게시된 후의 크기보다 더 큰 크기가 될 수 있습니다. Playable에 제공되는 실제 초기 번들 크기를 확인하려면 SDK 테스트 모음을 사용하여 업로드된 빌드의 index.html 파일을 가리키거나 로컬 서버 설정을 수정하여 gzip 압축을 사용 설정하세요.
개별 파일 또는 총 번들 크기 제한에 도달했거나 초과했습니다. 어떻게 해야 하나요?
게임을 최적화하고 성능을 개선하려면 다음 도움말을 참고하세요.
총 번들 크기 제한을 초과하면 어떻게 되나요?
사용자는 게임을 플레이할 때마다 게임에서 애셋을 다운로드해야 할 수 있습니다. 로드 시간이 길어지고 데이터 사용량이 많아지는 것을 방지하려면 게임의 총 번들 크기를 최대한 작게 유지하는 것이 좋습니다.
사용자가 진행함에 따라 각 플레이 세션 중에 지연 로드 또는 기타 유형의 증분 애셋 로드를 활용하거나, 긴 세션 동안 소량으로 분산된 애셋을 다운로드할 수 있도록 레벨별로 애셋을 분할하는 것이 좋습니다. 이러한 상황에서는 총 번들 크기가 커도 사용자 환경이 저하되지 않을 수 있으며, 실제로 사용자당 공간이 더 작은 게임에서 더 많은 콘텐츠를 사용 설정하여 더 나은 사용자 환경을 만들 수 있습니다. 게임이 이러한 방식으로 작동하고 총 번들 크기가 더 커도 된다고 생각되면 지원 문의 페이지를 사용하여 사용 사례를 논의하세요.
내부 분석을 외부 호출 요구사항에서 제외할 수 있나요?
아니요. Playables는 현재 외부 호출을 해서는 안 됩니다. 이 분야의 향후 기능에 우선순위를 지정할 수 있도록 관심 있는 분석 유형을 파트너 관리자에게 알리세요.
게임이 원격 데이터베이스에서 데이터와 레벨을 가져옵니다. 허용되나요?
현재는 아니지만 일부 타이틀로 원격 데이터 액세스를 시험 운영하고 있습니다. 현재 모든 게임 데이터는 게임 번들의 일부로 포함되어야 합니다. 게임 애셋 또는 콘텐츠를 업데이트하거나 새로고침하려면 지원 문의 페이지의 연락처 정보를 사용하여 새로고침된 게임 번들을 제출하거나 파일럿 프로그램에 참여하고 싶다면 추가 문의하세요.
인라인 스크립트 실행을 위한 '콘텐츠 보안 정책' 위반에 관한 오류가 표시됩니다.
이 문제는 JavaScript를 사용하여 <script> 태그를 만들고
페이지에 추가할 때 발생합니다. 보안을 위해 YouTube는 스크립트에 'nonce'라는 특수 보안 코드가 있어야 하는 콘텐츠 보안 정책 (CSP)을 사용합니다. YouTube는 이 코드를 HTML 파일의 스크립트에 자동으로 추가하지만 코드에서 만든 스크립트에는 수동으로 추가해야 합니다.
JavaScript를 사용하여 프로그래매틱 방식으로 스크립트 태그를 생성할 때는 페이지에서 nonce를 찾아 새 스크립트 요소에 적용해야 합니다.
예:
const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);
테스트 모음 안내에 지정된 가이드라인을 사용하여 오프라인 구성을 테스트할 수 있습니다.
SDK 통합
이 섹션에는 Playables SDK API와 관련된 질문이 포함되어 있습니다.
오디오 통합 문제로 인해 인증에 실패했습니다. 무엇을 수정해야 하나요?
가장 일반적인 오디오 문제는 재생을 시작하기 전에 사용자 상호작용을 기대하는 게임과 관련이 있습니다. 그러나 YouTube 게임 룸에 자동으로 포커스가 지정될 수 있으므로 게임에서 이 사례를 처리해야 합니다.
오디오 설정 예시는 샘플을 참고하세요.
Unity
이 섹션에는 기존 Unity 게임을 YouTube 게임 룸 SDK와 통합하는 것과 관련된 질문이 포함되어 있습니다. SDK 및 Unity 래퍼를 사용하는 방법의 예시는 YouTube 게임 룸 Unity 래퍼 문서를 참고하세요.
Unity 사전 압축을 사용할 수 있나요?
애셋을 사전 압축하지 않는 것이 좋습니다. 초기 번들 크기 요구사항은 압축 후 크기를 사용하며 업로드된 파일은 수집 후 압축이 적용됩니다. 파일을 사전 압축해야 하는 경우 이 섹션의 나머지 부분을 참고하거나 지원 문의 페이지에서 지원팀에 문의하여 게임에 가장 적합한 옵션을 논의하세요.
일부 게임에서는 Unity의 .wasm 또는 .data 파일에 사전 압축을 사용해야 합니다.
다음 조건에서만 사전 압축을 사용하세요. 사전 압축을 사용하면 로드 시간이 훨씬 느려질 수 있습니다.
- 개별 파일 크기 또는 총 번들 크기 요구사항을 충족하기 위해 Unity 사전 압축을 사용해야 하는 경우 "개별 파일 또는 총 번들 크기 제한에 도달했거나 초과했습니다. 어떻게 해야 하나요?"를 참고하세요.
- 게임이 인증을 통과하기 위해 Unity 사전 압축을 사용해야 하는 경우 다음 요구사항을 충족해야 합니다.
- zip 사전 압축을 사용해야 합니다.
- 로더 스크립트 내에서 파일을 수동으로 압축 해제해야 합니다. 압축 스트림 API를 사용하는 것이 좋습니다.
이러한 추가 요구사항은 제공 아키텍처의 제한사항에서 비롯됩니다. 현재 추가 HTTP 헤더 또는 Brotli 압축은 지원되지 않습니다.
게임이 백그라운드에서 실행될 때 프레임 업데이트를 어떻게 관리할 수 있나요?
게임이 백그라운드에 있을 때 setTimeout을 사용하여 프레임 업데이트를 관리할 수 있습니다.
이렇게 하면 오디오 일시중지와 같은 동작을 제어할 수 있습니다. 플레이어 설정에서 '백그라운드에서 실행' 옵션을 사용 설정하여 백그라운드 프레임 관리를 확인할 수 있습니다.
Unity 게임의 메모리 제한
Unity의 일부 게임은 상당한 양의 메모리를 사용하므로 Playables의 메모리 사용량 제한을 초과할 수 있습니다. Unity WebGL의 메모리에 관한 개발 문서를 따르는 것이 좋습니다.