도드넷
유니티 로딩 - 모바일 게임 로딩시간에 대하여. 본문
유니티 로딩, 모바일 게임 로딩시간에 대하여.
안드로이드 모바일 게임 로딩
1. 로딩 시간 제한.
- 플레이어가 메인화면에 도달하기 까지 걸리는 평균 시간으로 반드시 30초를 초과해서는 안된다.
(최저사양 기기 기준)
2. 반드시 로딩진행바, 로딩아이콘, 로딩UI를 만들어야한다.
- 유저 입장에서 로딩이 진행되고 있고 얼마나 진행됬는지 알게하는것이 중요하다.
- 플레이어들은 대게 참을성이 없다.
3. 유니티 로딩시간을 증가시키는 원인.
- 매우 많은 레퍼런스와 게임 오브젝트.
- 얼마나 많은 애셋과 게임 오브젝트가 서로 연결(레퍼런싱)되어 있는지 고려해보자.
또 수 많은 오브젝트들이 시작시 어떤 함수 (OnEnable, Start, Awake) 를 사용하고있는지도 잘 생각해야한다.
4. 로딩 시간은 모바일 기기의 성능에 따라 크게 달라질 수 있다.
5. LoadSceneAsnyc를 통해 백그라운드 로딩으로 로딩UI를 표시하면서 씬을 로드할 수 있다.
(씬 로드만 백그라운드고 나머지는 메인 쓰레드를 이용하므로 보틀넥/클로깅(느려짐)은 어쩔 수 없다.)
6. 빌드시 다음과 같은 설정을 사용한다.
Mono -> IL2CPP
Development Build -> OFF
IL2CPP 는 퍼포먼스 향상, 보안에도 좋으니 반드시 출시할때는 유니티 IL2CPP를 사용해야한다.
단, 리-코딩 기법이므로 어쩔수없이 [빌드] 시간이 증가할 수 있다. (약 50% 정도?)
Development Build 는 테스트용으로 각종 정보를 전송하고 받는과정등이 포함되어 있으므로 궁극적인 포퍼먼스 테스트시 해제하고 플레이어와 같은 환경에서 테스트하면 좋다.
좀 다른 이야기인데 보안 관련해서 유니티 IL2CPP 이야기가 나와서 추가로 메모/써보자면...
[모바일 앱 게임 보안] 관련해서 IL2CPP와 함께 엔진코드 벗기기?(Strip Engine Code)를 고 레벨로
진행하는것을 추천한다.
불필요한 분석정보나 Unsafe 코드 역시 비허용한다.
유니티 모바일 게임 출시시 해적질 (Piracy)를 매우 경계해야한다.
해킹에 의한 치트버전 APK가 떠돌아 다니거나 어이없지만 앱을 그대로 복제해서 업로드하는 경우도 분명히 있으므로
구글 플레이 콘솔과도 긴밀한 관계(?)를 맺고 빌드시 위의 옵션들을 사용하므로써 신중을 기해야한다.
이외에 게임내 스크립트를 통해 앱고유정보/구글플레이정보를 비교해서 무한로딩/강제종료를 거는등으로
해커들을 엿먹이는 보안 수단을 게임내에 매장해놓는것도 좋은 방법이다. (보안 지뢰)
'창고 > 게임 개발 [Hidden]' 카테고리의 다른 글
유니티 투사체 Raycast(레이케스트) 총알 스크립트 만드는법! + 보너스 transform.LookAt (0) | 2022.08.10 |
---|---|
C# 리스트 List RemoveRange 예제/예시 - 일정 구간 지우기. (0) | 2022.08.03 |
유니티 구글 광고, 구글 애드몹 API 설치하기. (유니티 광고 VS 구글 애드몹) (0) | 2022.07.13 |
유니티 구글 플레이 API 설치법 - Unity Googleplay API 설치및 업데이트. 로그인 기능 추가하기. (0) | 2022.07.13 |
유니티 destroy 게임 오브젝트 삭제 vs SetActive(false) 오브젝트 풀링. (0) | 2022.07.04 |