yuchi's Development Home
글 수 201
발렌타인데이 PT를 마치고서 저는 팀원들 모두가 접속하는 테스트를 정기적으로 해야겠다고 생각했습니다.
원래는 3월부터 2주 간격으로 실시할 예정이었습니다만, 하루라도 빨리 시작하는 편이 좋겠다 싶더군요. 2주 간격도 너무 깁니다. 일주일 간격으로 테스트하기로 했습니다.
그리고 오늘이 그 첫 테스트 날이었습니다.
얼마전 PT를 끝내고 코드를 왕창 고쳤습니다. 칼 공격 처리를 하다보니 이전 코드는 좀 문제가 있더군요. 내용상으론 사소한 문제였지만 '제대로'구현하려면 왕창 뜯어고쳐야 했습니다.
클라이언트 코드와 서버 코드 모두 수정하고 테스트해야하므로 그렇게 쉬운 작업은 아니었습니다. 뭐 일단 어제까진 마무리를 지었죠.
오늘의 테스트 첫번째 시도에서 칼 공격 코드는 바로 버그의 원인이 되었습니다.
디버그모드에선 문제가 없었죠(없어보였죠). 릴리즈 모드에서만 티가 났습니다. 팀원들에게는 릴리즈 빌드를 배포했는데 모두 크래쉬했습니다.
릴리즈 모드에서 나오는 디버그 정보란 매우 제한적이고 그나마 신뢰할수도 없어서 무지 애먹었습니다.
패닉 상태에 빠졌지만 하루 종일 눈을 부릅 뜨고 머리를 굴린 덕에 버그를 잡고 5시경부터 다시 테스트를 시작했습니다.
이번에는 UI코드에서 무한루프에 빠졌습니다. 제 코드가 아니었으므로 일단 팀원을 닥달한 뒤 사무실을 서성대며 잠시 시간을 낭비했습니다.
윗층 회의실에 올라가서 새로 들여온 LCD TV에 드림 캐스트를 연결하고 내려오니 버그를 잡아놨더군요.
다시 테스트를 시작했습니다.
이젠 잘 돌아간다~ 라고 한 순간 7명 전원의 클라이언트가 크래쉬했습니다.
아뿔싸..아까 디버깅 한다고 코드에 박아놓은 __debugbreak()에서 소프트 인터럽트가 걸려버렸군요.
해당 코드와 약간 문제가 있던 서버 코드도 수정했습니다.
팀원들과 서로 쏴죽여가며 즐겁게 맵을 한바퀴 돌고 마지막은 화려한 pvp혈전으로 장식. 일제히 로그아웃 했습니다.
이젠 완벽한가 했는데 종료할때보니 게임서버의 스태틱 메모리 풀에서 메모리가 일부 샜더군요. 누수 체크 부분에 디버그 인터럽트를 걸어두길 잘했습니다.
퇴근할때까지 20여분간 메모리 누수 버그도 잡았습니다.
그렇게 오늘 업무를 마무리했지요.
우리가 개발하는 게임을 직접 플레이 해본다는 것은 어찌보면 너무 당연한 것으로서 '개밥먹기'라는 표현은 다소 부적절할지 모르겠습니다.
하지만 개밥(dog food)는 개밥이죠. 현재는 정말 개밥만큼의 맛밖에 되지 않습니다.
여튼 개밥먹기를 빨리 시작해서 다행이라고 생각했습니다.
출시하려면 1년반이나 남았지만, 지금부터 일상처럼 플레이해봐야 1년쯤 뒤에는 비교적 안정적인 시스템이 될 것입니다.
오늘의 수확
1. 단시간에 꽤 많은 버그를 잡았습니다.
2. 생각보다 플레이할만 했습니다. 약간의 자신감을 얻었습니다.
3. 우리들이 만들어가고 있는 것이 무엇인지 팀원들 전원이 그 상을 공유할 수 있었습니다.
조만간 pvp랭킹이라도 개발 페이지에 게시할 수 있도록 손을 좀 볼까 합니다.
원래는 3월부터 2주 간격으로 실시할 예정이었습니다만, 하루라도 빨리 시작하는 편이 좋겠다 싶더군요. 2주 간격도 너무 깁니다. 일주일 간격으로 테스트하기로 했습니다.
그리고 오늘이 그 첫 테스트 날이었습니다.
얼마전 PT를 끝내고 코드를 왕창 고쳤습니다. 칼 공격 처리를 하다보니 이전 코드는 좀 문제가 있더군요. 내용상으론 사소한 문제였지만 '제대로'구현하려면 왕창 뜯어고쳐야 했습니다.
클라이언트 코드와 서버 코드 모두 수정하고 테스트해야하므로 그렇게 쉬운 작업은 아니었습니다. 뭐 일단 어제까진 마무리를 지었죠.
오늘의 테스트 첫번째 시도에서 칼 공격 코드는 바로 버그의 원인이 되었습니다.
디버그모드에선 문제가 없었죠(없어보였죠). 릴리즈 모드에서만 티가 났습니다. 팀원들에게는 릴리즈 빌드를 배포했는데 모두 크래쉬했습니다.
릴리즈 모드에서 나오는 디버그 정보란 매우 제한적이고 그나마 신뢰할수도 없어서 무지 애먹었습니다.
패닉 상태에 빠졌지만 하루 종일 눈을 부릅 뜨고 머리를 굴린 덕에 버그를 잡고 5시경부터 다시 테스트를 시작했습니다.
이번에는 UI코드에서 무한루프에 빠졌습니다. 제 코드가 아니었으므로 일단 팀원을 닥달한 뒤 사무실을 서성대며 잠시 시간을 낭비했습니다.
윗층 회의실에 올라가서 새로 들여온 LCD TV에 드림 캐스트를 연결하고 내려오니 버그를 잡아놨더군요.
다시 테스트를 시작했습니다.
이젠 잘 돌아간다~ 라고 한 순간 7명 전원의 클라이언트가 크래쉬했습니다.
아뿔싸..아까 디버깅 한다고 코드에 박아놓은 __debugbreak()에서 소프트 인터럽트가 걸려버렸군요.
해당 코드와 약간 문제가 있던 서버 코드도 수정했습니다.
팀원들과 서로 쏴죽여가며 즐겁게 맵을 한바퀴 돌고 마지막은 화려한 pvp혈전으로 장식. 일제히 로그아웃 했습니다.
이젠 완벽한가 했는데 종료할때보니 게임서버의 스태틱 메모리 풀에서 메모리가 일부 샜더군요. 누수 체크 부분에 디버그 인터럽트를 걸어두길 잘했습니다.
퇴근할때까지 20여분간 메모리 누수 버그도 잡았습니다.
그렇게 오늘 업무를 마무리했지요.
우리가 개발하는 게임을 직접 플레이 해본다는 것은 어찌보면 너무 당연한 것으로서 '개밥먹기'라는 표현은 다소 부적절할지 모르겠습니다.
하지만 개밥(dog food)는 개밥이죠. 현재는 정말 개밥만큼의 맛밖에 되지 않습니다.
여튼 개밥먹기를 빨리 시작해서 다행이라고 생각했습니다.
출시하려면 1년반이나 남았지만, 지금부터 일상처럼 플레이해봐야 1년쯤 뒤에는 비교적 안정적인 시스템이 될 것입니다.
오늘의 수확
1. 단시간에 꽤 많은 버그를 잡았습니다.
2. 생각보다 플레이할만 했습니다. 약간의 자신감을 얻었습니다.
3. 우리들이 만들어가고 있는 것이 무엇인지 팀원들 전원이 그 상을 공유할 수 있었습니다.
조만간 pvp랭킹이라도 개발 페이지에 게시할 수 있도록 손을 좀 볼까 합니다.