"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
이게 Unity구나..
책은 Boat Attack 소스코드로 실습을 진행한다.
다운 받은 폴더를 unity hub -> project -> 우측 상단의 add하면,,

unity hub가 프로젝트를 인식해서 자동으로 필요한 프로그램을 설치해준다.

안 그래도 지금 ray tracing 주제의 과제를 진행 중인데.. 언리얼 엔진이든 유니티든 볼 때마다 신기하다.


이렇게 매끄러운 수면 움직임과 반사라니..?
이 책을 쓰며 가장 중요하게 생각한 점은 개별 사례의 해결 방법을 나열하는 것이 아니라 문제를 분석하고 해결하는 전문가의 사고 방식을 전달하는 것이었습니다. 게임 최적화에는 정답이 없습니다. (중략) 성능 문제를 해결하려면 소거법적인 사고방식이 필요합니다.
1) 가능한한 모든 맥락을 수집하고
2) 불필요한 정보를 제거하며
3) 남은 가능성을 하나씩 검증합니다.
(중략) 이 과정에서 2가지 도구가 필요합니다. 직관과 원자적 접근입니다. 직관은 경험을 통해 논리적 단계를 건너뛰는 능력입니다.
모든 현상에는 반드시 원인이 있다는 전제 아래 프로파일링 도구와 수치를 통해 정확히 무엇이 일어나고 있는지를 검증합니다.
직관은 방향을 제시하고 원자적 분석은 이를 증명합니다.
- p7
코드 너머의 무언가를 느낄 수 있어서 저자의 말이 울림이 있었다.
코드라는 수단에 매몰되지 않고 문제를 해결하는 데 집중하라는 점이..
🤔 책 이름부터 성능 최적화다. 그래서, 아쉽지만 유니티를 사용하는 방법을 설명하지 않는다. 성능 체크를 위한 프로파일러와 디버거, 그리고 각종 최적화 기법들을 차근차근 소개한다.


병목이란?
다른 하드웨어 성능이 아무리 뛰어나더라도 특정 하드웨어의 처리가 늦어져 전체 시스템의 처리 속도가 제한되는 현상.

기존의 방식이 아닌, 생각의 전환 혹은 다른 분야에서도 성능 개선이 가능하다는 언급이 무척 좋았다.




앗.. 내 노트북 메모리는 8GB라...... 😅

참고로 스냅샷 비교도 가능하다.
병목 현상을 발견하고 코드를 최적화 했다면, 수정 후의 상황을 느낌적으로가 아닌, 수치적으로 확인하기 정말 좋은 도구다.
더불어 게임 설계에 대한 트레이드 오프와 안정화에 대한 중요도가 느껴져서 인상깊었다.(게임은 하다가 튕기면 치명적이긴 하지..)

발열을 줄이기 위해 idle 타임을 확보하는 방식이 내게 신박하게 느껴졌다.
게임 뿐만 아니라 웹/앱에서 필요한 항목인데,
이 챕터를 통해서 BSON을 알게 되었다.

개인적으로 책을 읽으면서 정말 많이 힘들었다(내가 무슨 부귀영화를 누리겠다고...!).
이전에 본 언리얼 엔진 책은 엔진 자체를 사용하는 법이 조금 언급되어 있어 제법 따라하기 좋았는데,
이 책은 정말 유니티 경험이 있는 사람을 위한 책이다.
아니면, 레트로의 유니티 6 게임 프로그래밍 에센스를 읽고 봤어야 했다!!

그럼에도 조금씩, 그리고 반복해서 읽다보니 비로소 눈에 보이고 고민하게 되는 것들이 있었다. 코드를 짤 때 보안을 신경 써야 하는 것처럼, 최적화도 더 나은 결과물을 위해 고려해야 할 요소다.
그동안은 코드 몇 줄이나 ai에 의존해서 성능 체크를 해왔는데,
고차원적인 디버깅 툴과 프로파일러를 직접 다뤄보면서 "이런 항목들까지 들여다봐야 하는구나"를 배울 수 있었다.

위 이미지는 p40에서 프로파일러를 설명하는 부분인데, 게임 분야가 아니더라도 내가 만든 프로그램의 어떤 수치를 보는 게 좋은지 지표를 알 수 있어서 특히 좋았다. 😄