전문가 : 안녕하세요. 오지현입니다. 요즘 커피숍이나 지하철 등에서 스마트폰이나 태블릿과 같은 모바일 기기로 게임을 즐기는 사람들의 모습을 쉽게 찾아볼 수 있죠? 이처럼 많은 이들의 사랑을 받고 있는 모바일 게임은 PC 게임보다 리소스를 만들 때 더 주의를 기울여야 하는데요, 모바일 기기는 게임 작동 하드웨어로서 많은 한계를 가지고 있기 때문이죠. 그래서 이번 시간에는 스마트폰이나 태블릿 등 모바일 기기에서 작동하는 게임의 최적화에 대한 내용을 다뤄보려고 합니다.
개발자 : 안녕하세요. 요즘은 많은 사람들이 모바일 기기로 게임을 즐기잖아요, 그래서 많은 게임들이 모바일용으로 제작되고 있고요. 그런데 확실히 PC용으로 게임을 개발했을 때보다 리소스 제작이 더 까다로운 것 같은데, 그 이유가 무엇인지 명확히 알고 싶습니다.
전문가 : 그 이유를 찾기 위해서는 먼저 모바일 기기의 특징을 이해해야 합니다. 기술이 발전하고 시간이 지남에 따라 그래픽카드의 성능 역시 계속 발전해왔는데요. 그 덕에 보시는 것처럼 더욱 놀랍고 사실적인 그래픽을 표현할 수 있게 되었습니다. 그 결과 현대의 PC나 콘솔 게임의 그래픽은 현실과 그래픽을 분간하기가 어려운 정도에 이르게 되었죠. 이처럼 그래픽 카드는 얼마나 더 멋진 그래픽을 얼마나 더 고속으로 처리할 수 있는 지가 가장 큰 이슈였고, 이것에 초점을 맞추어서 발전해왔습니다.
그럼, 모바일 기기의 그래픽 장치는 어떨까요? 모바일기기는 항상 전원이 연결되어있는 상황이 아니기 때문에 전력 소모를 최소화해야 합니다. 또한 휴대하기 편하게 만들어야 하기 때문에 칩셋의 크기는 작아야 하죠. 또한 물리적으로 작게 만들려면 쿨러도 사용할 수 없기 때문에 발열 문제도 고려해야 합니다. 이러한 모바일 기기의 특징들 때문에 모바일의 하드웨어 성능은 PC에 비해서 매우 조악합니다. 이는 최적화하기가 더 까다롭고 주의해야 할 점이 더 많다는 것을 의미하죠.
개발자 : 그럼 모바일 기기에서 작동하는 게임의 리소스를 만들 때는 구체적으로 어떤 점에 유의해야 할까요?
전문가 : 모바일의 저전력 프로세서들은 성능이 낮기 때문에 오브젝트의 폴리곤을 적게 사용해야 하는데요, 그럼 여기서 폴리곤이 무엇인지부터 알아볼까요? 컴퓨터에 그림을 그리려면 최소 단위로 점이 필요합니다. 이 점이 모이면 선이 되고, 이 선이 세 개가 모이면 삼각형이 되죠. 그리고, 이러한 삼각형들이 모이면 오브젝트의 형태를 보여주는 메시가 됩니다. 이 때, 메시를 구성하는 삼각형이 바로 폴리곤입니다.
사실, 폴리곤이란 단어 자체는 삼각형 뿐만 아니라 사각형, 오각형 등의 다각형을 모두 포함하는 의미를 가지는데요. 사각형은 삼각형 두 개, 오각형은 삼각형 세 개로 만들어집니다. 이처럼 다각형의 최소 단위가 삼각형이기 때문에 게임 렌더링에서 말하는 폴리곤은 삼각형을 의미하죠.
그런데 이러한 폴리곤이 많으면 오브젝트의 메시를 그리는데 시간이 오래 걸리게 되고, 또 이 폴리곤들을 처리하는 성능은 하드웨어 마다 차이가 심합니다. PC나 콘솔 게임의 경우에는 성능이 충분히 받쳐주기 때문에 경우에 따라서는 캐릭터의 폴리곤이 수십만 개가 사용되기도 하죠. 하지만, 모바일에서는 캐릭터의 폴리곤이 많아야 1만 개 정도입니다. 또한 모바일 기기들 간에도 성능이 천차만별이기 때문에 타겟 기기를 먼저 결정하는 것이 중요합니다. 타겟 기기에 따라 사양이 좋은 기기에서는 폴리곤을 1만 개 정도 사용할 수도 있고, 저사양 보급형 기기에선 폴리곤을 1천 개 정도만 사용할 수도 있는 것이죠.
개발자 : 앞서 살펴본 모바일 기기의 특징 중에 전력 소모의 최소화는 꼭 고려해야 할 점이라는 생각이 드는데요. 그렇다면 전력사용을 최소화하기 위해서는 게임을 어떻게 설계해야 할까요?
전문가 : 전력사용을 최소화하도록 설계하려면, 대역폭도 그만큼 적게 사용해야 합니다. 대역폭이라는 것은 한마디로 말해서 메모리에서 처리장치로 한번에 보낼 수 있는 데이터 크기를 의미합니다. 그래픽 처리 장치인 GPU에서 렌더링을 하려면 메모리에서 데이터들을 가져와서 처리해야 하는데, 대역폭이 적으면 큰 데이터를 가져오는데 시간이 오래 걸리게 되는 것이죠. 이러한 데이터 중 대표적인 것이 바로 텍스쳐입니다.
텍스쳐라는 것은 메시 표면의 생김새나 기타 정보를 담는 이미지를 뜻하는데요. 이미지이다 보니 메모리에서 많은 공간을 차지하겠죠? 이러한 텍스쳐는 원본의 품질을 조금 희생하더라도 압축을 하면 메모리 공간을 절약할 수 있습니다. 이러한 압축 방식들은 하드웨어에서 지원해주기 때문에 압축 해제가 매우 고속으로 이루어지는데요. 안드로이드에서는 대표적으로 ETC라는 포맷을 이용하고, 아이폰에서는 PVRTC라는 포맷이 지원되고 있습니다.
그리고 텍스쳐를 이러한 포맷으로 지원해주는 기능은 대부분의 게임 엔진이 처리해주고 있죠. 또한 텍스쳐는 물리적인 가로, 세로 크기가 중요한데요, 보급형 모바일 기기에서는 텍스쳐의 사이즈를 1024까지만 사용해야 성능에 문제가 없지만, 고사양 기기들에서는 2048까지도 사용하기도 합니다. 여기서 텍스쳐의 사이즈는 512, 1024, 2048 등 2의 거듭제곱인 수가 되어야 하죠.
기본적으로 기기가 연산을 수행하면 열이 발생합니다. 에너지 보존 법칙에 의거하여 에너지가 사용되면 그 에너지가 사라지는 것이 아니라 그 만큼의 열로 바뀌어버리는 것이죠. 쓰로틀링 기능은 발열이 심해져서 온도가 일정 이상 높아지면 자동적으로 프로세서의 연산 성능을 낮춰서 열을 식히는 것인데요. PC나 콘솔같은 경우 쿨러가 장착되어 있어 쓰로틀링 상태에 진입할 일이 거의 없지만, 모바일 기기는 그렇지 않기 때문에 쓰로틀링 상태로 진입하는 상황이 빈번합니다.
이러한 스로틀링 상태가 되면 당연히 연산 속도가 느려지게 되고, 연산 속도가 느려짐에 따라 한 프레임을 랜더링 하는 시간도 늘어나게 됩니다. 결과적으로 FPS(에프피에스)가 떨어지게 되는 것이죠. 때문에 모바일에서는 쓰로틀링 상태가 되지 않도록 게임을 최적화 시키는 것이 중요합니다. 물론, 스로틀링 상태로 진입하는 것을 아예 막을 수는 없겠지만, 그 상황을 최소화 시키도록 해야 한다는 것이죠.
성능이 충분히 나오고 있음에도 불구하고 발열을 막기 위해 40 FPS(에프피에스)로 강제 고정시켜 프로세서가 잠시 쉬는 시간을 주는 것을 그 예로 들 수 있습니다. 지금까지 모바일 게임을 위한 리소스를 제작할 때에 신경써야 할 것들 중 가장 큰 영향을 미치는 폴리곤, 텍스쳐, 쓰로틀링에 대해 살펴보았습니다. 이번 시간에 설명드린 내용을 통해 모바일 기기의 특징을 잘 이해하고, 모바일 기기에 최적화된 게임을 개발을 하는데 도움이 되셨으면 좋겠습니다. 수고하셨습니다.
01. 이 강좌에 대해서
모바일 게임은 PC 게임보다 리소스를 만들 때 더 주의를 기울여야 합니다. 이는 모바일 기기가 게임 작동 하드웨어로서 많은 한계를 가지고 있기 때문입니다. 따라서 스마트폰이나 태블릿 등 모바일 기기에서 작동하는 모바일 게임의 최적화에 대한 내용을 구체적으로 다루어보고자 합니다.
02. 강사 소개
오지현 (유니티 코리아 엔지니어)
03. 강사 이력
- 유니티 테크놀로지스 코리아 필드엔지니어 - 경력 : ㈜나코인터렉티브_게임 클라이언트 프로그래머, ㈜아스텔_ DVR 장비 S/W 개발, ㈜마이에트엔터테인먼트_게임 엔진 개발, 유니티 테크놀로지스 코리아_필드엔지니어