본문 바로가기

잡담

오늘의 삽질. 범인은 코드안에 있다.




어제 끝났어야할 슈팅 미니게임이 오늘이 다가도록 마무리 되지 않았다.



특정할 수 없는 행동들을 꾸준히 하다보면 어느 순간 fps 가 급격히 떨어지는 현상이 발견되었는데

이것은 메모리가 크게 변화되지 않으며 발생하고

빠르게 진행되어 나타나는 현상이 아니라 하마트면 놓칠 뻔한, 완전범죄가 이루어질뻔한 오류였다.



이것을 체크하고 디버깅하는데 무려 8시간이 소요.

..두둥...8시간. 하루를 다 까먹었다는 이야기.




물론 중간에 열받아서 커피마시고 담배피고 밥먹은 시간도 포함된다.



모든 문제와 버그가 그러하듯이

원인을 알고나면 스트레스를 받은 시간만큼 허탈함의 정도는 정비례 한다.



객체와 이벤트는 제거되었지만 파티클시스템이 juggler 에 계속 남아 있어 누적되었던 것이 원인.



물론 이것을 제거하는 메서드는 이미 만들어 두었고

가상의 시나리오들에서 수많은 테스트를 거친 결과 

그 메서드는 한치의 오차도 없이 완벽했으며

어떠한 예외도 허용하지 않는 완전무결한 논리적 아름다움을 가지고 있었다.

이 메서드를 완성한 뒤 나는 감격해 눈물이 나오는지도 몰랐다. 아 신이시여. 이것이 정녕 제머리에서?



하지만 무적의 아킬레스도 약점은 있는법.

너무도 완벽하다고 판단한 나머지 나는 방심했던 것이다.



가장중요한

객체가 제거되어야만 하는, 그리고 동시에 자원을 회수하고 버퍼가 비워져야 하는 그 상황,

즉 해당 메서드를 실행해야 되는 상황을 완전히 파악 못했던 것이다.



서양의 치매 할아버지마저 강낭콩 사이의 모래, 티슈사이의 깻잎, 젤리사이의 묵, 그 모든것을 집게 해주는

전지전능한 젓가락을 가졌어도 정작 젓가락질이 필요한 음식을 모른다면 아무 소용이 없는것처럼.



나는 이러한 나의 모자람을 깨달을때면 신은 역시 공평하다는것을 깨닫는다.



ADDED_TO_STAGE REMOVED_FROM_STAGE 를 통한 초기화, 제거 처리가 편리하다는걸 다시 한번 깨달았지만

돌이키기엔 너무나도 많은 객체들이 한장의 RenderTexture에 draw 되어 있다.


아ㅏㅏㅏ아ㅏ아ㅏ아 이렇게 난 11시 40분에 멘붕을 느낀다..ㅏㅏㅏㅏㅏㅏ 나는 자유롭다ㅏㅏ

'잡담' 카테고리의 다른 글

으어어어 게을려지고있다아  (1) 2013.01.21
백수의 눈물  (4) 2012.11.03
디아블로3..  (0) 2012.06.28
윈도우8, 포토샵등에서의 필압문제  (12) 2012.05.14
슬레이트pc + 윈도우8 후기  (32) 2012.03.13