유니티(Unity) 게임 성능 확인 및 최적화에 대한 생각

개요

이전에 살펴보았던 고전 우주 슈팅 게임 최적화 작업 은 눈에 보이는 것 위주로 진행했습니다. 기본적으로 조치할 수 있는 사항들을 처리하고 프로파일러를 이용해서 병목현상이 없는지 확인합니다. 프로파일러를 가지고 분석하는 내용은 방대해서 이 글에서 다루지는 않습니다. 좋은 자료와 동영상이 많으니 그것을 참조하시면 될 것 같습니다.

이 글에서 프로파일러를 이용해서 성능관련한 문제를 확인하는 전체적인 관점에 대한 것을 정리해 보았습니다.

프로파일러를 이용한 최적화 대상 선정

프로파일러로 분석하고 게임을 느리게 만드는 지점이 어디인지 정확하게 판단한 후 최적화 진행해야 합니다. 이 작업 없이 ‘여기인 것 같다…’ 혹은 ‘여기가 아닐까?’ 와 같은 감으로 진행하게 되면 효과도 없고 시간만 소요하게 됩니다.

당연한 이야기이지만 개발 PC에서 프로파일링을 해 보고 문제를 개선 후 반드시 대상 기기(안드로이드, iOS …) 에서 확인해야 합니다. 실제 개선한 사항이 효과가 있는지 확인해 보고 계속 반복해서 최고의 성능을 뽑아내도록 해야 합니다.

CPU쪽인지 GPU쪽인지 범위를 좁혀서 접근해야 정확하게 문제를 해결할 수 있습니다. 어느 부분을 먼저 진행할 것인지 결정하는 부분은 Asset 수정이 동반되어야 한다면 충분한 논의를 거쳐야 할 것으로 생각됩니다. 물론 스크립트 부분의 수정도 쉽지 않지만 Asset 부분의 변화가 더 큰 노력과 시간이 소요됩니다. 이것은 프로그래밍을 주로 했던 필자의 생각입니다.

게임 성능 측정 및 최적화 시기에 대한 생각

여러가지 부분에서 최적화 작업을 진행해 보니 게임을 제작하는 개발자나 팀을 좀 더 깊이 이해하게 되었습니다. 여러가지 이유로 일정에 쫓겨서 간신히 기능만 구현하고 최적화할 여유가 없겠다는 생각이 들었습니다. 그렇다고 해도 최적화 작업을 꼭 해야하는 작업이라고 단언할 수 있습니다.

그렇다면 최적화나 성능 점검을 하는 시점은 언제가 적절한가에 대해 생각해 보게 되었습니다. 개발하는 게임의 규모와 상황에 따라 다르겠지만 필자의 생각으로는 세 가지 정도입니다.

1. 기획단계

아직 만들어지지 않은 게임을 기획하는데 성능 점검이 왜 필요할까요? 기획단계에서는 제작할 게임의 대상 기기(모바일, PC…)에서 원활하게 실행이 되는 기준점을 잡기 위함입니다. 어느 정도 수준으로 Asset을 준비해야 하는지 기준을 마련할 수 있습니다.

예를 들어 게임내에 무엇인가 오브젝트가 많이 나오는 중요한 장면이 있을 때 간략하게라도 만들어보고 대상 기기에서 원활하게 수행되는지 확인합니다. 그 결과를 가지고 오브젝트의 수를 조정하던가 정밀도를 낮추어서 조정하는 방법등으로 방향을 결정합니다. 이런 작업을 개발 막바지에 하게 된다면 그 동안 작업했던 많은 Asset을 다시 작업해야 하는 최악의 경우가 발생할 수 있습니다.

2. 중요한 단계나 많은 양이 작업되었을 때

개발 중간에 특정한 단계가 작업되거나(스테이지 구현 혹은 챕터 구현…) 많은 작업이 함께 이루어 지는 경우가 있습니다. 이럴때에도 대상 기기에서 원활하게 수행이 되는지 점검이 필요합니다. 이전까지 괜찮았는데 추가 작업 후 성능 하락이 있다면 이전 작업이 원인입니다. 확인해야 할 범위가 줄어들어 바로잡기가 더 쉬워 집니다.

향후 문제점이 될 요소를 피하고 시간을 많이 절약할 수 있습니다. 성능하락을 유발하는 항목이 쌓이게 되면 점점 확인과 해결이 어려워지게 됩니다. 미리 점검하고 확인하는 것이 좋습니다.

3. 출시 임박시점

중간 중간 성능 점검과 최적화를 수행했다면 출시가 임박해서 크게 문제될 확률은 낮습니다. 하지만 거의 모든 요소가 같이 뭉쳐져 있는 상황이니 이전에 생각하지 못했던 성능 하락이 있을 수 있습니다.

미리 성능 점검 및 최적화 작업을 진행해 두었다면 범위를 특정하기가 상대적으로 수월합니다. 문제가 되는 부분을 빨리 알아낼 수 있으므로 해결에 소요되는 시간이 많이 줄어듭니다.

마무리

게임의 성능을 측정하고 최적화 하는 작업은 매우 어렵고 지루한 작업이 될 수 있습니다. 어느 시점까지는 효과가 있지만 특정 시점부터 성능을 개선하기가 아주 어려울 수도 있습니다.

게이머의 입장에서 보면 원활하게 게임이 수행되어야 만족감이 높은 것은 당연한 이야기 입니다. 게이머들이 만족해야 힘들게 작업한 게임의 가치를 올릴 수 있고 더 많은 기회를 잡을 수 있다고 생각합니다. 성능 측정과 최적화 작업은 꼭 필요한 것이라고 다시 한번 강조하고 싶습니다.

게임의 규모와 관계없이 꼭 성능 측정과 최적화 기준을 마련하셔서 성공적인 게임개발이 되시기를 바랍니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Time limit is exhausted. Please reload the CAPTCHA.