본문 바로가기

1인 개발 이야기/유니티 관련 이야기

유니티 디버깅 - 프레임 디버거 (Frame Debugger)

안녕하세요~ 1인 인디게임 개발자 승선씨입니다.

게임 퍼포먼스 향상을 위한 유니티 프레임 디버거 기능에 대해 알아보겠습니다. 

 

1. 프레임 디버거는 실행중인 게임에서 개별적으로 드로우 콜을 나눠서 볼 수 있는 기능입니다. 

 

현재 제가 만들고 있는 게임으로 예시를 들어보도록 하겠습니다. 

 

프레임 디버거 실행 후 드로우콜을 위에서 부터 아래로 내려가면서 확인하는 장면

위 사진에서 보면 가장 첫 드로우콜 부분을 선택하면 화면이 그려지는 순서대로 볼 수 있습니다. 

 

다은 드로우 콜을 내려보니 캐릭터가 그려지는 장면

위 사진에서 Draw Dynamic 드로우콜을 하나씩 내려갔을 경우 게임 화면이 그려지는 순서를 파악할 수 있습니다. 

 

특히 모바일 게임. 구글 플레이스토어나 iOS 앱스토어를 타겟으로 게임 제작을 하실 경우 이처럼 게임 퍼포먼스가 실기기에서 큰 영향을 미치게 됩니다. 

 

게임 화면에 프레임수를 표시하는 기능을 넣어서 퍼포먼스를 체크해 볼 수 있지만 프레임 디버거를 통해 더 디테일하고 정확한 정보를 얻을 수 있으니 만약 모르시는 분이 계셨다면 필수로 꼭 써보시길 바라겠습니다. 

 

개발 중간 중간에 수시로 드로우콜이 갑자기 상승한다던지 하는 이유로 게임이 끊기지 않게 수시로 확인해주어야 하고 이 부분이 습관화 되어 있다면 더 안정적인 게임 서비스가 가능할거라 확신합니다. 

 

 

2. 프레임 디버거 실행방법

 

메뉴 실행 화면

먼저 개발중인 게임을 실행(Play)을 시켜 진행중인 상태에서 

 

Unity > 상단 Menu > Window > Analysis > Frame Debugger 

를 순서대로 실행하시면 프레임 디버거 창이 나옵니다. 

 

 

프레임 디버거 창

프레임 디버거 창이 새로 뜨면 

Enable  버튼을 누르면 실행됩니다. 

 

프레임 디버거 실행중인 화면

프레임 디버거 창에서 RenderFoward 부분을 확인해보시면 화면에서 그려지는 캐릭터 혹은 오브젝트들의 랜더링 되는 부분을 보실 수 있겠습니다. 

 

게임 퍼포먼스 개선을 위해 가장 먼저 직관적으로 랜더링 되는 모습을 볼 수 있습니다. 

랜더링 횟수는 드로우콜 횟수라고 동일하게 생각해도 좋을 것 같으며 이 횟수를 줄이면 줄일수록 게임 퍼포먼스가 향상될 것입니다. 

 

그리고 Draw Daynamic 이라고 되어 있는 부분은 다이나믹 배칭이 되어 랜더링 되는 부분이 조금 더 최적화 되어있다고 보시면 될 것 같은데요. 

이 부분도 저 또한 최근에 알게 된 부분이여서 나중에 추가로 포스팅 해보도록 하겠습니다. 

 

모바일 게임을 제작하다보니 특히나 최적화, 퍼포먼스 부분을 놓치기 쉬운데 중간 중간 꼼꼼하게 체크하는 습관을 길러야 하겠습니다. 

 

게임 제작도 쉬운게 아니지만 특히 최적화는 더 어려운 분야 중 하나인 것 같습니다. (아직 게임 중반부인데 그리고 앞으로 추가해야 할 기능들이 많아보이는데 조금 걱정이 앞서긴 했습니다. ㅎㅎ)

 

그래도 지치지 말고 끝까지 잘 완주해서 새로운 게임으로 다시 찾아뵙는 그날까지 화이팅하겠습니다~!!

 

그럼 오늘도 화이팅입니다~!!