본문 바로가기
Unity/Unity Optimization

유니티 모바일 게임 최적화 기법 -서론-

by mati-as 2023. 8. 28.
반응형

개요

얼마 전 개인적으로 진행하는 프로젝트에서 저 사양을 컴퓨터를 타깃으로 제작하던 중, 한정된 예산으로 인하여 점점 타깃 하드웨어 성능이 내려가게 되었습니다. 이참에 최적화가 어느 정도 많이 들어가는 모바일로 타깃을 정해버리기로 하였고요. 이에 유니티 공식 자료나, 여러 글을 참고해 봤습니다.

 

사실 모바일이라고 크게 다를 것 없고, 몇 가지만 더 주의하면 되겠거니 싶었는데 정 반대더군요. 즉 모바일게임을 만들려면 생각보다, 최적화가 속된 말로 힘들게 들어가야 한다는 것을 알게 되었습니다.

 

힘들게 최적화를 해야 한다는 의미는 말 그대로 최적화를 해야 할 영역이 한 두 곳이 아니라는 말입니다. 이전에 최적화 관련해서 이야기를 나누다가, " 텍스쳐만 고해상도가 아니면 된다" "메쉬의 폴리곤 수를 줄이면 된다" 등 느리면 반자동적으로 아티스트 탓을 하게 되는 경우를 종종 봤습니다. 이 덕분에 공식자료를 보기 전 까지는 최적화는 단순히 이런 영역인 줄 알았습니다.

 

물론 이런 경우의 빈도가 많은 편인 건 사실입니다. 근데  꼭 그 지점이 느려지는 원인(병목지점)은 아니거든요. 그래서 철저하게 프로파일링으로 측정한 다음, 원인을 정량적으로 정확히 파악하고 해당 부분 최적화에 들어가야 합니다. 쉽게 말해 맹목적으로 최적화하면 안 된다는 겁니다.

 

또한 이번 포스팅은 본격적인 세부적인 최적화 항목에 앞서, 최적화에 관해서 처음 접하시는 분들을 위해 작성되었습니다. 그래서 너무 디테일한 이야기는 빼고 큰 카테고리별로 작성하였습니다. 최적화를 언제 해야 되는지, 그리고 앞으로 포스팅할 최적화 내용에 간략한 목차만 먼저 쓰고 마무리해볼게요

 

최적화를 언제 하나?

사실 정답은 없습니다. 다만 맨 처음 프로토타이핑 (게임의 전반적인 느낌과 구성을 보기 위해 만들어보는 목업) 작업부터 할 필요는 없습니다. 실제 프로젝트에 사용하게 될지도 미정일 테고, 최적화가 프로토타이핑의 목적이랑 아무런 상관이 없기 때문입니다.  그러나 맨 마지막에 최적화를 시작하면 반드시 망합니다.. 왜냐면 최적화를 위해 특정 요소가 바뀌면 다른 요소도 전반적으로 다듬는 과정이 들어가는데, 이 부분이 만만치 않기 때문이지요. 즉 최적화는 실제 프로젝트 시작할 때부터 틈틈이 해줘야 합니다. 새로 텍스쳐나 머터리얼이 들어올 때는 물론, 뒤에도 나오겠지만 각종 UI를 구성하거나 게임로직을 구성할 때도 어떻게 최적화를 들어가야 할지 틈틈이 점검해줘야 합니다.

 

결론적으로, 시작할 때부터 최적화하는 것은 사실상 의미가 없고, 초중반부터 틈틈이 계속 최적화를 해주어야 합니다. 맨 마지막에 하면 망하고요..

 

 

목차

아래에 목차를 나열해 놓았습니다. 목차부터 장난이 아니죠..? 이 정도가 유니티에서 공식적으로 권유하는 최적화 요소들입니다. 이외에도 최적화 요소가 몇 개 더 있는데, 아래 목차에서 굵직한 요소는 다 커버한다고 합니다. 포스팅 별로 잘게 쪼개지 않고, 최대한 관련주제와 묶어서 포스팅해보겠습니다.

 

   1. 최적화를 위한 분석 및 설정

    • 프로파일링
    • 테스트 주의사항
    • 디바이스 시뮬레이터
  1. 최적화 카테고리
    • 메모리
    • 어댑티브 퍼포먼스 (Adaptive Performance)
    • 코드 작성 단계에서의 주의점
    • 프로젝트 세팅
    • 물리
      • 물리 연산 매트릭스 설정
      • 물리 디버그 (Physics debug)
    • 콜라이더 설정
    • 텍스쳐
    • 애니메이션
  2. 그래픽스 최적화
    • 라이팅
    • 오클루 전컬링
    • 해상도
    • 카메라
    • 쉐이더
    • 오버드로우
    • 포스트 프로세싱
    • Render.Material 와 Renderer.SharedMaterial
    • 리플렉션 프로브
  3. 기타
    • UI
    • Audio

 

반응형