TIL

2025 01 10 TIL

noc777 2025. 1. 10. 13:10

빌드 후 최적화 작업을 위해서는 빌드 파일의 구성요소들을 차지 비중을 알아야합니다.

유저테스트를 위한 빌드 파일은 2GB 내외로 잡는데

그 이유는 용량이 너무 크면 다운로드를 진행하는 시도조차 엄두를 못하기 때문입니다.

 

차지 용량을 확인하기 위해선 먼저 빌드를 진행하고 나서

 

Project 창의 점 세개 항목에서 Open Editor Log를 클릭하여 준다.

 

메모장으로 에디터 로그가 열리는 데 Ctrl + F로 내용물 중 Build Report 라는 키워드를 검색하여 빌드 후 상황을 확인하는 방법이다.

 

지금은 제 컴퓨터로 빌드가 진행되지 않아 검색이 되지 않지만 빌드하신 팀원분께 공유받은 정보로는 

Build Report
Uncompressed usage by category (Percentages based on user generated assets only):
Textures               2.3 gb	 95.3%
Meshes                 94.7 mb	 3.9%
Animations             206.2 kb	 0.0%
Sounds                 14.2 mb	 0.6%
Shaders                1.1 mb	 0.0%
Other Assets           4.2 mb	 0.2%
Levels                 0.0 kb	 0.0%
Scripts                459.8 kb	 0.0%
Included DLLs          0.0 kb	 0.0%
File headers           478.7 kb	 0.0%
Total User Assets      2.4 gb	 100.0%
Complete build size    3.9 gb

 

처럼 차지하고 있는 용량 정보가 공유가 됩니다.

 

구성요소들을 살펴보았을 때 한눈에봐도 텍스쳐가 차지하는 비중이 매우 높은데 

그렇기에 최적화를 진행하기 위해 우선요소를 텍스쳐로 잡습니다.

 

텍스쳐들 중에서도 현재 맵 건물 요소에 사용되고 있는 프리팹의 머터리얼 요소의 텍스쳐가 상당히 무거운 편에 속하는 데

이 에셋이 원래 재난 시 건물 복원 용도로 쓰이고 있어 세부적인 건물 조립 요소들마다 상당 수가 고유한 텍스쳐를 쓰기 때문입니다. (지붕,기둥 등등 조립식으로 에셋 건물이 만들어져 있음)

 

그렇기에 개발자가 할 수 있는 최선은 텍스쳐의 용량을 줄이기 위해 설정을 건드는 것입니다.

 

텍스쳐 프로퍼티 : 

 

Max Size 는 텍스쳐의 최대 해상도를 지정하는 것입니다. 

텍스쳐의 품질과 연관이 되어 있는데 기본적으로 2048 x 2048 로 되어 있는 경우가 많고

값을 낮출수록 용량을 차지하는 비율이 줄어들지만 품질이 떨어집니다.

 

Compression 은 텍스쳐 압축 타입입니다. 

- None : 텍스쳐를 압축하지 않음

- Low Quality : 저품질 포맷으로 텍스쳐를 압축 

- Normal Quality : 일반 포맷을 사용하여 압축 (기본값)

- High Quality : 고품질 포맷으로 텍스쳐를 압축 

 

Use Crunch Compress  : 압축된 파일을 더 압축하여 크기를 줄일 것인지 여부를 결정해줍니다.

 

튜터님 말씀으론 현재 프로젝트에서 1024x1024 이하로 전부 내리더라도 티가 많이 나진 않는다고 하시니 

앞으로 프로젝트에 있어 최적화를 진행할 때 염두해두어야 할 것 같다.

 

그리고 보통은 에셋 번들이라는 외부저장소로 사용되는 서버에서 내려받는 식으로 파일들을 관리하면 

훨씬 더 빌드 항목이 줄어든다고 하며 거의 필수적인 듯 하다.  (멀티플레이 진행을 위한 서버가 아니다. 외부저장소를 이용하기 위한 서버인 것 같다.) (서버는 클라이언트가 요청하였을때 내려주는 형식의 모든 것을 말하는 듯하다)

이번 프로젝트에선 적용하지 못했지만 다음 게임을 만든다면 적용을 시도해보고 싶다.

 

정말로 마무리라는 느낌이 많이 든다. 

지금 생각엔 과정이 전부 끝나고 나면 지금까지 배웠던 것들과 놓쳤던 부분들을 다시 되돌아보는 시간이 꼭 필요해보인다.

모르는 부분들이 너무 많고 어디서부터 놓쳤는지도 잘 모르겠다. 

정말 기본이 되는 부분부터 차근차근 다시 돌아보면서 왜 그렇게 사용되고 있는 지 시간에 쫒기지 않고 다시 돌아보고 싶다. 지금도 소통하면서 잘 모르는 부분들이 많기에 답답한데 어디서부터 접근해야할지 모르겠는 문제가 많다.

 

유저테스트 배포 후 저녁에 찾아오는 사람들이 많았다.

솔직하게 내가 한 것이 너무나 빈약하고 잘 구현되지 않아서 자신감이 많이 떨어졌었는데

다들 게임 자체를 재밌게 플레이 해주시는 것 같아 뭔가 다시 심장이 뛰는 느낌이었다.

그동안 너무 침체되어 있는 상태였는데 뭔가 기분이 개운해지는 느낌이라고 해야하나 

 

다들 와주셔서 피드백해주신 것을 토대로 추가로 수정할 것들을 주말동안 정해보았다.

내가 현재 맡은 것은 로딩 도중 게임 설명을 타이핑 치듯 보여주는 효과를 같이 찾아보기,

퍼즐 트리거 부분에 UI를 띄워서 퍼즐이 시작되었음을 알리는 것을 할 예정이다.

 

뭔가 동기부여라는 것이 이렇게 중요하구나 싶은 부분이었다.

일들이 너무 잘 안풀리고 최근 안밖으로 너무 안좋은 사건들이 많아서 지쳐있는 상태였는데

테스트 한번에 이렇게 기분이 호전될줄은 몰랐다.

 

비록 부족할지라도 열심히 또 열심히 하면서 배우면 언젠가 1인분을 할 수 있길 바란다.

 

오늘 추가로 알게된 사항 : 

무한 반복되는 코루틴은 코루틴을 쓰는 것보단 생명주기 메서드 업데이트로 사용하는 편이 낫다고 한다.

정확하게는 시작하고나서 조건이 만족할 때까지 무한 반복이 되지만 단기적으로 사용되는 목적이 아닌

아니라 활성화되고 나서 오랜 시간 반복되는 코루틴 등 게임 플레이 중 지속적으로 사용되는 경우를 말한다.

 

 

'TIL' 카테고리의 다른 글

2025 01 14 TIL  (0) 2025.01.14
2025 01 13 TIL  (0) 2025.01.13
2025 01 09 TIL  (0) 2025.01.09
2025 01 08 TIL  (0) 2025.01.08
2025 01 07 TIL  (0) 2025.01.07