자주 묻는 질문 (FAQ)
SDK 관련
게임을 업데이트할 때마다 텐투플레이 SDK 쪽도 업데이트해 줘야 하나요?
늘 필요한 건 아닙니다. 그렇지만 게임 업데이트에 비즈니스 모델 변경이 있다면 텐투플레이 기술팀에 연락하여 지원을 받는 것이 좋습니다.
SDK 구현이 제대로 되었는지 검증하는 QA 프로세스 같은 것이 있나요?
데이터 수집과 업로드 구현에 대한 디버그 작업이 있습니다. 그리고 저희 텐투플레이 기술팀이 서버에 문제가 없는지 지속적으로 점검하고 있습니다.
데이터 수집 디버깅하기현재 TPStashEvent
클래스 일부 파라미터의 자료형(예: currency)이 float인데 입력 데이터가 float의 범위를 넘게 되면 어떻게 해야 하나요? 데이터 업로드 관련하여 한 메소드에 이처럼 잘못된 데이터가 들어가면 다른 메소드의 데이터도 영향을 받나요?
내장 형변환이 제대로 작동하는 상황이라면 형변환을 쓰면 됩니다. 다만 이 경우 오버플로우가 발생하므로 다음과 같이 추가적 데이터 처리를 해주어야 합니다.
-
float 범위: 1.40129846432481707e-45 ~ 3.40282346638528860e+38
-
double 범위: 1.7e-308 ~ 1.7e+308
여기서 값이 10^38을 넘어가는 순간 오버플로우가 발생하고 값이 무한대로 인식되어 오류가 발생합니다. 이런 경우 입력 값의 로그를 취하는 방법이 있습니다만 이 방법에는 콘솔에서 값이 로그의 형태로 나타난다는 단점이 있습니다.
두번째 질문에 대해서는 가령 GetCurrency
의 데이터 중 하나라도 데이터 타입 범위가 넘어가는 데이터가 있다면, GetCurrency
데이터는 텐투플레이 서버로 업로드 되지 않습니다. 하지만 다른 메소드(예: UseCurrency
)에는 영향이 없고 정상적으로 데이터가 업로드 됩니다.
설정에서 Auto Upload가 체크된 상태에서 플레이어가 다음 업로드 시간 도달 전에 앱을 닫아버렸다면 직전까지 수집된 데이터는 어떻게 되나요?
이런 경우 업로드 시간 전까지 수집된 데이터는 플레이어의 장치에 보관되어 있다가 다음에 게임을 플레이할 때 다시 업로드됩니다. 물론 이를 방지하기 위해 업로드 간격을 줄일 수는 있지만 그만큼 잦은 업로드로 인한 영향(예: 데이터 전송 시 오버헤드 증가)이 있을 수 있으므로 각각 장단점이 있습니다.
TPStashEvent 클래스는 얼마나 자주 호출해야 하나요?
TPStashEvent
클래스가 사용되는 방식은 다음과 같습니다. Auto Upload가 선택되어 있다고 가정하고 호출이 잦은 이벤트에 대해 는 상태에서 new TPStashEvent()
클래스를 활용하여 필요한 메소드를 호출하면 업로드 간격에 따라 업로드가 자동으로 이루어집니다. (예: 재화의 획득과 사용 시 수집 메소드를 각각 new TPStashEvent().GetCurrency()
, new TPStashEvent().UseCurrency()
로 호출하기). 만약 new TPStashEvent()
가 플레이 시작 시에만 호출된다면 플레이 도중 수집 데이터가 업로드되는 일은 일어나지 않습니다.
데이터 제대로 업로드되었는지 어떻게 확인할 수 있나요? 이를 위한 콜백이 있나요?
현재 그런 콜백 함수는 없습니다. 대신 업로드가 성공하면 텐투플레이 디버그 모드에서 "TPDebug||Upload successful"라는 메시지가 유니티 에디터나 Roblox Studio의 디버그 콘솔에 나타납니다.
업로드 실패시 수집된 데이터는 다음 게임 플레이시까지 플레이어의 장치에 남아 있습니다.
콘솔에서 SDK 상태를 보면 PlayerGetCharacter
이벤트가 Join
이벤트 후 항상 나타나는데 괜찮은건가요?
정상입니다. Join
직후 PlayerGetCharacter
가 자동 호출되도록 설계되었습니다.
문서에는 TPStashEvent.Join
이 사용자 등록에 쓰인다고 하는데 등록하려는 사용자가 이미 등록된 사용자인지 확인할 수 있는 방법이 있나요? (그래서 기등록 여부에 따라 Join
과 Login
을 모두 호출하거나 Login
만 호출하길 원함)
텐투플레이는 호출하는 모든 것을 그냥 업로드하므로 텐투플레이를 사용 중 특정 사용자가 이미 등록했는지 확인하기는 어렵습니다. 대다수의 게임에서 TPStashEvent.Join
은 최초 일회성으로 이루어지는 이벤트(예: 구글 사용자로 로그인)에 대해 호출됩니다.