코룸 온라인 개발하던 시절에…
베타테스트 직전에 운영팀에서 pc방을 돌면서 게임을 테스트했다.
그리고 버그 리포트라는게 전달이 됐는데 그중에 RIVA TNT에서 크래시한다는 내용이 있었다.
당시 RIVA TNT에서 압축 테스처를 지원하지 않기 때문에 생긴 문제였다. 아마 2003년 즈음이었을텐데 그때 많이 쓰던 그래픽 카드는 GeForce 2/4 MX, 고급군으로는 GeForce 3/4 TI 였다.
코룸온라인은 최소사양이 RIVA TNT였다. 나한텐 안물어보고 정했던것 같다. 나중에 리포트 받아보고나서 “RIVA TNT따위 요새 누가 써요?” 라고 성질냈던 기억이 있으니까.
하여간 테스트 해보고 안돌아갔다고 하면 충분히 납득할만하고 내쪽에서 해결할 수 있으면 해결해주는게 맞긴 한데.
피가 끓던 시절이라 압축텍스처 지원이 안되어서 게임 안도는걸 ‘엔진 버그’라고 하니 그렇게 기분이 나빴다.
그때 버그리포트 전달한 담당자한테 한마디 했던걸로 기억한다. 이거 버그 아니라고.
뭐 지금같으면 웃으면서 “아 이런 장비를 아직도 쓰나요? 필요하면 해결해드릴께요”라고 얘기했을텐데 그땐 나도 어렸지.
그런데 압축텍스처를 지원하지 않는 하드웨어에서 게임이 돌게 하려면 텍스처를 비압축/압축 두벌을 같이 배포하든가, 아니면 압축 텍스처만 포함하고 로딩시에 압축을 풀어서 올려야했다. 그 시절 기준으론 게임 사이즈가 작은게 아니었고 그래픽팀의 추가 작업이 필요했으므로 텍스처를 두벌 넣는건 말도 안되는 얘기였다. 결국 로딩할때 압축을 풀어내야한다.
그게 그때 성질냈던 이유중 하나였다.
RIVA TNT쓸 정도면 그래픽 카드뿐 아니라 CPU도 엄청 구형일텐데 그런 장비에서 로딩시에 압축을 풀면 플레이하는데 지장 있을만큼 로딩이 길어지게 된다. 맵 이동 방식이었는데 결국 맵 체인지 할때마다 로딩 시간이 꽤 길어진다.
난 게임하기 힘들텐데 그냥 버리자고 주장했고, 상사는 그냥 돌아는 가게 해주자고 했다.
결국 압축텍스처 지원 여부를 체크해서 로딩시에 압축을 풀어서 메모리에 올리도록 고쳤다. 꽤나 쌍욕을 하며 작업했던 기억이 있다.
나는 느린 하드웨어에서 빠르게 도는 코드를 짜는건 예나 지금이나 좋아한다. 그런데 기능 지원이 아예 안되는 디바이스(ex : DX9까지만 지원하는 그래픽카드, AVX지원 안되는 CPU, CUDA 3.5미만의 GPU 등)에서 똑같은 기능 지원하게 만드는 작업은 아주 질색이다. 예전에도 그랬고 지금도 그렇다.
느린걸 빠르게 만드는 작업은 공부도 되고 미래에도 쓸모가 많은데 몇세대 전 디바이스를 지원하는건 고생은 고생대로 해도 기술적으론 하등 도움이 안된다. 그놈의 코드는 몇년 지나면 결국 메인 프로젝트에서 제거될 운명이고.
서피스북1에 맞춰서 GPU 메모리 덜 소모하도록 CUDA코드 고치다 생각나서 적어본다. 그래도 이건 기능 지원은 되고 메모리만 부족한거니 해볼만한 가치가 있네.