전설은 아니고 레전드 (아이유 도망쳐)
'2010/09'에 해당되는 글 9건
- [2010/09/29] 이쯤에서 다시보는 Gee 리믹스 모음
- [2010/09/26] 가을이면 항상 (9)
- [2010/09/24] 추석 (10)
- [2010/09/23] 생일 축하해준 사람들 (4)
- [2010/09/16] GMF2010 (2)
- [2010/09/11] 추억갤 눈팅중
- [2010/09/11] 말 (8)
- [2010/09/05] 란츠옹+동기모임 (9)
- [2010/09/01] 지난 주말(+3Day)의 일기 (10)
오랜만에 높은 하늘과 건조한 햇살을 보고 있으면 유독
어제와 같은 일과로 보내는 오늘이
사실은 더 다채로울 수도 있지 않을까
더 화려하고 더 행복할 수 있지 않았을까 하는
태어난지 21년째 9월 26일은 두 번 다시 돌아오지 않는데
좋은 인연이 소중한 추억이 들어갔을지도 모를 그 자리에
나는 형광등 불빛과 축축한 시멘트
내일이면 기억하지도 못할 무의미로만 채워넣으며 낭비하고 있는 게 아닐까 하는
해가 지기도 전에 시작해서 잠이 들 때까지 이어지는 후회
이번 추석엔 뭔가
나를 삼촌이라고 부르는 아기들이 친가쪽에 하나 외가쪽에 하나
정확히는 당숙이지만; 아무튼 좀 쇼크
우리 엄마보고 할머니래..
당질/외당질녀라고 하면 되는 것 같은데 자꾸 아기 이름이 코르티코이드일 것 같 갓난아긴데 나이들어보이는 호칭이다
당질은 내년에 유치원 들어간다는데 인사도 잘하고 붙임성도 있고 나보다 나은듯
외당질녀는 6개월이랬나 아직 돌은 안 됐고 아랫니만 2개 있다. 얘도 얌전하고 짜증도 안 부리고
아기들 별로 좋아하지 않았는데 이번에는 '어 이건..?'이란 느낌을 받고 돌아옴
물논 현실은 시망이겠지
까먹기 전에 적어놔야지
시간순서로
심포2조(현혜누나,아라,지은,수환,재원,민영,민기,민수,주형)
영준이 쿠타 우리엄마 와이준 투즈 성은이 문정누나☏ 지은누나 예은이
선임 중 한 명이 이마트 점보닭다리를 사줬고
민수가 갓 만든 생크림케잌을, 민영이가 손글씨 카드를
뭔가 유니크한 선물들이군
여기 안 오는 사람이 대부분이지만
그래도 고맙습니다☆
갓 전입했을 때는 신병이 왜 이렇게 말이 없냐 하다가도 말 많은 것보단 낫다는 말을 들었고
얼었던 입이 풀릴만한 짬이 됐을 때는 재미없다고 갈구는 고참이 없었다.
원래 잘 모르는 사람이랑 같이 있으면 말이 별로 없다.
친하지 않으니 공통된 애깃거리도 없고 사적인 얘기를 함부로 할 수도 없고
음악 뭐 좋아하세요 영화 뭐 보셨어요 이런 대화는 나중에 기억도 못할거면서 내가 지난달에 뭐봤더라 생각해내야 해서 귀찮다.
일부러 얘깃거리를 만들어서라도 친해져야 하는 사람도 없진 않지만 피곤하긴 마찬가지다.
그래서 문자나 메신저도 잘 안 한다. 내쪽에서 먼저 하는 일이 없으니까 몇 번 이어지다가도 금방 끊어진다.
그렇다고 얘기를 많이 할수록 친해지는건지는 모르겠다.
결국은 넘어갈 수 없는 벽이 있고 그 벽은 생각보다 금방 찾아온다.
보고 싶은 영화 있을 때 붙잡고 같이 갈 만하면 충분한 게 아닐까
하긴 어떤 사람들은 하도 오랫동안 연락을 안 해서 뜬금없이 보자고 하기엔 어색하기도 하다.
가끔은 재밌는 말을 많이 할 수 있었으면 좋겠다는 생각이 들기도 하는데
정작 그렇게 말할 수 있는 사람들을 보면 가벼워보인다. 말의 절반은 엄살과 호들갑이다.
그래서 드물지 않게 고민하지만 결론은 늘 같다. 지금 이대로가 가장 낫겠다.
얼었던 입이 풀릴만한 짬이 됐을 때는 재미없다고 갈구는 고참이 없었다.
원래 잘 모르는 사람이랑 같이 있으면 말이 별로 없다.
친하지 않으니 공통된 애깃거리도 없고 사적인 얘기를 함부로 할 수도 없고
음악 뭐 좋아하세요 영화 뭐 보셨어요 이런 대화는 나중에 기억도 못할거면서 내가 지난달에 뭐봤더라 생각해내야 해서 귀찮다.
일부러 얘깃거리를 만들어서라도 친해져야 하는 사람도 없진 않지만 피곤하긴 마찬가지다.
그래서 문자나 메신저도 잘 안 한다. 내쪽에서 먼저 하는 일이 없으니까 몇 번 이어지다가도 금방 끊어진다.
그렇다고 얘기를 많이 할수록 친해지는건지는 모르겠다.
결국은 넘어갈 수 없는 벽이 있고 그 벽은 생각보다 금방 찾아온다.
보고 싶은 영화 있을 때 붙잡고 같이 갈 만하면 충분한 게 아닐까
하긴 어떤 사람들은 하도 오랫동안 연락을 안 해서 뜬금없이 보자고 하기엔 어색하기도 하다.
가끔은 재밌는 말을 많이 할 수 있었으면 좋겠다는 생각이 들기도 하는데
정작 그렇게 말할 수 있는 사람들을 보면 가벼워보인다. 말의 절반은 엄살과 호들갑이다.
그래서 드물지 않게 고민하지만 결론은 늘 같다. 지금 이대로가 가장 낫겠다.
어제는 지은이누나랑 데이빗 란츠 내한공연을 봤다.
1시 반에 강남역에서 만나서 교보빌딩 소렌토에서 밥먹고
어반하이브 옆 카페베네에서 1시간쯤 있다가 지하철로 대림역까지 갔다.
공연장소가 구로아트밸리였는데 대림역에서 거리도 멀고 시간도 촉박하고 해서 택시를 잡았다.
근데 아저씨가 거기가 어딘질 몰라 -_- 나이가 많아서 지도 보여드려도 안보인다그러고
구로 토박이라는 사람한테 전화해서 물어봤는데 모르겠대
결국 입네비로 알려드리고 택시비 200원을 깎았다. 외진 곳은 아니었는데 골목 안쪽에 있어서 잘 모르는듯
또 재밌었던게 엘리베이터 타고 올라가는데 같이 타고 있던 아저씨가 자기 부인이랑 하는 말이
'끝나고 사인회 한다는데?' '사인 받게?' '누군지도 모르는데'
저기 아저씨 누군지도 모르는 사람 보려고 3만원씩 내고 온건가요 -_- 아니면 어디서 표를 받았나
사람들이 잘 모르는 장소에서 누구 공연인지 모르고 온 사람들이 청중인 공연이라니 좀 불안했다. 설마 한국에서 란츠옹 위상이 이정도인겅미
그래도 걱정만큼 나쁘지는 않았다. 애기들이 좀 떠들고 핸드폰소리가 좀 나긴 했지만 허용 범위 안이었다.
음향도 기대 이상으로 박력있게 들렸다. 이런게 지자체 시설이라니 우리나라 좀 잘 사는듯
한 가지 놀랐던 건 란츠옹이 영어로 농담을 했는데 사람들이 웃었어. 여러 마디 했는데 다 알아들은 것 같아
역시 한국의 공용어는 한국어와 영어인건가. 옛날에 한국에 처음 왔던 홍콩 친구가 한국도 홍콩처럼 영어를 쓰냐고 묻길래 WTH?이라고 해줬는데 지금은 그러지 못할 것 같다.
아 빼먹었는데 연주 자체야 두말할 나위없이 훌륭했습니다 ㅜㅜ 란느님(과 동료들)은 진리임
피아노+첼로+인디언플룻 트리오였는데 인디언플룻은 잉카댄스의 그 악기인 것 같았다. 생각보다 길었다.
그렇게 공연 다 보고 누나 사인받는 사진 찍어주고 헤어져서 나는 혜화역으로 갔다.
약속시간은 6시였는데 도착해보니까 8시가 좀 넘었다. 그때까지 호프집에 앉아서 새로 안주 시키고 있는 이 사람들 ㄷㄷ
오랜만에 보니까 논산의 정경이 눈앞에 펼쳐지는 것 같은 기분도 들었다.
'군생활 절반 기념 짠'같은것도 하고 군인 냄새 나는 얘기만 잔뜩 했던 것 같다.
기억나는 얘기로 그 중에 나이많은 형이 '여기 버튼이 있는데, 누르면 50%확률로 바로 전역하거나 아니면 논산부터 다시 시작해. 누를래 말래?'라는 화두를 던졌다.
나와 다른 한 명의 반응은 미치기 전엔 누르지 않는다,였는데 그 형은 '니들은 아직 어리잖아'라면서 자기는 누르겠단다.
여유가 없다는 그 말이 무척 슬펐다. 근데 지금 다시 생각해봐도 산술적으로 안 누르는 게 맞는 것 같아
그리곤 노래방에 가서 ****이나 **** 등등을 부르면서 난리를 좀 피다가 해산해서 막차타고 집으로 왔다. 일기끝
서울을 한바퀴 순회한 하루였다.
1시 반에 강남역에서 만나서 교보빌딩 소렌토에서 밥먹고
어반하이브 옆 카페베네에서 1시간쯤 있다가 지하철로 대림역까지 갔다.
공연장소가 구로아트밸리였는데 대림역에서 거리도 멀고 시간도 촉박하고 해서 택시를 잡았다.
근데 아저씨가 거기가 어딘질 몰라 -_- 나이가 많아서 지도 보여드려도 안보인다그러고
구로 토박이라는 사람한테 전화해서 물어봤는데 모르겠대
결국 입네비로 알려드리고 택시비 200원을 깎았다. 외진 곳은 아니었는데 골목 안쪽에 있어서 잘 모르는듯
또 재밌었던게 엘리베이터 타고 올라가는데 같이 타고 있던 아저씨가 자기 부인이랑 하는 말이
'끝나고 사인회 한다는데?' '사인 받게?' '누군지도 모르는데'
저기 아저씨 누군지도 모르는 사람 보려고 3만원씩 내고 온건가요 -_- 아니면 어디서 표를 받았나
사람들이 잘 모르는 장소에서 누구 공연인지 모르고 온 사람들이 청중인 공연이라니 좀 불안했다. 설마 한국에서 란츠옹 위상이 이정도인겅미
그래도 걱정만큼 나쁘지는 않았다. 애기들이 좀 떠들고 핸드폰소리가 좀 나긴 했지만 허용 범위 안이었다.
음향도 기대 이상으로 박력있게 들렸다. 이런게 지자체 시설이라니 우리나라 좀 잘 사는듯
한 가지 놀랐던 건 란츠옹이 영어로 농담을 했는데 사람들이 웃었어. 여러 마디 했는데 다 알아들은 것 같아
역시 한국의 공용어는 한국어와 영어인건가. 옛날에 한국에 처음 왔던 홍콩 친구가 한국도 홍콩처럼 영어를 쓰냐고 묻길래 WTH?이라고 해줬는데 지금은 그러지 못할 것 같다.
아 빼먹었는데 연주 자체야 두말할 나위없이 훌륭했습니다 ㅜㅜ 란느님(과 동료들)은 진리임
피아노+첼로+인디언플룻 트리오였는데 인디언플룻은 잉카댄스의 그 악기인 것 같았다. 생각보다 길었다.
그렇게 공연 다 보고 누나 사인받는 사진 찍어주고 헤어져서 나는 혜화역으로 갔다.
약속시간은 6시였는데 도착해보니까 8시가 좀 넘었다. 그때까지 호프집에 앉아서 새로 안주 시키고 있는 이 사람들 ㄷㄷ
오랜만에 보니까 논산의 정경이 눈앞에 펼쳐지는 것 같은 기분도 들었다.
'군생활 절반 기념 짠'같은것도 하고 군인 냄새 나는 얘기만 잔뜩 했던 것 같다.
기억나는 얘기로 그 중에 나이많은 형이 '여기 버튼이 있는데, 누르면 50%확률로 바로 전역하거나 아니면 논산부터 다시 시작해. 누를래 말래?'라는 화두를 던졌다.
나와 다른 한 명의 반응은 미치기 전엔 누르지 않는다,였는데 그 형은 '니들은 아직 어리잖아'라면서 자기는 누르겠단다.
여유가 없다는 그 말이 무척 슬펐다. 근데 지금 다시 생각해봐도 산술적으로 안 누르는 게 맞는 것 같아
그리곤 노래방에 가서 ****이나 **** 등등을 부르면서 난리를 좀 피다가 해산해서 막차타고 집으로 왔다. 일기끝
서울을 한바퀴 순회한 하루였다.
-
-
-
Y'Joon [2010/09/06 01:30] [댓글주소] [수정/삭제] [댓글쓰기]
지금까지 복무한 기간을 x(년)이라고 하면 기대값은 0.5(1.75 - x) + 0.5(-x) = 0.875 - x네
복무기간이 10.5개월 미만이면 누르는 게 더 이익
근데 솔직히 나 같음 안 누름 -
krw [2010/09/07 01:21] [댓글주소] [수정/삭제] [댓글쓰기]
유용준의 논리의 허점을 지적해보자
용준이의 논리에는 복무기간동안의 기대값(뭐의 기대값인진 모르겠지만 어쨌든 군 생활을 계속할지 안 할지를 결정하는 척도)이 군 복무기간 내내 일정하다는 가정을 해야만 성립하지
하지만 모두가 잘 알듯이 일병과 만년병장은 군대에서의 취급이 다르니까 용준이의 계산은 글러먹었어!
토요일에 대전에서 기모임이 있다길래
마침 쉬는날이군? 하며 오랜만에 학교도 가볼겸 내려갈 생각을 하고 있었다
근무 끝나자마자 빛의 속도로 옷갈아입고 짐챙겨서 퇴갤
3시 반 기차인데 버스타고 수원역 정류장에서 내린 게 28분이었다.
러시러시러시해서 플랫폼에 허헐떡헐떡헐덕허럳거헐더ㅓㄹㄸ하면서 들어가 보니
5분 연착 -_- 아 뻘쭘하다
달리면서 지나친 할머니가 조금 뒤에 천천히 걸어와서 같은 기차를 기다리는 게 보였다.
여튼 그렇게 기차타고 가는데
가만히 앉아서 가다보니 썩 그럴듯한 AR게임 아이디어가 생각나는 것이었다
마침 한중 인디게임 공모전 마감이 외박 마지막 날인 화요일이라는데
다른거 안 하고 개발만 하면 가능할 것도 같았다.
대전역에 도착할 때까지 아이디어를 좀더 다듬었다.
뭐냐면 스마트폰용 게임인데, 카메라 영상 위에 모기가 나타나고 그걸 터치하면 죽는 게임이다.
AR(증강현실)이므로 카메라가 움직이면 모기 그림도 같이 움직인다. 예를 들어 동쪽을 보고 있을 때 모기가 보였다면 카메라를 다른 곳으로 향했을 때는 안 보이다가 다시 동쪽을 보면 보인다는 뜻이다.
이런 식으로 플레이어를 중심으로 하는 구 위에 모기를 랜덤하게 뿌리면 플레이어는 모기를 잡기 위해 열심히 고개(와 핸드폰)를 들었다 내렸다 하며 빙글빙글 춤을 추게 된다. 그 꼴이 재밌어서 게임은 아니고 실제로 자기 주변에 모기가 날아다닌다는 착각을 주는 게 목적이다.
진행은 스테이지 구분이 있는 디펜스형 게임으로, 디펜스에 빠질 수 없는 무기 업그레이드는 맨손/전화번호부/에프킬라/파리채 정도로 생각했다. 나중에 에프킬라는 라이터를 추가해 화염방사기가 되었고 파리채는 뽀대를 위해 전기파리채가 되었다.
아이템도 생각해 보았는데 관련된 '아이템'이라고 할 만한 것들이 모기향, 전기 모기장(불켜놓으면 벌레들이 날아와서 딱 하는 소리를 내며 죽는 그거), 선풍기 같은 것이었다.
전부 모기를 쫓는 물건들이고 모기를 불러모으는 물건이라고 할 만한 것은 딱히 없는지라 밸런싱을 어떻게 해야 할지 고민이 되는 부분이었다.
그쯤 생각하니 대전역에 도착했다.
약속장소인 불돈생돈은 공지에서 보기엔 대전역 길 건너면 바로 있을 것처럼 보였는데
알고보니 길이 아니라 개천을 건너서 가야 하는 곳이었다. 헤매느라 약속시간보다 10분정도 늦었다.
기모임에서 별로 특별한 일은 없었다. 심포에서 내가 잃어버린 여행용 칫솔/치약을 용준이가 가져다주기로 했는데 못와서 좌절했고
의겸이랑 만나면 항상 그렇지만 카투사 드립만 치다가 적당히 나와서 기숙사로 갔다.
준범이 방에서 마작을 시작했는데 처음엔 무난하게 가는 것 같다가 쿠타와 현태에게 만관 한번씩 쏘이고 동장이 끝났다. 쿠이당 따위
역시 동남풍의 힘은 입대 전까지였구나 같은 생각을 하면서 짐을 챙겨 나왔다.
투즈랑 만나서 그래픽을 부탁하고
하제 동방에서 드디어 작업을 시작했다.
오리엔테이션 받아오는 부분은 간단했는데 이걸 기준으로 모기를 그리는 게 까다로웠다.
OpenGL 다뤄본지가 백만년인지라 -_- 고등학교 1학년때 텀프하면서 썼었고 작년에 인턴하면서 DX도 하긴 했는데
이건 모바일인지라 OpenGL ES라고 일종의 하향패치 버전을 쓰는 것이었다.
기껏 예제 찾았는데 PC에서 되는 함수가 ES에서 안된단 걸 알게되면 미친다 -_- 아 쓰면서도 빡침
원래 안드로이드에서 오리엔테이션을 받아오면 Rotation Matrix를 줘서 렌더링할때 그대로 곱해주면 되는데
OpenGL에 변환행렬이 들어가는 개념을 이해를 못해서
삽질끝에 축을 이리저리 바꾸다가(잘못된 접근이었지만) 어떻게 원하는대로 모기의 위치를 잡을 수 있게 되었다.
여기까지가 토요일 저녁~일요일 새벽까지의 진도였다. 5시쯤 도저히 못 버티겠어서 자고 9시에 다시 시작했다.
모기 그리는게 아직 끝난게 아닌 것이, 위치는 제대로 나오는데 모기를 그려놓은 평면이 한 방향만 바라보는 문제가 있었다.
그러니까 모기가 북쪽에 있을때는 제대로 보이는데, 동쪽으로 옮겨갈수록 그림을 옆에서 보는것처럼 가로길이가 삐딱하게 줄어들다가 정확히 동쪽에 있을 때는 안 보이게 된다는 얘기다.
위치벡터를 노말로 하도록 회전하면 될텐데, 그게 머리로는 분명히 아는데 구현하려니까 회전축을 정하는 것부터 헷갈리기 시작해서 삽질을 엄청나게 했다. 그간 선대를 등한시한 죄가 크다는 걸 뼈저리게 느꼈다.
그나마 게임 내부 로직에서 모기 위치를 정하기 위해서 극좌표를 쓰기 때문에 그 각도를 그대로 쓸 수 있었다. 이게 해결된 게 일요일 점심때였다.
앙각 회전을 먼저 하고 방위각 회전을 뒤에 해야 했고, 앙각 회전에서 회전축이 원의 법선이라서 삼각함수 계산을 했어야 했는데 이걸 빼먹은 바람에 삽질이 길어진 셈이었다.
아무튼 이제 어느 방향에서든 모기들(이라고 상상하는 더미 이미지들)이 나를 똑바로 바라보는 광경이 자못 흐뭇했다.
이제 엔진쪽에서 남은 문제가 두 가지였는데, 하나는 터치한 좌표를 가지고 터치 대상(모기)를 알아내는 것이고 또 하나는 이미지가 시선방향을 축으로 하는 회전에 영향을 받지 않도록 하는 것이었다.
무슨 말이냐면, 이제 모기가 위치와 방향은 제대로 나오지만 카메라를 고개 갸웃하듯이 돌렸을 때(롤링이라고 한다) 같이 돌아간다는 얘기다. 센서에서 주는 3차원의 회전행렬을 그대로 곱해놓고 따로 가지고 있는 2차원 좌표를 기준으로 보정해주는 식이라, 보정되지 않은 나머지 한 축에 대해서 일어나는 일이었다.
이게 문제가 되는 것이, 모기의 위치는 원래 게임 로직상 가지고 있는 정보라서 회전 보정에 쓸 수 있었는데 카메라의 롤링은 순전히 센서 입력으로만 알 수 있는 값이라 별도로 계산을 해줘야 한다는 점이었다.
게다가 센서에서 받아온 행렬을 GL에 넣기 위해 이상하게 삽질을 해놓은 까닭에 회전행렬에서 롤링 성분만 분리하질 못했다. 레퍼런스를 참고해서 정석대로 받아왔더니 이번엔 이미지 위치가 정상적으로 나오지 않았다.
해서 그 문제는 행렬 두 개를 따로 받도록 해서 지저분하지만 어쨌든 처리했다.
그런데 터치는 아무리 생각해도 빛이 보이지 않았다. 화면 좌표를 월드 좌표로 바꾸거나 거꾸로 하거나 해서 어느 쪽에서든 비교를 해야 하는데, 모델 변환(그림 내부의 좌표를 월드 좌표로 바꾸는 변환)은 알고 있지만 뷰포트 변환(월드 좌표를 화면 좌표로 바꾸는 변환)은 라이브러리가 알아서 하는 변환이라 따로 가져와야 했다.
ES가 정말 환장하는 것이 저 매트릭스(뿐만 아니라 다른 여러 변수도)를 받아올 수 없다는 점이었다.
안드로이드 예제중에는 ES의 저런 점을 보완하기 위해 라이브러리에 들어가는 모든 변환 연산을 저장해두는 wrapper class가 있는데, 그나마도 뷰포트 변환을 따로 가져오는 게 아니라 전체 변환이 곱해져 있는 행렬만 가져올 수 있었다.
어쨌든 결과적으로 원하는 건 그거였으므로 소스를 복붙해다가 전부 새 클래스 기준으로 고치고 실행을 해 보았는데, 신비롭게도 화면 좌표는 긴 축의 범위가 0~533인 반면 변환 행렬을 통해 나온 좌표는 -4 ~ +4인가 그랬다.
이게 -1~1도 아니고 대체 뭘 어떻게 하면 저따위 값이 나오는지 도무지 이해할 수가 없었다.
이해하기 위한 노력의 일환 같은 것으로 (사실 지푸라기라도 잡자는 심정이었고 잡히는 지푸라기가 이것밖에 없었다) 클릭한 화면 좌표와 반환되는 좌표를 엑셀에 넣고 실험 데이터 분석하듯이 추세식을 계산해 보았다.
1차함수로 깔끔하게 나오긴 했지만 뭔가 계수와 상수가 전혀 의미를 알 수 없는 값이었다. 어쨌든 인식은 잘 되었으므로 거기까지 해두고 쓰러져서 잠을 청했다.
여기까지가 월요일 아침 6시의 진행상황이다. 지난 밤에 투즈에게서 모기와 무기류 등 리소스 일부를 받았지만 실제로 적용할 곳이 있는 건 날아다니는 모기 이미지밖에 없었다.
그리고 역시 9시에 눈을 떠서 컴퓨터 앞에 앉았다. 그리고 고민을 시작했다.
사실 지난밤의 해결방법은 미봉책이라고 불러주기도 아까운 것이 화면 해상도가 바뀌면 분명히, 확실히 오작동할 방법이었기 때문이다.
실제로 어플이 전체화면 모드에서 돌아가도록 바꾼 게 이때였는데, 상단의 작업표시줄이 없어지기 때문에 어플이 사용하는 영역이 달라지게 된다.
이때 바꾸기 전과 바꾼 후에 1차함수의 계수들이 서로 달라지는 것을 확인할 수 있었다.
그러니 화면 해상도가 다른 기계에서는 말할 것도 없다. '480*800 해상도를 정확히 지원하는 기기에서만 실행해 주세요'같은 소리를 작품 설명서에 넣을 수는 없는 일이었다.
그리고 문제가 하나 더 있었는데, 화면에 보이지 않는 모기의 위치를 알려주는 화살표를 화면 가장자리에 띄워야 했다.
실제로 플레이해보니 작은 핸드폰 화면으로 좌우 360도 위아래 180도를 전부 훑는데도 시간이 많이 걸리는데다 고정되어 있는 것도 아니고 움직이는 모기를 그런 식으로 쫓는 건 불가능에 가까웠다. 그런 이유에서 남아있는 모기의 방향을 알려주는 화살표는 꼭 필요한 피처였다.
OpenGL을 사용하려니 지금껏 보았다시피 화면 좌표와 월드 좌표의 관계를 알 수 없었으므로 역시 타기종 지원 이슈가 되는데다 월드 좌표 무시하고 화면에 UI처럼 고정되어 있게 띄우려니 그것도 귀찮아서 차라리 레이어를 하나 더 만들고 GL없이 이미지뷰(2차원용 안드로이드 기본 지원 컨트롤러)로 뿌리는 게 나을 것 같았다.
협회에 전화해 보니 방문접수는 안 되고 퀵서비스는 가능하다고 했다. KTX로 올라가서 역에서 바로 퀵에 넘겨준다고 치고 남은 시간을 계산해보니 서류준비시간 등등 빼고 순수하게 개발에 쓸 수 있는 시간이 24시간 가량 남아있었다.
어차피 OpenGL로는 해상도 문제도 그렇고 꿈도 희망도 없는 상황이라 GL없이 전부 다 이미지뷰로 그리기로 결정했다.
토요일 밤부터 대략 36시간의 작업이 공으로 날아갔다. 소스 일부는 재활용했기에 완전히 무의미한 일은 아니었지만 지금 시작해서 제출 전까지 완성하는 페이스라면 처음부터 결정을 제대로 내렸을 경우 월요일 그 시간에 이미 어느 정도 돌아가는 게임을 확보했을 거란 생각에 자꾸 후회가 들었다.
그랬더라면 동아리 사람들에게 보여주며 밸런싱과 폴리싱도 하고 투즈가 못다 그린 리소스는 내가 도와서 빨리 끝낼 수도 있을 만 했다. 허투루 보낸 시간은 아니었지만 36시간이 그렇게 아쉬워 보기도 오랜만이었다.
어쨌든 24시간 안에 완성을 시켜야 하므로 처음 기획안에서 정말로 핵심 피처만 남겨놓고 나머지는 다 잘랐다. 하이스코어, 게임 설명, 크레딧이 제일 나중으로 미뤄졌고 아이템과 상점도 결국엔 잘랐다. 원래 돈을 모아서 사게 하려고 했던 무기는 레벨이 올라갈 때마다 자동으로 하나씩 해금되도록 바꿨다.
모기를 화면상의 제자리에 띄우는 문제는 사흘째 삽질한 경험이 있어서인지 금방 끝났다.
점심시간쯤에는 클릭도 제대로 받아오게 만들 수 있었다.
모기를 클릭하면 죽은 이미지로 바뀌고 1초동안 아래(월드 좌표에서 아래)쪽으로 떨어지며 투명해지게 만들었다.
그리고 저녁먹기 전에 화살표 띄우는 일이 끝났다.
화살표의 회전이 이상하게 되긴 했지만 회전대칭인 정삼각형 그림이라 별로 눈치채지 못할 것 같았고 위치만 정확하다면 플레이에 크게 영향을 주는 일은 아니라 그대로 뒀다.
이제 모기 위쪽의 UI레이어에 들어갈 무기 아이콘과 체력 게이지와 무기 선택 화면을 구현하고 스테이지 완료 화면과 전체적인 게임 시스템을 만들어야 했다.
무기 부분은 리소스 적용해서 돌려보았더니 엉뚱한 위치에 가 있는 문제가 나타났다. 끙끙대다가 리소스 대신 더미를 넣고 돌려보았더니 원하는 대로 나타나는 것을 볼 수 있었다. 투즈가 아이콘 주변에 투명한 마진을 너무 크게 준 것이 문제였다.
무기 선택 화면은 플레이중 손가락 두 개로 터치하면 게임이 일시정지되면서 나타나고, 손을 댄 상태에서 움직이면 무기 리스트를 좌우로 움직이며 볼 수 있고 손을 떼면 그 무기를 선택하도록 디자인했다. 리소스를 최소한으로 쓰면서 만들려다보니 이게 최선인 것 같았다.
그런데 '무기 리스트를 좌우로 움직이며' 이 부분이 문제였다.
기기마다 해상도가 다양하다보니 안드로이드의 화면 디자인은 절대좌표가 아닌 상대적인 위치를 기준으로 설계하도록 되어 있는데, 이걸 터치한 좌표에 따라 임의로 움직이려니 난관이 많았던 것이다.
사실 옛날 버전에서 쓰던 AbsoluteLayout이라는 레이아웃이 있어서, 웹에서 소스를 받아다가 직접 정의해놓고 사용할 수 있었다.(오픈소스인 안드로이드의 좋은 점) 이미 모기들은 전부 이 레이아웃으로 위치를 정해서 뿌려주고 있었다.
지금 생각해보니 무기 선택 화면도 그걸로 했으면 깔끔하게 됐을 것을 굳이 기본 레이아웃을 사용하려고 했던 게 잘못이었던 것 같다.
차분히 생각했으면 그게 더 낫다는 걸 알 수 있었겠지만 마음이 다급했다. 엉성하게나마 돌아가게끔만 만들어 놓고 다음 피처를 생각했다.
이때쯤에 택원이형이 동방에 자러 왔다가 내가 개발하는걸 보고 리소스를 만들어주겠다며 포토샵을 잡았다.
결국엔 쓰지 않게 된 모기향 애니메이션 두 장을 그려주곤 더 필요한 게 없냐셔서 투즈와 얘기해보고 스테이지 완료 화면을 부탁했다.
화면 리소스는 전부 통짜로 받았는데, 이러면 프로그래밍으로 입혀야 할 텍스트가 어디에 들어갈지 좌표를 잡아주기 힘들다.
포토샵으로 분할해서 넣어보니 해상도가 차이가 나는지 깨져버렸다.
결국 배경에 그림을 통째로 넣고 좌표는 하드코딩으로 넣어버렸는데, 지금 생각해보니 하드코딩을 하더라도 화면 크기를 받아와서 비율로 줬으면 그나마 나았을 것 같다.
여기까지 했을 때가 화요일 아침 6시였다. 개발 시한 6시간 전이다.
개발 부분에서 남은 문제는 공격을 받아도 체력 게이지가 줄지 않는 버그와(내부 로직에서는 줄음) 무기 선택 화면이 반쪽만 나오는 버그, 스코어가 계속 0으로 나오는 버그가 있었다. 크레딧도 만들어놓지 않긴 했는데 그냥 토스트 메세지(잠깐 나왔다 사라지는거)로 때웠다.
잠을 못 자서 제정신이 아니었던 관계로 정신을 좀 차려보고자 작업하던걸 잠시 놔두고 참가신청서와 작품소개서를 쓰기 시작했다. IT산업이 어쩌고 컨텐츠가 어쩌고 별 헛소리를 다 썼던 것 같은데 차마 다시 읽어볼 수가 없다. 그나마 한컴신의 도움으로 오타는 피할 수 있었다.
그리고 여태 신경을 못 쓰고 있었지만 소리는 반드시 들어가야 했다. 고등학교때부터 가지고 있던 음향효과 모음이 다행히도 남아있어서 배경음악은 못 넣어도 효과음은 적당히 낼 수 있었다. 이것도 왠지 버그가 있는 것 같았지만 아무튼 나온다는 사실에 의의를 두기로 했다.
아무튼 그렇게 대충 마무리해놓고 체력 게이지를 손봐서 제대로 고치니 12시 반이었다.
시간이 없어서 나머지는 고치지 못하고 그대로 컴파일했다. 가 아이콘이 안드로이드 기본 아이콘이어서 바꿔서 다시 컴파일했다. 가 배포용 컴파일 방법이 따로 있다는 사실을 알고 또 다시 컴파일해서 내 메일로 보내놓았다. 마음이 매우매우매우매우 초조해지기 시작했다.
참가신청서와 작품소개서를 6부씩 뽑는데 동방에 프린터와 풍부한 A4지가 있다는 게 그렇게 다행일 수가 없었다. 덤으로 스테플러도.
인쇄한 종이를 한부씩 스테플러로 찍는데 머리속에서 계속 '이런건 기차타고 가면서 해도 되는데 지금 급한건 동영상찍고 CD구워야 하는데 뭘 하고 있는거지' 하는 생각이 맴돌았다. 어쨌든 찍기는 다 찍어놓고 짐을 후다닥 챙겨서 나서는데 마침 하늘에서 비가 퍼붓기 시작했다.
한시라도 빨리 태울관 잡화점에 가서 공CD와 문서봉투를 사고 그 아래층 검우회 동방에서 캠코더를 가져다(전날밤에 ㅈㄱㅈ에게 얘기했었다) 영상을 찍어야 하는데 내리는게 비 아니라 소녀시대라도 신경쓸 계제가 아니었다. 나흘 내내 동방에서 사느라 제대로 씻지도 못했는데 차라리 잘됐다 싶었다.
검우회 동방부터 가 보니 캠코더는 없고 노란 서류봉투가 있었다. 내용물을 보니 작년 것이어서 봉투는 가지고 내용은 쌓여있는 서류들 위에 올려놓고 나왔다.
첫날 갔던 준범이 방에서 CD를 구울까 했는데 캠코더도 웹캠도 휴대폰 동영상촬영도 없단다. 호영이가 가지고 있을 것 같다는데 준범이방은 바동, 호영이방은 나동. 또 헐떡헐ㄸ거헐덕ㅎ럳 뛰어서 나동까지 갔다. 퍼붓던 비는 말짱하게 그쳐 있었다.
그런데 호영이도 캠이 아니라 휴대폰이래고 같은 나동에 있는 동아리 사람들(컴덕 1명 포함) 방에는 반드시 캠이나 비슷한 물건이 있을 것 같아서 거기로 갔다. 같은 공모전에 출품하는 진명이형이 디카를 가지고 있었고 재석이가 CD라이터 있는 노트북을 가지고 있었다. 이것은 한줄기 광명 젖과 꿀이 흐르는 방
기차 출발인 4시 15분까지 1시간 남은 때였다.
디카가 충전되길 기다리면서 기차표를 예매하고 퀵서비스를 예약했다.
서울역에 5시 10분 도착인데 6시까지 상암동에 가져다줄 수 있냐니까 시간이 촉박해서 기본요금보다 많이 나온다고 했다. 지금 내 나흘간의 영혼이 달린 일인데 그깟 돈 몇푼이 문젠가요 여섯자리만 아니면 이해해드립죠 하는 마음으로 OK를 외치고 끊었다.
이제 동영상을 찍어야 하는데 디카가 아직도 충전이 덜 되어서 켜자마자 꺼지는 상태였다. 게임 특성상 빙글빙글 돌면서 찍어야 하는지라 케이블을 연결해놓고 찍을 수도 없었다.
결국 진명이형 휴대폰으로 찍기로 하고 내가 게임 플레이를 하면 진명이형이 등 뒤에서 핸드폰으로 화면을 찍어주기로 했다.
내가 컴파일된 최종결과를 처음으로 확인한 게 이때였다. 왠지 리소스가 지금까지 보던 버전이랑 달라져 있고 잡지 못한 버그도 영 거슬렸지만 어쩔 수 없었다. 증강현실 게임인 탓에 동영상에는 미처 정리하지 못한 기숙사의 모습도 같이 들어갔는데 남자 둘이 딱 붙어서 빙글빙글 도는 모습은 나오지 않은 게 그나마 다행이라 하겠다.
휴대폰의 동영상 포맷은 다행히 따로 인코딩이 필요없는 mp4였다. 재석이 컴퓨터로 다 복사해서 굽는 동안 진명이형이 옆에서 체크리스트를 확인해 줬다. 작품소개서 말고 참가신청서는 6부씩이나 필요없다는 사실을 알게 되어 이면지 33장을 그 방에 기증했다. 덤으로 예비용으로 산 공CD 두장도 같이 기증해 드렸다.
펜을 빌려서 봉투 겉면에 받는사람 주소를 쓰고 CD에 팀 이름과 게임 제목을 쓰고 테이프도 빌려서 봉투를 봉인했다. 그러고보니 시간이 촉박한게 4시 45분이었다. 비도 왔는데 택시로 15분까지 대전역에 갈 수 있을지 걱정이었다.
봉인된 테이프와 우산 가방을 들고 정류장까지 마구 달려서 아저씨에게 15분 차니까 빨리 가달라고 했다.
가는날이 장날이라고 하상도로가 비때문에 다 막혀있었다. 덕분에 하상도로 옆의 1차선 도로는 카오스.
대전역을 3km쯤 남겨놓은 지점에서 발이 묶인 채 15분을 넘겨버렸다.
비 때문에 연착이라도 하길 바랐지만 20분이 넘어가면서는 그런 기대도 사라졌다. 무궁화도 아니고 KTX가 5분씩이나 연착을 할 리는 없는 것이다.
어지간히도 세상 포기한 표정을 짓고 있었는지 처음 탈 때부터 말 한 마디도 없던 아저씨가 '늦었지?'하고 물어봤다. '네'라고 대답하곤 더 할 말이 없었다.
이번 공모전에 내지 못하더라도 다듬어서 마켓에 올릴 수도 있을 것이다. 아니면 다른 공모전에 낼 수도 있을 것이다. 하지만 어떻게 생각해 보아도 아까운 마음이 사라지지는 않았다.
10분만 더 서둘렀더라면.
애초에 방향을 잘 잡았더라면. 아니면 아예 만들지 말고 실컷 놀기나 하다 왔더라면 억울하지는 않을텐데 하는 생각이 꼬리에 꼬리를 물었다.
대전역 앞에 도착하니 요금 10800원이 나왔다. 신호등이 켜져 있길래 11000원을 드리고 바로 횡단보도를 뛰어 건넜다.
지금 뛰어서 무슨 소용인지는 모르겠지만 어쨌든 뛰었다. 뛰지 않으면 또 억울할 것 같았다.
대합실에 올라가 보니 23분이었다. 타려던 차는 전광판에 보이지 않았지만 놀랍게도 서울 올라가는 KTX가 23분과 28분에 하나씩 있었다.
바로 발매기로 달려가서 28분 차를 선택했다. 5시 28분 도착으로 나온다. 6시 전에 도착은 못하겠지만 접수가 안되더라도 보내볼 수는 있을 것 같았다.
표값을 결제하려는데 출발시간이 가까워서 발권이 안 된단다. 다음 차는 한참 뒤에 있었고 그나마 바로 다음 차는 매진이었다.
어떻게든 저 차는 타야 하므로 일단 플랫폼으로 내려갔다. 기차는 아직 도착할 기미가 없었다.
계속 뛰어다녔더니 목이 말라서 편의점을 찾았다. 500ml 생수를 한입에 마시고 그 자리에서 기차를 기다렸다.
표 사서 유유자적하게 걸어왔어도 충분했겠는데 발매기 시간도 참 여유롭게 잡아놨구나 싶었다.
마침내 기차가 도착했는데 내가 서있는 자리가 특실 자리였다. 제일 늦게 타서 비어있던 맨 앞자리에 앉았다.
돈을 아예 안 내고 탄 것도 아니고 승무원이 뭐라고 하면 얘기 좀 해보자고 생각하면서 몸을 뒤로 기댔다.
그리고 눈을 떠 보니 기차는 광명역을 지나가고 있었다. 검사 안 한건가
아무튼 서울까지 올 수는 있어서 다행이었다. 게다가 도착예정시간인 5시28분보다 10분 가까이 빠른 20분에 도착한 게 감동이었다.
내리자마자 계단을 뛰어올라가서 약속장소인 시계탑으로 달려갔다. 생각보다 나이 들어 보이는 아저씨가 물건을 확인하고 돈을 받고 서류를 더플백(무려 그렇다. 더플백)에 집어넣었다.
'늦으실 줄 알았는데 딱 맞춰서 오셨네요'랬던가 그 비슷한 말을 들었다. 당연하죠 인생이(나흘어치) 걸린 일인데
결국 6시를 조금 넘겨서 들어간 것 같지만 어쨌든 접수는 되었다.
그리고 오늘은 간만에 실컷 잘 수 있었다.
써놓고보니까 엄청 기네
읽다가 중간에 스크롤 내렸대도 이해해주겠음
뭐 거창한 일은 아니지만 진인사대천명 같은 말도 생각나고
제노사이드 팀의 그 건드리면 터질 것 같던 모습도 이해가 될 것 같은 주말이었다.
투즈 밤새 그림그리느라 수고했고 같이 그림그려준 택원이형 밤늦게까지 지켜봐준 재석이 서류랑 동영상 마무리작업 도와준 구세주 진명이형 도와주려고 했던 준범이랑 호영이 캠코더 빌려주려고 했던 동현이 고맙습니다. 위에도 썼지만 크레딧도 Toast로 대충 때워버려서 스페셜땡스투까지는 못 넣었네요
버그투성이고 반쪽짜리지만 어쨌든 완성한 프로젝트고 나는 그 사실이 만족스럽다. 술과 마작과 페르소나는 물론 좋지만 가끔은, 자주 말고 가끔은 정줄 놓고 코딩하는 것도 나쁘진 않은 것 같다.
![]() | ![]() | ![]() |
<모기 잡기> 스크린샷, 팀 샘솟는새벽




