1. 초기화 및 상태 변화 이벤트 연동
게임에서 초기화 및 상태 변화 이벤트(foreground<->background)를 연동하는 방법을 안내합니다.
App 상태 변화 이벤트 정의
게임앱이 실행되어 종료될 동안 여러가지의 상태 변화가 발생할 수 있습니다. 게임앱의 실행 도중 홈버튼을 이용하여 앱이 백그라운드로 이동할 수 있고 다시 게임앱 아이콘을 탭하여 포그라운드로 이동할 수 있습니다. 카카오 게임 SDK는 게임앱의 상태 변화(실행, 백그라운드 이동, 포그라운드 이동)에 따라 내부적으로 몇가지 동작을 수행합니다. 백그라운드로 이동할때, 배터리 소모를 막기 위해 플랫폼 서버로 주기적으로 발송하는 Heartbeat을 중단하는 작업을 한다거나, 포그라운드로 올라올때, 인증 토큰이 계속 유효한지 검사하는 등의 작업을 수행합니다.
게임의 상태 변화를 처리하기 위해 호출해야 하는 카카오게임 SDK의 API는 다음과 같습니다.
게임앱의 상태 변화 | 카카오게임 SDK API |
---|---|
게임 실행 | Start |
백그라운드 이동 | Pause |
포그라운드 이동 | Resume |
게임 실행 (Start)
게임이 실행되면 SDK는 게임에 의해 호출되는 Start API를 통해 SDK 초기화 및 "Start" 상태 변화 동작을 수행합니다.
"Start"는 게임 클라이언트 버전을 비롯한 몇가지 설정 정보들에 기반하여 게임 실행에 필요한 기본적인 정보들을 서버로부터 전달받고 "긴급 공지", "점검 안내", "게임 클라이언트 업데이트 안내", "이용 약관 안내", "자동 로그인"의 동작을 순차적으로 수행합니다. 물론 이 중 "자동 로그인"은 이미 로그인을 한 기록이 있는 사용자에 한해 수행됩니다. 이 일련의 절차가 끝나면 Start API 호출 시 게임에서 입력한 콜백 함수를 통해 게임에 "Start"의 결과를 전달합니다. 이 때 전달되는 "Start"의 결과는 인증 여부와는 무관합니다. 즉, 자동로그인이 어떤 이유에 의해 실패했다 할지라도 그 이전에 수행된 일련의 과정들이 성공적으로 수행되었다면 성공을 전달하며 인증 여부에 대한 정보는 별도의 변수를 통해 함께 전달합니다. 따라서, 게임은 Start API의 결과로 전달된 결과가 실패였다면 게임을 실행할 수 없다는 상황으로 간주하여 Start API호출을 재시도하거나 혹은 게임을 종료시키는 동작을 수행해야 합니다. Start API의 결과가 성공이라면 함께 전달된 인증 여부 정보에 따라 게임의 메인 씬으로 이동할 지 로그인 씬으로 이동할 지를 결정할 수 있습니다.
백그라운드 이동 (Pause)
게임이 백그라운드로 이동하게 될 때 게임이 SDK의 Pause API 를 호출하여 "Pause" 상태 변화 동작을 수행합니다.
"Pause"는 플랫폼 서버와의 연결된 세션을 종료함으로써 네트워크 사용량을 최소화하며 배터리 소모를 방지합니다.
포그라운드 이동 (Resume)
백그라운드로 이동한 게임이 다시 포그라운드로 이동하게 될 때 게임이 SDK의 Resume API 를 호출하여 "Resume" 상태 변화 동작을 수행합니다.
"Resume"은 끊어진 세션 연결을 복원하고 인증 상태를 유지하기 위한 일련의 절차를 수행합니다. 만약 서버와의 연결에 실패했거나 인증 정보가 만료된 경우 "Resume"은 API 호출 시 전달된 콜백함수를 통해 게임에 실패를 전달하며, 에러 코드를 통해 전달되는 실패 원인에 따라 게임은 "Resume"을 재시도하거나 다시 인증을 수행할 수 있도록 로그인 씬으로 이동하는 동작을 수행해야 합니다.