나에게 필요한 지식과 기술을 검색해 보세요.

최대 성능을 위한 유니티 5 게임 프로그래밍 최적화

지은이

크리스 디킨슨

옮긴이

유건곤, 최종우

출간일

2017.06.30

레벨

중급

평점

5(2명)

정가

17,000

판매가

15,300

총 결제 금액

10%

15,300

적립 예정

760P

전자책 사용 안내

전자책은 웹뷰어와 한빛+ 앱에서 열람할 수 있으며 PDF 다운로드는 지원되지 않습니다.

쪽수

320P

ISBN

9788968488504

브랜드

리얼타임 eBook

뚝뚝 끊기는 게임의 원인 분석부터 해결까지

유니티 개발자라면 알아야 할 성능 최적화 기법

게임을 개발하다 보면 때로는 적절한 타협이 필요하다. 제한된 자원과 시간으로 가장 빠르게, 효과적으로 최적화하는 길은 언제나 분명히 있다. 이 말인즉슨, 타협할 수 있는 ‘선’이 반드시 있다는 것이다. 적절한 선을 정하지 않으면 지극히 작고 알아채기조차 어려운 사소한 문제에 시간을 허비할 수 있다. 이 선을 결정하는 데 가장 좋은 질문은 “사용자가 이 문제를 인식할 수 있는가”다. 만약 이 질문에 대한 대답이 “아니요”라면 성능 개선은 필요가 없다. 문제가 될지 안 될지 알지 못한 채 문제가 될 거라는 의심만으로 코드를 수정하는 것은 한정된 개발 자원을 쓸데없이 낭비하는 것에 불과하다.

『최대 성능을 위한 유니티 5 게임 프로그래밍 최적화』는 프로그래밍을 최적화하기 위한 툴과 지식, 기술뿐 아니라 어디에서 기인한 문제인지 원인을 발견하고 해결하는 것까지를 다룬다. 낮은 초당 프레임 수(fps)로 인한 화면 끊김, 입력 지연, 긴 로딩 시간, 그래픽 깨짐, 지나치게 많은 배터리 소모 모두 최적화와 관련이 있다. 이러한 문제는 CPU, GPU, RAM과 같은 하드웨어뿐 아니라 물리 엔진을 비롯한 프로그램의 하부 시스템, 유니티 자체의 결함에 의해서도 발생할 수 있다. 성능 최적화란 CPU, GPU, RAM과 같은 자원이 적재적소에 분배되고 병목현상 없이 우선순위에 따라 작동하게 만드는 것이다. 최적화는 같은 하드웨어에서 더 많은 표현과 처리를 가능하게 할 뿐 아니라 더 흥미롭고 다채로운 게임을 개발하게 해준다. 게임 출시 이후 맞닥뜨리는 여러 문제를 개선하고 최적화하는 데 이 책은 분명 좋은 지침이 될 것이다.

 

 

이 책의 내용

  • 1장 성능 문제를 발견하기에서는 유니티 프로파일러를 사용해 앱을 분석하고 병목현상을 찾는 문제 분석 방법을 소개한다.
  • 2장 스크립팅 전략에서는 유니티 C#의 대표적인 예제들과 오버헤드 최소화, 객체 간의 상호작용 개선 등을 다룬다.
  • 3장 배칭의 유용성에서는 유니티의 정적 배칭과 동적 시스템을 설명하고 렌더링 시스템의 부하를 줄이는 법을 설명한다.
  • 4장 아트 자원을 활용하라에서는 아트 자원들 속에 있는 기술과 함께 불러오기, 압축, 인코딩 과정에서 빠지기 쉬운 함정을 피하는 법을 배운다.
  • 5장 더 빠른 물리에서는 2D와 3D 유니티 엔진의 물리 시스템을 상세히 소개하고 물리 객체들을 적절히 구성해 성능을 높이는 비법을 소개한다.
  • 6장 역동적인 그래픽에서는 렌더링 시스템의 깊은 곳까지 탐험한다. CPU, GPU에 의한 렌더링 병목현상을 개선하는 방법과 모바일 기기를 위한 특별한 기술을 배운다.
  • 7장 메모리 관리의 주인에서는 ‘모노 프레임워크’라는 유니티 엔진의 내부를 살펴본다. 메모리가 어떻게 관리되는지, 프로그램을 힙 할당과 ‘실시간 폐공간 회수’로부터 보호하는 법을 소개한다.
  • 8장 전략적 기술과 팁에서는 작업 속도와 화면 관리에 도움이 되는 팁을 알려준다.

 

 

대상 독자

  • 중급 및 고급 유니티 개발자
  • 원인 모를 병목현상 때문에 골머리 썩는 유니티 개발자
  • 유니티 게임 엔진을 속속들이 알고 싶은 게임 개발자

저자

목차

chapter 1 성능 문제 발견하기

_1.1 유니티 프로파일러 

_1.2 성능 분석을 잘 하는 법 

_1.3 코드 삽입을 통한 목표 프로파일링 

_1.4 프로파일링한 자료를 저장하고 불러오는 방법 

_1.5 프로파일링과 분석에 대한 마지막 당부 

_1.6 요약 

 

chapter 2 스크립트 전략

_2.1 컴포넌트 참조 캐시 

_2.2 컴포넌트를 가장 빠르게 불러오는 방법 

_2.3 빈 호출 함수 줄이기 

_2.4 실행 중에 Find( )와 SendMessage( ) 함수 피하기 

_2.5 사용하지 않는 스크립트와 객체 비활성 하기 

_2.6 거리 대신 거리 제곱 사용하기 

_2.7 문자열 속성을 검색하지 않기 

_2.8 업데이트, 코루틴, 반복 호출

_2.9 트랜스폼을 바꿀 때 캐싱 고려하기 

_2.10 더 빠른 게임 오브젝트 빈 참조 확인 

_2.11 요약 

 

chapter 3 배칭의 유용성

_3.1 드로우 콜 

_3.2 재질과 셰이더

_3.3 동적 배칭

_3.4 정적 배칭

_3.5 요약 

 

chapter 4 당신의 아트 자원을 활용하라

_4.1 오디오 

_4.2 텍스처 파일 

_4.3 메시와 애니메이션 파일들

_4.4 요약 

 

chapter 5 더 빠른 물리

_5.1 물리 엔진의 내부 

_5.2 물리 성능 최적화 

_5.3 요약 

 

chapter 6 역동적인 그래픽

_6.1 렌더링 문제 프로파일링 하기 

_6.2 프론트엔드 병목현상 

_6.3 백엔드 병목현상 

_6.4 광원과 그림자 

_6.5 모바일을 위한 최적화 

_6.6 요약 

 

chapter 7 메모리 관리의 주인

_7.1 모노 플랫폼 

_7.2 메모리 사용 최적화

_7.3 Prefab 풀링 

_7.4 유니티와 모노의 미래 

_7.5 요약 

 

chapter 8 전략적 기술과 팁

_8.1 에디터 단축키 팁 

_8.2 에디터 인터페이스 팁들 

_8.3 스크립팅 팁 

_8.4 에디터/메뉴 개인화 팁 

_8.5 외부 팁 

_8.6 요약

 

리뷰

전체 평점

5

오탈자

  • 전자책90P1

    내용 오류

    4,5번째 줄

    2018-01-12
  • 전자책161P1

    내용 오류

    5.1.2 정적과 동적 충돌체 7줄

    2017-10-31

17,000

10%

15,300