레트로의 유니티 성능 최적화 (발열은 줄이고 프레임은 높이는 갓겜 개발자의 필독서)

레트로의 유니티 성능 최적화 (발열은 줄이고 프레임은 높이는 갓겜 개발자의 필독서)

$35.00
Description
프로파일링부터 병목 제거까지, 쾌적한 플레이를 만드는 유니티 최적화 실전 가이드
프레임 드롭, 발열, 이유 없는 버벅임. 유니티 개발자라면 누구나 한 번쯤 마주하는 문제입니다. 이 책은 유니티 프로젝트에서 발생하는 성능 문제를 감이 아닌 구조와 지표로 바라보는 방법을 제시합니다. 프로파일링을 통해 병목을 찾고 수집한 데이터를 바탕으로 무엇을 어떻게 최적화해야 하는지를 판단하도록 안내합니다. 이 과정에서 CPU·GPU·메모리의 관계를 이해하며 상황에 맞는 선택 기준을 세울 수 있도록 돕습니다. 이 책은 단편적인 팁이 아닌 실무에서 다시 써먹을 수 있는 사고방식을 정리한 실전 가이드입니다. 성능을 책임져야 하는 유니티 개발자라면 반드시 곁에 두고 반복해서 읽어보세요.
저자

이제민

유니티에서파트너엔지니어로근무하며전세계다양한게임개발사의최적화작업과난해한기술문제해결을지원하고있습니다.〈승리의여신:니케〉프로젝트에서는애니메이션과물리구현,최적화를담당했습니다.또한레트로(retr0)라는이름으로활동하며수천명의개발자를대상으로게임개발교육을진행해온트레이너이기도합니다.유니티개발입문의정석으로꼽히는『레트로의유니티6게임프로그래밍에센스』를집필했으며유튜브채널을통해생생한개발노하우를공유하고있습니다.

목차

1장최적화준비하기
1.1최적화사전준비
1.2최적화워크플로
1.3창의적인접근
1.4정리하기

2장유니티프로파일러
2.1유니티프로파일러기본사용법
2.2프로파일러모듈
2.3CPU모듈소개
2.4샘플
2.5프로파일러마커
2.6차트보기
2.7모듈세부정보창툴바
2.8콜스택설정
2.9다른프로파일러모듈들
2.10정리하기

3장스레드와병목
3.1스레드
3.2메인스레드
3.3렌더스레드
3.4워커스레드(잡스레드)
3.5기타스레드들
3.6병목스레드찾기
3.7병목지점을찾는다른방법들
3.8정리하기

4장그래픽스명령어와배칭
4.1그래픽스명령어
4.2렌더파이프라인상태
4.3렌더링병목의이해
4.4드로우콜최적화
4.5SRP배처
4.6배치우선순위
4.7정리하기

5장프레임디버거
5.1프레임디버거란
5.2프레임디버거사용하기
5.3정보패널
5.4정리하기

6장iOSGPU프로파일링
6.1GPU프레임캡처하기
6.2요약뷰
6.3디펜던시뷰
6.4퍼포먼스뷰
6.5메모리뷰
6.6파이프라인상태살펴보기
6.7정리하기

7장메모리구조의이해
7.1iOS메모리구조와동작원리
7.2유니티의메모리구조
7.3정리하기

8장유니티메모리프로파일러
8.1메모리프로파일러설치
8.2스냅샷캡처하기
8.3메모리프로파일러창
8.4메모리요약탭
8.5유니티오브젝트
8.6전체메모리
8.7상세정보
8.8스냅샷비교하기
8.9정리하기

9장iOS네이티브메모리프로파일러
9.1네이티브메모리프로파일러가필요한경우
9.2Xcode프로젝트설정
9.3InstrumentsAllocations프로젝트생성
9.4VMTracker살펴보기
9.5Allocations살펴보기
9.6정리하기

10장프로젝트설정최적화
10.1그래픽스관련설정
10.2셰이더베리언트로딩설정
10.3스크립팅설정
10.4코드스트립
10.5물리설정
10.6발열제어를위한Idle타임확보
10.7기타프로젝트설정최적화
10.8정리하기

11장에셋최적화
11.1오디오클립
11.2텍스처
11.3메시설정
11.4애니메이션클립최적화하기
11.5파티클시스템
11.6Resources폴더사용하지않기
11.7BSON사용하기
11.8스프라이트아틀라스사용하기
11.9정리하기

12장셰이더베리언트최적화
12.1셰이더베리언트
12.2셰이더베리언트추적하기
12.3셰이더베리언트최적화하기
12.4ProjectAuditor로셰이더베리언트추적하기
12.5정리하기

13장C#스크립트최적화
13.1문자열조합을최적화하기
13.2CompareTag()로태그비교하기
13.3식별자로문자열대신해시사용하기
13.4정적데이터의enum을문자열로다루지않기
13.5Find계열메서드줄이기
13.6런타임에AddComponent사용하지않기
13.7빈유니티이벤트제거하기
13.8할당이없는물리캐스트API사용하기
13.9트랜스폼연산을한번에수행하기
13.10conditional디버그로그
13.11Fakenull유의하기
13.12오브젝트풀사용하기
13.13런타임에리플렉션자제하기
13.14계산결과캐싱하기
13.15잡시스템활용하기
13.16구조체사용하기
13.17데이터지향설계와SoA사용하기
13.18DOTS소개
13.19정리하기

부록유니티AI를활용한최적화
A.1사전준비사항
A.2프로젝트설정분석하기
A.3에셋점검하기
A.4프로파일링데이터를AI에게분석시키기

출판사 서평

이책은저자가전세계의인디게임부터AAA급게임에이르기까지다양한유니티게임의성능문제를컨설팅하며얻은지식을정리한것입니다.유니티프로젝트에서발생하는성능문제를분석하고최적화하는여러방법을다루며실무에바로적용할수있는기준과접근방식을중심으로설명합니다.

★이책의대상독자
이책은유니티를활용해실제프로젝트를개발하고있으며,성능문제를체계적으로분석하고해결하고자하는개발자를대상으로합니다.
- 유니티로게임을개발한경험은있으나프레임드롭,메모리증가,로딩지연과같은성능문제의원인을명확히설명하기어려운개발자
- 프로파일러를사용해본경험은있지만수집된데이터를어떻게해석하고최적화로연결해야할지막막했던개발자
- 감에의존한최적화가아니라지표와근거를기반으로성능문제를정의하고개선하고자하는실무개발자
- 모바일,콘솔,PC등다양한플랫폼환경에서유니티프로젝트의성능안정성을확보해야하는개발자

★이책에서다루는내용
최적화의기본개념과접근법
성능최적화의본질과올바른접근방식을설명합니다.최적화문제를체계적으로정의하고분석하
는방법을익히고프레임타임,메모리예산,GPU·CPU밸런스등실무에서사용하는지표를설정
하는방법을소개합니다.
프로파일링과데이터분석
유니티프로파일러,메모리프로파일러,Metal프레임디버거,XcodeInstruments등다양한플
랫폼의프로파일러사용법을설명합니다.데이터를단순히수집하는데그치지않고병목의원인을
추론하고해석하는과정을다룹니다.
메모리구조와관리전략
유니티엔진내부의메모리구조와GC동작원리를상세히설명합니다.관리되는힙,네이티브힙,그래픽메모리간의관계를살펴보고메모리파편화와상주메모리가성능에미치는영향을분석합니다.또한iOS환경에서운영체제수준의메모리동작방식도다룹니다.
그래픽스최적화
렌더링파이프라인의흐름을이해하고실제로GPU부하를줄이는방법을설명합니다.배칭,SRP배처,GPU인스턴싱등그래픽스최적화의핵심개념을원리중심으로다루며셰이더베리언트의구조와관리전략도함께소개합니다.
CPU와스크립트최적화
C#잡시스템\과Burst컴파일러를활용한멀티스레딩최적화기법을다룹니다.IL2CPP,GC,메모리할당패턴을중심으로CPU사용량을줄이고안정적인프레임레이트를확보하는실전사례를소개합니다.
프로젝트최적화
프로젝트설정이성능에미치는영향을다룹니다.어드레서블,에셋번들,텍스처압축,오디오임포트설정등을통해빌드용량과로딩시간을줄이는방법을설명합니다.