yuchi's Development Home
글 수 201
뭐가 달라졌는지 모르겠다 하실 분도 많겠지만...
내부적으론 많이 바뀌었습니다.
아니 사실 최근까지 라이트맵 관련 디버깅으로 거의 죽는 줄 알았습니다.
라이트맵의 퀄리티 때문이 아니고 때때로 의도하지 않게 나오는 삑사리 때문이었습니다.
가장 치명적인 문제는 포탈/BSP 코드와 연관이 있었는데 아시는 분은 아시겠지만 공간분할 코드와 라이트맵 코드는 관련이 거의 없습니다.
그럼에도 불구하고 엔진에서 라이트맵 빌드 시에 속도향상을 위해 공간분할 코드들을 사용합니다.
따라서 라이트맵 버그를 잡기 위해 2년쯤 전에 짜둔 공간 분할 코드를 이잡듯 뒤져야야 했습니다.
시간 텀이 1년이상씩 나는 각각의 코드를 동시에 보는건 상당히 정신 사나운 짓입니다.
힘들었습니다.
특히 최근 몇 일 사이는 집에서 밤을 새가며 디버깅에 매달렸습니다.
현재의 라이트맵 코드는 나름대로 최적화한다고 했지만 빌드 시간이 상당히 많이 걸립니다.
회사에서 사용하는 쿼드코어 머신에서 릴리즈모드라면 2분 이내로 대부분 맵의 라이트맵을 빌드하는 것이 가능합니다만, 디버그 모드에선 약 1.5배가 더 걸리고 집에서 사용하던 AMD 듀얼코어 머신에선 쿼드에 비해 두배의 시간을 필요로 했습니다.
아 참고로 엔진은 부분적으로 N개의 멀티CPU(코어)를 사용합니다. 물리 충돌처리를 비롯하여 지금 얘기하고 있는 라이트맵 계산이 대표적인 케이스죠.
실제로 싱글 코어에 비해 쿼드 코어는 라이트맵계산시 1/4의 시간만을 필요로 합니다.
하여간 집에서 사용하는 머신은 회사 머신에 비해 클럭도 400MHz나 낮고, 램도 절반이고, 듀얼 코어였으니까요.
새벽내내 코드 고치고 브레이크 찍고 계산 걸어보고 결과를 확인하는 일은 무척 힘들었습니다. 결과를 보려면 기다리는 동안 무지 짜증스러웠죠.
물론 2002년도에 엔진을 처음 개발할때는 4시간까지 기다렸던 적도 있습니다. 그때보다 엄청나게 빠르게 동작할 수 있는 코드를 만들었고, 지금은 머신의 성능이 매우 향상되었기 때문에 그나마 몇 분 안으로 끝낼 수 있는거죠.
하여간 밤을 새고 그 다음날 비몽사몽에 회사에서 열심히 코드를 보다가 동료와의 대화중에 힌트를 얻어 치명적인 버그를 잡았습니다.
그리고 당장 집의 PC도 쿼드코어 머신으로 업그레이드 했습니다.
레이드를 비롯하여 좁은 케이스 등등의 문제로 또 PC때문에 밤을 새고 결국 체력의 문제로 하루 연차를 냈습니다.
방금 전에 PC세팅을 거의 완벽하게 끝내고 엔진과 클라이언트,툴들을 몽땅 리빌드 했습니다.
그러고 나서 맵툴에서 찍은 스샷입니다.
그러니까 요는.... pc업그레이드를 자랑하고 싶은걸까요?