컴퓨터에 관심이 많은 학생들이 흔히들 프로그래머가 되고 싶다고 합니다. <div>주로 게임을 하면서 컴퓨터를 자주 접해서 그런것 같아요.</div> <div><br></div> <div>저도 물론 그랬습니다. 하루에 10~18시간 정도밖에 게임 안했으니 중독은 아니였지만요.</div> <div>방학때 3개월 동안 외출을 안하고 집에서 게임만 했는데, 제 인생중에 가장 행복했던 시간 같습니다.</div> <div>돈 많이 벌어서 다시 그렇게 사는게 제 꿈입니다.</div> <div><br></div> <div>게임을 하면서 이런 생각을 꾸준히 했습니다.<span style="font-size:9pt;line-height:1.5;"> '꼭 나중에 컴퓨터로 뭔가를 하는 직업을 갖고 싶다 !'</span></div> <div>하지만 노력은 하지 않았습니다. 학교 수업 따라 가기에도 바빴고, 게임할 시간도 부족했으니깐요 ^^v</div> <div>(현실적이쥬?)</div> <div><br></div> <div>그렇게 게임에 푹 빠져 행복한 하루 하루를 지내고 있을때 '사건'이 터졌습니다.</div> <div>전 탄트라 온라인과 데카론이란 게임을 했었습니다. 한 2004~5년쯤 되는것 같네요. (헐.. 10년전?)</div> <div>문제는 그때 당시 '오토'라는것이 막 생겨나기 시작했다는 것입니다.</div> <div>물론 그 전부터 게임마다 오토는 많았던것 같은데, 체계적이고 특화된 그런 오토들은 많지 않았거든요.</div> <div>그냥 메크로 수준으로 일정 시간마다 마우스를 클릭 해준다던가 하는 그런것들이 전부였습니다.</div> <div><br></div> <div>그런데 데카론용 전용 오토가 나온것입니다. 그것도 유료로... 매월 오천원이였나? (엄청 비싸쥬?)</div> <div>당시 점심으로 맥도날드 햄버거를 먹을까 말까 문앞에서 10번 고민하다가 제일 싼 치즈버거 세트를 시켜먹었던 가난한 대학생이였는데.</div> <div>매월 오천원은 저에겐 상상도 할 수 없는 사치였습니다.</div> <div><br></div> <div>그런데 문제는 운영진들이 그 오토 유저들을 그냥 놔뒀다는 겁니다.</div> <div>데카론은 자동 물약이라는 캐쉬템이 있었는데 그걸 오토 유저들이 산다네요. 오토 돌리면서 물약 자동으로 먹으라고. 헐...</div> <div>그래서 고랩들은 너도 나도 암묵적으로 오토를 돌리곤 했습니다.</div> <div><br></div> <div>너무 화가 난 저는 오토를 만들기로 했습니다. (세상이 썪었다면 그 썪은 세상에 적응 해주겠다 !)</div> <div>막상 프로그램을 공부해서 하려니... 이게 너무 복잡합니다 (내맘 같지가 않아 ㅠㅠ 또르르)...</div> <div>C는 뭐고 C++는 뭐고... C 에 ++가 붙으면 예전 버젼인 C 는 없어져야 되는거 아녀? JAVA? 뭐가 이리 많고 복잡해 ~</div> <div><br></div> <div>이리 저리 알아보다가 그나마 쉬운 JAVA로 만들기로 했습니다.</div> <div>(사족: JAVA는 프로그램에(예: 데카론) 해킹식으로 접근해서 키보드나 마우스 값을 보내는 것이 아니고, JVM이라는 가상 머신이 처리를 하기 때문에 키보드를 직접 누르는것과 같은 효과를 낸다는 자료를 찾았습니다. 그래서인지 그 당시 (지금도 있나유?) 게임마다 깔아야 했던 nProtect가 잡지를 못했죠)</div> <div><br></div> <div>인터넷에 자료는 널렸으니 일단 자바를 할 수 있게 해주는 프로그램을 설치하고, <span style="font-size:9pt;line-height:1.5;">하나 하나 쉬운 예제부터 해보았습니다.</span></div> <div>제가 만든 프로그램("Hello World")이 컴퓨터에서 돌아가는것을 보고 너무 신기하고 재미있는 나머지 JAVA 입문서를 한 권 구입했습니다.</div> <div>그리고는 깨달았죠...</div> <div>아...</div> <div>...</div> <div>디게 복잡하네.</div> <div>바로 덮었습니다.</div> <div>이걸 다 공부하고 이해하다가는 내 케릭터가 점점 뒤쳐질것만 같았습니다.</div> <div>프로그램 공부 보다는 게임이 더 중요했습니다.</div> <div><br></div> <div>그리고는 제가 만들고자 하는 프로그램에 필요한 기능만 찾아서 공부하기 시작했습니다.</div> <div>그러다 보니 UI가 만들어지고,</div> <div>스크린샷을 할 수있게 되고,</div> <div>마우스, 키보드 값을 내보낼수 있게 되었습니다.</div> <div><br></div> <div>주위에 프로그래머는 아무도 없었기에 오토의 원리 같은건 몰랐습니다.</div> <div>그냥 사람이라면 어떻게 할까? 라는 생각으로 만든것이지요.</div> <div><br></div> <div>기능1> 회복 물약 먹기</div> <div><div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201506/1434587482uMK4eour6i.jpg" width="150" height="24" alt="Untitled.jpg" style="border:none;"></div>사람 눈과 똑같이 빨간색이 어느정도 내려가면 물약 버튼을 누르는 것입니다.</div> <div>게임내 저 부분만 스크린샷을 찍습니다.</div> <div>맨 왼쪽과 오른쪽의 좌표를 저장해서 %로 인식합니다.</div> <div>빨간색의 rgb 값을 인식해서 색이 변경되면 (피가 닳으면) 물약을 먹습니다.</div> <div>피가 30% 내려가면 1번, 급작스런 공격으로 50% 이하로 내려가면 2번 큰 물약. 뭐 이런식이지요.</div> <div><br></div> <div>기능2> 몬스터 공격하기</div> <div>가까운몹 타겟팅하는 키를 누른뒤 공격스킬을 누릅니다. 스킬마다 쿨타임 계산해서 누르는 시간을 조정했습니다.</div> <div><br></div> <div>기능3> 멀리갔을때 원래 자리로 돌아오기</div> <div><div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201506/1434587777tpZoKyuXG66ZW7HocAXAJ.jpg" width="109" height="31" alt="Untitled2.jpg" style="border:none;"></div>좌표가 저렇게 있으면 이걸 원래는 프로그램이 인식을 해야되는데... 전 해킹이나 클라이언트(게임)에서 정보를 직접 빼오는건 못하니 수작업을 합니다.</div> <div>숫자 하나하나 네모칸을 칩니다.</div> <div>그리고 네모 안 숫자의 하얀 부분을 아래와 같이 인식합니다.</div> <div>xox</div> <div>xox</div> <div>xox</div> <div>동그란 부분만 보면 1이지요?</div> <div>배경과 숫자의 흰 글씨 부분을 찾아서 이게 무슨 숫자인지 인식하는 것이지요.</div> <div>그래서 원래 좌표에서 왼쪽으로 멀리갔다 싶으면 키보드 이동키를 눌러서 돌아오는식 입니다.</div> <div><br></div> <div>기능4> 혼잣말하기</div> <div>아무래도 사람이 게임 하는것 보다 부자연스럽습니다. 혹여 지나가는 다른 유저들이 이상하게 생각할까봐 주기적으로 혼잣말을 합니다.</div> <div>랜덤한 시간차를 두고 엔터키 누르고...</div> <div>"아오 몹 디게 안나오네"</div> <div>"안녕하세요 ~"</div> <div>"에고 졸려"</div> <div>뭐 이런 거지요 ^^;</div> <div><br></div> <div>어느 정도 오토의 기능을 하게 되었습니다.</div> <div>하지만 오토가 점차 사람이 되고자 하는 욕심은 끝이 없고, 케릭터의 레벨은 알아서 잘만 올라갑니다...</div> <div>추가 기능들이 생깁니다.</div> <div><br></div> <div>기능5> 누가 날 죽이면..</div> <div>내 피가 0이 되어서 죽으면 채팅을 합니다.</div> <div>나 (오토): "뭐죠?"</div> <div>유저: 헐, 님 오토인줄 알고 죽였어요</div> <div>나 (오토): "..."</div> <div>...</div> <div>이정도만 합니다.</div> <div>그래야 다음에 또 같은 장소에 있을때 따라와서 죽이지 않으니깐요.</div> <div><br></div> <div>그런데 글을 쓰면서 점점 제가 나쁜 사람 같네요. 오토 만든 얘기만 하니까...;;</div> <div>아무에게도 안주고 저만 쓰다가 조용히 접었다고 핑계를 대봐도...;; ㅠㅠ</div> <div>일단 쓴거 끝까지 갑니다.</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">어느새 시간이 흘러 직장인이 되었습니다. (데카론 운영진은 뭐했나 몰라... 진짜 한참을 했는데 경고 한번 없었뜸, 내가 캐쉬 물약 사서 그런가? @.@)</span></div> <div>아침에 출근 할때 켜놓고 나갔다가 퇴근 후 돌아오면 가끔 죽어있는 경우가 있었습니다.</div> <div><span style="font-size:9pt;line-height:1.5;">언제 죽었는지, 왜 죽었는지 궁금했습니다.</span></div> <div>그래서 또 기능을 추가했습니다.</div> <div><br></div> <div>기능6> 서버 & 클라이언트 통신</div> <div>모니터링 기능을 넣었습니다.</div> <div>회사에 클라이언트 프로그램을 만들고 무슨일이 있으면 로그나 스크린샷이 전송되게 하였습니다.</div> <div><br></div> <div>그 외 뭐 자잘한 기능들이 있었지만...</div> <div>점차 완벽해져가는 프로그램과는 반비례로 게임 자체의 흥미는 떨어졌습니다. 나중에는 내가 뭐 하는가 싶기도 하더라고요...</div> <div><br></div> <div>아무튼, 게임과 프로그래밍 둘다 즐기다 보니. 어느새 자바의 꽤 많은 부분까지 공부하게 되었습니다.</div> <div><br></div> <div><br></div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">물론 컴퓨터 쪽으로 제대로 취업을 생각하신다면 이정도로는 택도 없지요. 체계적으로 배워야 되고 기본기도 탄탄해야 되니까요.</span></div> <div><br></div> <div>제 글의 요점은, 무엇보다 재미있게 즐겁게 해보시라는 겁니다.</div> <div>무리하게 크게 계획을 세워서 하다 보면 쭉쭉느는 실력을 체감하실수 있으실꺼에요.</div> <div>그러다가 정말 재미있고 내 인생을 걸어볼만 하다고 생각이 드시면 더 깊고 넓게 파시면 된다고 생각합니다.</div> <div><br></div> <div><br></div> <div>긴 글 읽어주셔서 감사합니다.</div> <div><br></div> <div>이상 일하기 싫은 회계사 였습니다.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.