게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
취미겸 겸사겸사 프로그래머가 되는 방법
게시물ID : programmer_11383짧은주소 복사하기
작성자 : 바르고착하게
추천 : 4
조회수 : 1069회
댓글수 : 7개
등록시간 : 2015/06/18 10:23:31
컴퓨터에 관심이 많은 학생들이 흔히들 프로그래머가 되고 싶다고 합니다.
주로 게임을 하면서 컴퓨터를 자주 접해서 그런것 같아요.

저도 물론 그랬습니다. 하루에 10~18시간 정도밖에 게임 안했으니 중독은 아니였지만요.
방학때 3개월 동안 외출을 안하고 집에서 게임만 했는데, 제 인생중에 가장 행복했던 시간 같습니다.
돈 많이 벌어서 다시 그렇게 사는게 제 꿈입니다.

게임을 하면서 이런 생각을 꾸준히 했습니다. '꼭 나중에 컴퓨터로 뭔가를 하는 직업을 갖고 싶다 !'
하지만 노력은 하지 않았습니다. 학교 수업 따라 가기에도 바빴고, 게임할 시간도 부족했으니깐요 ^^v
(현실적이쥬?)

그렇게 게임에 푹 빠져 행복한 하루 하루를 지내고 있을때 '사건'이 터졌습니다.
전 탄트라 온라인과 데카론이란 게임을 했었습니다. 한 2004~5년쯤 되는것 같네요. (헐.. 10년전?)
문제는 그때 당시 '오토'라는것이 막 생겨나기 시작했다는 것입니다.
물론 그 전부터 게임마다 오토는 많았던것 같은데, 체계적이고 특화된 그런 오토들은 많지 않았거든요.
그냥 메크로 수준으로 일정 시간마다 마우스를 클릭 해준다던가 하는 그런것들이 전부였습니다.

그런데 데카론용 전용 오토가 나온것입니다. 그것도 유료로... 매월 오천원이였나? (엄청 비싸쥬?)
당시 점심으로 맥도날드 햄버거를 먹을까 말까 문앞에서 10번 고민하다가 제일 싼 치즈버거 세트를 시켜먹었던 가난한 대학생이였는데.
매월 오천원은 저에겐 상상도 할 수 없는 사치였습니다.

그런데 문제는 운영진들이 그 오토 유저들을 그냥 놔뒀다는 겁니다.
데카론은 자동 물약이라는 캐쉬템이 있었는데 그걸 오토 유저들이 산다네요. 오토 돌리면서 물약 자동으로 먹으라고. 헐...
그래서 고랩들은 너도 나도 암묵적으로 오토를 돌리곤 했습니다.

너무 화가 난 저는 오토를 만들기로 했습니다. (세상이 썪었다면 그 썪은 세상에 적응 해주겠다 !)
막상 프로그램을 공부해서 하려니... 이게 너무 복잡합니다 (내맘 같지가 않아 ㅠㅠ 또르르)...
C는 뭐고 C++는 뭐고... C 에 ++가 붙으면 예전 버젼인 C 는 없어져야 되는거 아녀? JAVA? 뭐가 이리 많고 복잡해 ~

이리 저리 알아보다가 그나마 쉬운 JAVA로 만들기로 했습니다.
(사족: JAVA는 프로그램에(예: 데카론) 해킹식으로 접근해서 키보드나 마우스 값을 보내는 것이 아니고, JVM이라는 가상 머신이 처리를 하기 때문에 키보드를 직접 누르는것과 같은 효과를 낸다는 자료를 찾았습니다. 그래서인지 그 당시 (지금도 있나유?) 게임마다 깔아야 했던 nProtect가 잡지를 못했죠)

인터넷에 자료는 널렸으니 일단 자바를 할 수 있게 해주는 프로그램을 설치하고, 하나 하나 쉬운 예제부터 해보았습니다.
제가 만든 프로그램("Hello World")이 컴퓨터에서 돌아가는것을 보고 너무 신기하고 재미있는 나머지 JAVA 입문서를 한 권 구입했습니다.
그리고는 깨달았죠...
아...
...
디게 복잡하네.
바로 덮었습니다.
이걸 다 공부하고 이해하다가는 내 케릭터가 점점 뒤쳐질것만 같았습니다.
프로그램 공부 보다는 게임이 더 중요했습니다.

그리고는 제가 만들고자 하는 프로그램에 필요한 기능만 찾아서 공부하기 시작했습니다.
그러다 보니 UI가 만들어지고,
스크린샷을 할 수있게 되고,
마우스, 키보드 값을 내보낼수 있게 되었습니다.

주위에 프로그래머는 아무도 없었기에 오토의 원리 같은건 몰랐습니다.
그냥 사람이라면 어떻게 할까? 라는 생각으로 만든것이지요.

기능1> 회복 물약 먹기
Untitled.jpg
사람 눈과 똑같이 빨간색이 어느정도 내려가면 물약 버튼을 누르는 것입니다.
게임내 저 부분만 스크린샷을 찍습니다.
맨 왼쪽과 오른쪽의 좌표를 저장해서 %로 인식합니다.
빨간색의 rgb 값을 인식해서 색이 변경되면 (피가 닳으면) 물약을 먹습니다.
피가 30% 내려가면 1번, 급작스런 공격으로 50% 이하로 내려가면 2번 큰 물약. 뭐 이런식이지요.

기능2> 몬스터 공격하기
가까운몹 타겟팅하는 키를 누른뒤 공격스킬을 누릅니다. 스킬마다 쿨타임 계산해서 누르는 시간을 조정했습니다.

기능3> 멀리갔을때 원래 자리로 돌아오기
Untitled2.jpg
좌표가 저렇게 있으면 이걸 원래는 프로그램이 인식을 해야되는데... 전 해킹이나 클라이언트(게임)에서 정보를 직접 빼오는건 못하니 수작업을 합니다.
숫자 하나하나 네모칸을 칩니다.
그리고 네모 안 숫자의 하얀 부분을 아래와 같이 인식합니다.
xox
xox
xox
동그란 부분만 보면 1이지요?
배경과 숫자의 흰 글씨 부분을 찾아서 이게 무슨 숫자인지 인식하는 것이지요.
그래서 원래 좌표에서 왼쪽으로 멀리갔다 싶으면 키보드 이동키를 눌러서 돌아오는식 입니다.

기능4> 혼잣말하기
아무래도 사람이 게임 하는것 보다 부자연스럽습니다. 혹여 지나가는 다른 유저들이 이상하게 생각할까봐 주기적으로 혼잣말을 합니다.
랜덤한 시간차를 두고 엔터키 누르고...
"아오 몹 디게 안나오네"
"안녕하세요 ~"
"에고 졸려"
뭐 이런 거지요 ^^;

어느 정도 오토의 기능을 하게 되었습니다.
하지만 오토가 점차 사람이 되고자 하는 욕심은 끝이 없고, 케릭터의 레벨은 알아서 잘만 올라갑니다...
추가 기능들이 생깁니다.

기능5> 누가 날 죽이면..
내 피가 0이 되어서 죽으면 채팅을 합니다.
나 (오토): "뭐죠?"
유저: 헐, 님 오토인줄 알고 죽였어요
나 (오토): "..."
...
이정도만 합니다.
그래야 다음에 또 같은 장소에 있을때 따라와서 죽이지 않으니깐요.

그런데 글을 쓰면서 점점 제가 나쁜 사람 같네요. 오토 만든 얘기만 하니까...;;
아무에게도 안주고 저만 쓰다가 조용히 접었다고 핑계를 대봐도...;; ㅠㅠ
일단 쓴거 끝까지 갑니다.

어느새 시간이 흘러 직장인이 되었습니다. (데카론 운영진은 뭐했나 몰라... 진짜 한참을 했는데 경고 한번 없었뜸, 내가 캐쉬 물약 사서 그런가? @.@)
아침에 출근 할때 켜놓고 나갔다가 퇴근 후 돌아오면 가끔 죽어있는 경우가 있었습니다.
언제 죽었는지, 왜 죽었는지 궁금했습니다.
그래서 또 기능을 추가했습니다.

기능6> 서버 & 클라이언트 통신
모니터링 기능을 넣었습니다.
회사에 클라이언트 프로그램을 만들고 무슨일이 있으면 로그나 스크린샷이 전송되게 하였습니다.

그 외 뭐 자잘한 기능들이 있었지만...
점차 완벽해져가는 프로그램과는 반비례로 게임 자체의 흥미는 떨어졌습니다. 나중에는 내가 뭐 하는가 싶기도 하더라고요...

아무튼, 게임과 프로그래밍 둘다 즐기다 보니. 어느새 자바의 꽤 많은 부분까지 공부하게 되었습니다.



물론 컴퓨터 쪽으로 제대로 취업을 생각하신다면 이정도로는 택도 없지요. 체계적으로 배워야 되고 기본기도 탄탄해야 되니까요.

제 글의 요점은, 무엇보다 재미있게 즐겁게 해보시라는 겁니다.
무리하게 크게 계획을 세워서 하다 보면 쭉쭉느는 실력을 체감하실수 있으실꺼에요.
그러다가 정말 재미있고 내 인생을 걸어볼만 하다고 생각이 드시면 더 깊고 넓게 파시면 된다고 생각합니다.


긴 글 읽어주셔서 감사합니다.

이상 일하기 싫은 회계사 였습니다.
출처 일하기 싫은 나
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호