#gdc The Witcher 3: Optimizing Content Pipelines for Open-World Games 리뷰

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-00.jpg

에셋 속성(property)을 조회할 수 있는 프로그램이다. 해상도가 2048 이상인 텍스쳐, 2000 폴리곤 이상을 쓰지만 LOD가 없는 에셋 등을 조회할 수 있다.

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-01.jpg

갑자기 좀 느려진 것 같다. 어디 근처만 가면 느려지네. 최근에 수정한 클라이언트 코드 때문인가? 한참 디버깅한 다음 알게 된다. 어라? 여기 폴리곤 개수가 왜 이래. 지금 150만 폴리곤을 사용하는 씬을 보고 있다.

지나치게 무거운 에셋이면 발견되고 고쳐진다. 프레임 드롭이 심해서 문제가 있다는 걸 바로 알게 된다. 하지만 약간의 프레임 드롭만 있다면 그냥 넘어가기 십상이다. 최적화되지 않은 에셋은 그렇게 성능을 좀먹는다.

문제가 있는 에셋이 뭔지 몰라서 못 고치는 거지 고치는 게 어려워서 못 고치는 게 아니다. 문제가 있는 에셋을 조회할 수 있는 툴이 있다면 많은 도움을 받을 수 있다.

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-02.jpg

world -> layers -> entities -> components로 모든 에셋을 순회하면서 속성을 저장하는 SQL 문을 만든다. SQL 문으로 에셋 데이터베이스를 만든다.

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-03.jpg

데이터베이스가 있으니 쿼리만 하면 된다.

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-04.jpg

엔티티는 50만 개이고 데이터베이스를 구축하는 SQL 문을 담은 텍스트 파일 크기가 2GB 정도 된다고 한다.

/pnotes/assets/2020-10-30-the-witcher-3-optimizing-content-pipelines-for-open-world-games-05.jpg

간단한 방법으로 에셋 데이터베이스를 구축할 수 있는 게 가장 큰 장점이다. 만든 후 문제가 있는 에셋을 찾아서 효과가 있다는 걸 증명한 뒤 차근차근 부족한 기능을 추가하면 된다.



크리에이티브 커먼즈 라이선스
A Random Post
Feedback plz <3 @ohyecloudy, ohyecloudy@gmail.com