게임 프로그래밍을 최적화하기 위한 툴과 지식, 기술뿐 아니라 어디에서 기인한 문제인지 원인을 발견하고 해결하는 것까지를 다룬다. 낮은 초당 프레임 수로 인한 화면 끊김, 입력 지연, 긴 로딩 시간, 그래픽 깨짐, 지나치게 많은 배터리 소모 모두 최적화와 관련이 있다.
성능 최적화란 CPU, GPU, RAM과 같은 자원이 적재적소에 분배되고 병목현상 없이 우선순위에 따라 작동하게 만드는 것이다. 이를 통해 하드웨어에서 더 많은 표현과 처리를 가능하게 하고 더 흥미롭고 다채로운 게임을 개발하게 해준다.
뚝뚝 끊기는 게임의 원인 분석부터 해결까지
유니티 개발자라면 알아야 할 성능 최적화 기법
게임을 개발하다 보면 때로는 적절한 타협이 필요하다. 제한된 자원과 시간으로 가장 빠르게, 효과적으로 최적화하는 길은 언제나 분명히 있다. 이 말인즉슨, 타협할 수 있는 '선'이 반드시 있다는 것이다. 적절한 선을 정하지 않으면 지극히 작고 알아채기조차 어려운 사소한 문제에 시간을 허비할 수 있다. 이 선을 결정하는 데 가장 좋은 질문은 "사용자가 이 문제를 인식할 수 있는가"다. 만약 이 질문에 대한 대답이 "아니요"라면 성능 개선은 필요가 없다. 문제가 될지 안 될지 알지 못한 채 문제가 될 거라는 의심만으로 코드를 수정하는 것은 한정된 개발 자원을 쓸데없이 낭비하는 것에 불과하다.
『최대 성능을 위한 유니티 5 게임 프로그래밍 최적화』는 프로그래밍을 최적화하기 위한 툴과 지식, 기술뿐 아니라 어디에서 기인한 문제인지 원인을 발견하고 해결하는 것까지를 다룬다. 낮은 초당 프레임 수(fps)로 인한 화면 끊김, 입력 지연, 긴 로딩 시간, 그래픽 깨짐, 지나치게 많은 배터리 소모 모두 최적화와 관련이 있다. 이러한 문제는 CPU, GPU, RAM과 같은 하드웨어뿐 아니라 물리 엔진을 비롯한 프로그램의 하부 시스템, 유니티 자체의 결함에 의해서도 발생할 수 있다. 성능 최적화란 CPU, GPU, RAM과 같은 자원이 적재적소에 분배되고 병목현상 없이 우선순위에 따라 작동하게 만드는 것이다. 최적화는 같은 하드웨어에서 더 많은 표현과 처리를 가능하게 할 뿐 아니라 더 흥미롭고 다채로운 게임을 개발하게 해준다. 게임 출시 이후 맞닥뜨리는 여러 문제를 개선하고 최적화하는 데 이 책은 분명 좋은 지침이 될 것이다.
이 책의 내용
1장 성능 문제를 발견하기에서는 유니티 프로파일러를 사용해 앱을 분석하고 병목현상을 찾는 문제 분석 방법을 소개한다.
2장 스크립팅 전략에서는 유니티 C#의 대표적인 예제들과 오버헤드 최소화, 객체 간의 상호작용 개선 등을 다룬다.
3장 배칭의 유용성에서는 유니티의 정적 배칭과 동적 시스템을 설명하고 렌더링 시스템의 부하를 줄이는 법을 설명한다.
4장 아트 자원을 활용하라에서는 아트 자원들 속에 있는 기술과 함께 불러오기, 압축, 인코딩 과정에서 빠지기 쉬운 함정을 피하는 법을 배운다.
5장 더 빠른 물리에서는 2D와 3D 유니티 엔진의 물리 시스템을 상세히 소개하고 물리 객체들을 적절히 구성해 성능을 높이는 비법을 소개한다.
6장 역동적인 그래픽에서는 렌더링 시스템의 깊은 곳까지 탐험한다. CPU, GPU에 의한 렌더링 병목현상을 개선하는 방법과 모바일 기기를 위한 특별한 기술을 배운다.
7장 메모리 관리의 주인에서는 '모노 프레임워크'라는 유니티 엔진의 내부를 살펴본다. 메모리가 어떻게 관리되는지, 프로그램을 힙 할당과 '실시간 폐공간 회수'로부터 보호하는 법을 소개한다.
8장 전략적 기술과 팁에서는 작업 속도와 화면 관리에 도움이 되는 팁을 알려준다.
대상 독자
중급 및 고급 유니티 개발자
원인 모를 병목현상 때문에 골머리 썩는 유니티 개발자
유니티 게임 엔진을 속속들이 알고 싶은 게임 개발자