RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'게임프로그래밍'에 해당되는 글 1
2007/11/30  합격축하 자뻑쇼  (6)
결과는 나왔고 기적적으로(!!) 입사가 결정되었기에 한달여간의 긴장과 피곤함, 걱정들을 훌훌 털어버리고 '역사적인' 이 날을 기념하기 위한 포스팅에 들어간다. 나중에 시간이 지나고 이때를 기억하면서 감동도 받고, 용기도 얻기위해 최대한 자세하게 글을 써야겠다.

이름하야 자뻑쇼.


1. 주제 선정


사용자 삽입 이미지

주제 고르기


전에도 잠깐 언급한적이 있었으나 1번과 3번은 이미 알고 있는 내용에다가 주제 자체가 내용이 그리 많지 않고 시각적으로 PT하기에도 화려(?)하지 않다고 결론을 내려서 선택하지 않았다.

5번, 7번은 서버 프로그래밍 쪽에서 더 관심을 가질만한 주제라 생각하여 아주 배제시켰고, 4번은 화려한 결과물이 기대되는 반면에 주어진 시간 안에 끝낼 수 있을 것이란 확신이 없었다.

결국 A*와 테트리스 중에서 고민을 하게 되었는데 테트리스를 가만히 뜯어서 생각해보니 블록 충돌처리도 해야하고, Graphic API도 실시간으로 다뤄야하고(어렵진 않지), 게임만 구현하는게 아니라 인공지능 모드까지 포함하라는 압박이 있었기에 이름만 들어서 알고 있었던 A* 알고리즘을 선택하게 되었다.

아래가 A*를 공부하기 위해 참고했던 책의 리스트다.

사용자 삽입 이미지

레퍼런스



이외에도 자잘하게 참고한 책이 많이 있지만 생략하고, 주로 참고한 책이 저 정도였다. 전에도 한번 이야기했었지만 당장 못 보더라도 책은 사놓길 정말 잘했다는 생각이 들었다. 특별히 인터넷을 찾아서 헤매지 않고서도 많은 정보를 모을 수 있어서 아주 쾌적한 기분이었다.



2. 파워포인트

이번에 만든 파워포인트는 내용자체의 디자인에도 많은 고민을했지만 애니메이션 쪽으로 더 비중을 두고 만들었다. 이놈의 인생에는 파워포인트 작업이 왜 이렇게 많이 들러붙나 저주하던(?) 삶이었건만 결국은 이런식으로 도움이 되어서 뿌듯했다.

사용자 삽입 이미지

파워포인트 스샷


한 3일은 PPT 작업에만 죽자고 매달렸었다. 다 만들고나서 통계를 확인해보니

총 편집 시간 : 1252분.

ㅎㄷㄷㄷ 그러면 1252 / 60 = 20.87(시간)
진짜 오랫동안 만들기는 만들었다. 50페이지짜리 PPT 만드는데 21시간. 늠흐 빡신거 아니냐~ JCE! ㅋㅋ

디자인 자체가 이쁘다는 생각은 별로 안들지만 애니메이션이 재밌게 '반짝'하고 나온게 많아서 마음에 드는 결과물이라고 스스로 생각한다.

아래 파일은 PPT 작업 파일. (프레젠테이션 쇼 파일이라고 하지만 파워포인트 프로그램으로 열면 똑같이 수정작업 가능하다. ㅋㅋㅋ)

Astar.pps

프레젠테이션 쇼




3. 실제 프로그램

사용자 삽입 이미지

최종 결과물 프로그램.


내가 이놈 만든 생각하면 진짜. ㅠ_ㅠ
지금껏 만들었던 어떤 프로그램보다도 내 자식같이 여겨지는 프로그램. 닷넷에는 통계내주는 기능이 있는지 모르겠지만, 이것도 통계한번 내보면 진짜 장난아니게 시간 나올텐데. ㅋㅋ

파일수 8개에 다 합쳐야 1500라인 조금 덜되는 양인데 그렇게 많은 코딩량은 아닌듯하나, 이 안에 녹아있는 나의 고민과 삽질의 흔적들은 어찌 이루말할수가 있으리오. ㅠ_ㅠ
진짜 이건 생각만해도 눈물 줄줄흐른다. ㅋㅋㅋ

하루만에 대충해보면 C#으로 할 수 있지 않을까 싶어서 하루버리고, 그러면 MFC는 가능한가 싶어서 찝적이다 하루버리고 했던 일이 제일 기억에 남는다. ㅋㅋㅋㅋ

타일에 알파블랜딩 먹일꺼라고 이리저리 삽질했던 기억도 새록새록.
무엇보다 지존은 STL에서 priority_queue 정렬하는 문제때문에 애먹었던 기억이다.
안되나 싶어서 vector로 짜보기도 하고 queue로 짜보기도 했던...
결국 정답은 msdn 라이브러리가 알려주었다. ㅋㅋ


아래 두 파일을 다운 받고 PathFinding.exe 파일을 실행시키면 위 프로그램이 실행됨. ㅋㅋ

default.txt

지도 파일

PathFinding.exe

실행 프로그램



간단하게 있는 기능을 정리해보자면

1. A* 알고리즘을 이용한 기본길 찾기.
2. 간단한 맵 에디트 기능. (타일 종류별로 깔고 지우고)
3. 최대탐색수 제한 모드
4. 휴리스틱 가중치 변경 모드
5. 간단한 파일 로딩/저장
6. 맵 비우기 기능(제대로 작동안함 ㅋ)


진짜 별거 없는 프로그램이지만 나는 이거 만드느라 10년은 늙었었다.
그래도 지금 생각해보면 정말 많이 배웠다. STL, Windows API 등등 복습한번 제대로 빡시게 했다.

소스코드는 용량도 크고, 압축하기도 귀찮고하니 보고 싶은 사람이 '혹시나'있음 따로 연락주시길. ㅋㅋㅋ



4. 기타

이번 면접에 가면서 무엇을 더하면 사랑받을 수 있을까 고민하다가 유인물을 만들어가기로 했다. PPT 파일을 그대로 프린트해가는 것은 의미가 없다 싶어서 책쓰는 마음으로 처음부터 끝까지 새로 썼다. 12페이지 정도가 나왔다. 유인물 쓰는데 그날 밤부터 새벽까지 꼬박 걸렸던 기억이 난다.

어쨌든 소방서 생활하면서 보고 배운 것중에 또 하나 쓸만한것이 있었던 것이다.

결국 면접보러가서 잠깐 대기시간에 유인물을 먼저 나누어 드렸는데 다들 그거 진지하게 보시더라. 만들어가길 잘한듯.



유인물 쓰면서 전체 내용에 대해서 머릿속으로 체계적인 정리를 할 수 있어서 매우 좋았다(물론 번거롭고 디지게 귀찮았지만). 실제로 유인물 쓰는 중에 발표자료의 논리적 허점을 발견하고 부랴부랴 소스랑 PPT 고쳤던 생각도 난다.



5. 결전의 날

결국 2주간 수업한번 안들어가고(자랑이냐;;;), 감기로 식은땀 흘려가면서 어지럼증때매 계속 빙빙돌던 상태로 올인한 결과물을 들고 면접을 보러갔다. 발표노트를 따로 작성하고 PPT를 넘겨가면서 열심히 연습을하고 갔음에도 발표하는건 정말 떨리더라.

면접관 4명에 나혼자 서있는 압박감이란. 캬캬.

그래도 내용숙지가 완벽하게 되어있어서 계획대로 발표하는데는 무리가 없었다. 그렇지만 발표 중간중간, 끝나고서 쏟아지던 논리적 허점을 찌르는 질문에는 정말 많이 당황했었다. 식은땀 제대로 흘리고 나온 날이었다.

PPT만 이쁘게 꾸며가면 사랑받을 줄 알았는데 아니었다.
내용의 논리적 결함을 지적하고, 그것을 바탕으로한 새로운 아이디어를 물어오는데 대처하느라 완전 힘뺐다.
전에 일기쓴대로 면접갔다와서도 제대로 못한 답변들 때문에 머릿속에서 계속 맴돌 정도로 인상깊은(?) 질문들이 많았다.



어쨌든 이 죽을 고생을 다하고 합격 통보를 받았다.
그제서야 몸이 추욱 늘어지면서 긴장감이 다 풀렸다.
그리고 스스로에게 수고했다고 칭찬해주었다.

살면서 처음으로 100% 최선을 다했다고 스스로 만족해보았다.
만약에 떨어졌더라도 무덤덤하게 그대로 받아들였을것이다.
그만큼 내 상황에서는 더 잘할 수 없다고 생각될만큼 내가 가진건 모두 꺼내보였다.

즐거운 경험이었다. :)
2007/11/30 22:01 2007/11/30 22:01
lunstar:달리자
달리자
전체 (880)
내가 쓴 글 (796)
주제별 이야기 (59)
GhostX (1)
사진첩 (7)
Project Suwonsung (2)
동영상 (2)
Programing (0)
아이폰 개발 (11)
«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
  1. 2011/03 (1)
  2. 2011/02 (2)
  3. 2011/01 (3)
  4. 2010/12 (3)
  5. 2010/11 (3)
  6. 2010/10 (3)
  7. 2010/09 (5)
  8. 2010/08 (6)
  9. 2010/07 (6)
  10. 2010/06 (11)
  11. 2010/05 (12)
  12. 2010/04 (13)
  13. 2010/03 (16)
  14. 2010/02 (13)
  15. 2010/01 (11)
  16. 2009/12 (11)
  17. 2009/11 (20)
  18. 2009/10 (11)
  19. 2009/09 (8)
  20. 2009/08 (10)
  21. 2009/07 (11)
  22. 2009/06 (10)
  23. 2009/05 (10)
  24. 2009/04 (8)
  25. 2009/03 (10)
  26. 2009/02 (9)
  27. 2009/01 (14)
  28. 2008/12 (13)
  29. 2008/11 (10)
  30. 2008/10 (11)
  31. 2008/09 (4)
  32. 2008/08 (8)
  33. 2008/07 (12)
  34. 2008/06 (16)
  35. 2008/05 (15)
  36. 2008/04 (18)
  37. 2008/03 (14)
  38. 2008/02 (9)
  39. 2008/01 (14)
  40. 2007/12 (13)
  41. 2007/11 (12)
  42. 2007/10 (16)
  43. 2007/09 (16)
  44. 2007/08 (20)
  45. 2007/07 (18)
  46. 2007/06 (16)
  47. 2007/05 (22)
  48. 2007/04 (24)
  49. 2007/03 (30)
  50. 2007/02 (19)
  51. 2007/01 (32)
  52. 2006/12 (26)
  53. 2006/11 (23)
  54. 2006/10 (27)
  55. 2006/09 (31)
  56. 2006/08 (18)
  57. 2006/07 (39)
  58. 2006/06 (33)
  59. 2006/05 (25)
  60. 2006/04 (34)
  61. 2006/03 (2)

RSS News

RSS News Change