ChromeOS 기기의 가장 분명한 장점 중 하나는 크고 아름다운 화면과 외부 모니터를 쉽게 사용할 수 있다는 점입니다. 화면 공간이 넓으면 게임에 많은 가능성이 있지만 이를 잘 활용하려면 추가적인 고민과 디자인 작업이 필요할 수 있습니다.
방향 및 구성 변경
일부 모바일 앱은 소형 휴대전화용으로 특별히 설계되었으며 방향이 세로 모드로 잠겨 있습니다. 이렇게 하면 게임이 수신할 가능성이 있는 구성 변경사항의 수를 줄이고 필요한 다양한 레이아웃의 수를 줄여서 빠르게 이점을 얻을 수 있습니다. 하지만 이 선택에는 숨겨진 문제가 있을 수 있습니다. 방향 변경을 처리하지 않도록 선택하면 많은 앱이 창 크기 조절, 키보드 연결, 외부 디스플레이 등 다른 구성 변경에 대비하지 못하게 됩니다. 이로 인해 예기치 않은 비정상 종료와 다시 시작이 발생할 수 있습니다. 자세한 내용은 런타임 변경을 참고하세요. 이러한 변경사항은 휴대전화 기기에서도 발생하지만 폴더블 및 ChromeOS 기기에서 자주 발생하므로 잘 처리해야 합니다.
또한 가로 모드 화면이 있는 대형 화면 기기나 정사각형에 가까운 가로세로 비율의 폴더블에서는 세로 모드가 고정된 게임이 측면에 큰 검은색 막대가 표시된 상태로 나타납니다.
일부 다른 휴대전화 우선 게임에서는 앱을 가로 모드로 잠글 수 있습니다. 태블릿 또는 컨버터블 사용자는 기기를 가로 방향으로 들고 있어야 하므로 휴대전화보다 더 불편하게 느껴질 수 있으며 게임 환경이 저하될 수 있습니다. 대형 화면 태블릿과 컨버터블의 경우 게임에 세로 모드에서 충분한 공간이 있을 수 있습니다. 일부 사용자는 이러한 방향으로 기기를 잡는 것이 더 편안하여 게임과 더 오랫동안 상호작용할 수 있습니다.
게임의 범위와 성숙도에 따라 이 문제를 해결하는 방법이 다릅니다. 게임이 다양한 화면 크기에 동적으로 적응하여 큰 화면을 사용하는 사용자에게 향상된 몰입형 환경을 제공할 수 있다면 가장 좋습니다. 또 다른 방법은 통계, 지도, 채팅 창과 같은 유용한 정보로 빈 검은색 공간을 채우거나 검은색 대신 게임 관련 이미지를 배경으로 포함하여 주요 게임 플레이를 더 멋지게 프레임으로 지정하는 것입니다.
가능한 경우 화면 크기가 허용하는 방향으로 사용자가 앱을 사용할 수 있도록 허용하세요.
예 1

퍼즐 게임은 세로 모드 휴대전화용으로 설계된 성숙한 Android 게임입니다. 가로 모드의 대형 화면에서는 측면에 검은색 막대가 표시됩니다. 이 게임은 활성 사용자층이 많고 개발자는 다음 게임에 집중하고 있으므로 UI를 다시 작성하지 않고 게임을 프레임으로 지정하기 위해 각 레벨과 메뉴의 배경에 부드러운 초점 이미지를 추가하기로 했습니다. 개발자는 다음 게임을 위해 활발히 개발하고 있으므로 새 타이틀에 가로 모드 지원을 포함하고 있습니다.
예 2

모바일용으로 설계된 자동차 경주 게임은 휴대전화의 화면 공간을 최적화하기 위해 가로 모드로 잠겨 있습니다. 최근 태블릿 및 ChromeOS 사용자는 게임을 플레이하기 어렵다고 불만을 제기하며 세로 모드 지원을 요청했습니다. 개발자가 코드에 화면 크기 확인을 포함하고 화면이 충분히 큰 경우 세로 모드가 허용됩니다. 게임에 필요한 광각 뷰를 계속 허용하기 위해 콘텐츠는 화면 중앙에 배치되고 추가 자동차 스테레오 UI 막대가 화면 하단에 표시되어 사용자가 라디오 채널을 쉽게 변경할 수 있으며 지도와 레이스 통계가 화면 상단으로 이동하여 앞유리 뷰를 확보하고 게임 플레이를 개선합니다.
Android 대형 화면 가이드라인 및 Android 화면 크기 문서도 참고하세요.
멀티 윈도우 기능
게임은 사용자에게 몰입도 높은 전체 화면 환경을 제공하는 경우가 많습니다. 하지만 데스크톱이나 폴더블 기기를 사용하는 일부 사용자는 채팅, 음악 또는 동영상 스트리밍 서비스를 별도의 창에서 동시에 열어두고 표시하는 것을 선호합니다. 자신의 화면을 녹화하거나 공유하는 경우 추가 창을 열어 표시하는 것도 유용할 수 있습니다.
멀티 윈도우 기능은 Android 앱 및 게임의 기본 동작이며, ChromeOS 데스크톱뿐만 아니라 화면 분할 모드의 휴대전화 및 태블릿에도 적용됩니다. 게임의 크기 조정을 방지하려면 AndroidManifest.xml에서 크기 조정이 불가능하다고 선언하세요.
android:resizeableActivity="false"
게임의 크기를 조절할 수 있는 경우 몇 가지 중요한 고려사항이 있습니다.
- 창 크기가 조절되면 기본적으로 Android는 게임을 '소멸'하고 다시 '생성'합니다 (Android 수명 주기 참고). 게임은 이러한 재생성 중에 상태를 원활하게 추적하거나 (Jetpack ViewModel 문서 참고) 이러한 구성 변경을 수동으로 처리하고 재생성을 방지하여 게임 엔진이 새 화면 크기를 처리하도록 해야 합니다. 자세한 내용은 Game Developer Conference 2019의 이 동영상을 참고하세요.
- 앱이 표시되고
STARTED는 되지만RESUMED는 되지 않는 경우onPause를 올바르게 처리합니다. 멀티 윈도우 수명 주기를 참고하세요. - 크기가 조절된 창의 다양한 가로세로 비율 고려 (애셋 자르기 대 애셋 크기 조절)
창 관리에 대해 자세히 알아보세요.
전체 화면 모드
게임이 전체 화면 창에서 실행될 때 창 테두리와 기타 방해 요소가 되는 화면 요소를 삭제하기 위해 몰입형 모드로 설정할 수 있습니다. 자세한 내용은 Android 전체 화면 문서를 참고하세요.
private fun hideSystemUI() { // Enables regular immersive mode. window.decorView.systemUiVisibility = ( View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN) }