 |
Robocode 포럼 운영자 김호중 님 |
 |


김호중 , e-INTEGRATION 과장
e-INTEGRATION, Software Engineering Team |
|
안녕하십니까?
로보코드 포럼 운영자 김호중입니다.
올해로 3회를 맞이하는 로보코드 코리아 컵에 대한 여러분의 관심에 감사드리며, 여러분께 무적 로봇만들기 Tip을 알려드립니다.
1) 로보코드 소개
로보코드란 학생 또는 일반 개발자들이 게임을 통하여 자바를 좀더 쉽게 접하고 배울수 있도록
고안된 일종의 프로그래밍 게임입니다.
처음에는 Mathew Nelson 이라는 개발자가 개인적인 재미로 시작했다가, 2001년 7월 IBM의 alphaWorks에
다운로드 페이지가 생기고 난 후 전세계적으로 선풍적인 인기를 끌게 되었습니다. 그리고, 이듬해인
2002년 4 ~ 8월에 로보코드 세계 대회가 개최 되었죠.
이러한 인기에 힘입어, 우리 나라에서도 한국 IBM에서 2003년과 2004년도 로보코드 코리아 컵을
개최하면서 많은 인기를 얻었으며, 올해에는 [로보코드 코리아 컵 2006]을 개최하게 되었습니다.
현재 로보코드는 오픈소스화 되어 SourceForge.net에서
오픈소스 프로젝트로서 전세계 개발자들로 부터 지속적인 사랑을 받고 있습니다.
2) 로보코드 제작 방식 및 원리 소개
로보코드는 실행에 필요한 설치 파일 및 사용되는 자바 클래스들이 이미 구현되어있으며, 관련된 문서가 Javadoc 형태로 이미 제공이 되고 있습니다.(로보코드가 설치된 디렉토리 아래에 javadoc 이라는 디렉토리를 찾아 보시면 자세히 나와 있습니다.)
로보코드 개발자는 이러한 자바 클래스 및 메소드들을 가지고 자신이 원하는 알고리즘을 구현만 하면 됩니다.
이렇게 개발된 탱크모양의 로봇을 전투장에서 다른 로봇들과 대전시키면서 대전 과정 및 결과를 지켜 보고,
알고리즘의 개선사항이 있으면 소스를 수정하여 다시 대전을 시키게 됩니다. 이러한 과정중에 개발자는
자연스럽게 자바와 알고리즘 실력이 향상되게 되며, 덤으로 게임의 재미까지 느낄 수 가 있는 것입니다.
3) 간단 제작 방법 안내 / 쉽게 하는 법 안내
로보코드를 처음 시작하는것은 어렵지 않습니다.
일단 자신의 PC 에 자바를 먼저 설치하신 후에 로보코드 홈페이지에서 로보코드 실행파일을 다운받아
매뉴얼 대로 설치 하시면 됩니다. 설치 및 샘플로봇 제작 매뉴얼도 로보코드 홈페이지에 쉽고 자세하게
나와 있으니 참고하시면 됩니다.
4) 무적 로보코드를 만드는 비법 공개
로보코드를 만들기는 쉽습니다.
하지만...... 모든 일이 다 그렇듯이 잘 만드는 건 개인의 노력이 들어가야 되는 부분입니다.
대부분 처음에는 '와 ~ 재미있겠다!' 싶어 로보코드 설치파일을 다운로드 받아 PC 에 설치 해보고 샘플로봇까지 테스트 하는 동안에는 '나도 잘 만들어서 우승을 해 봐야지! " 하고 생각 합니다. 이후 역대 수상자들의 로봇을 다운받아서 대전 시켜 보면 그 신기한 움직임과 공격기법에 재미가 두배 로 올라 가죠. ^^
그러다가, 막상 수상자들의 로봇 소스코드를 들여다 보면..... T.T
그 요묘하고 신비로운 알고리즘의 세계에 겁을 먹고 포기 하시는 분들이 종종 계시는 것 같습니다.
하지만, 그러한 이유 때문에 시작도 하기 전에 포기하면 되겠습니까?
여기 몇 가지 도움이 될만한 정보를 드립니다.
로보코드의 핵심 알고리즘은 Movement 와 Targeting, 이렇게 크게 2가지로 나누어 집니다.
'어떻게 하면 적이 쏜 총알을 잘 피할 수 있을까?'에 대한 알고리즘이 Movement 이고,
'어떻게 하면 적의 움직임을 잘 예상해서 맞출 수 있을까?' 에 대한 알고리즘이 Targeting 입니다.
이러한 Movement 와 Targeting 알고리즘에 대해 가장 잘 나와 있는 곳이 Wikipedia Robocode입니다. 이 사이트에 나와있는 정보를 잘 분석해 보시면 우승자들의 소스코드가 그리 어렵지 만은 않으실 겁니다. 역대 수상자들이 사용한 알고리즘들이 대부분 이 범위 안에 있으니까요.
또한, IBM developerWorks의 Secrets from the Robocode masters에도 유용한 알고리즘들이 많이 나와 있으니 참고 하시면 많은 도움이 될 겁니다.
여러분이 지금 로보코드를 막 시작하는 단계에 있으시다면 "천리길도 한걸음 부터!" 라는 우리 속담이 있듯이
다음과 같이 해보시면 어떻까요?
[무적 로보코드 개발 단계]
- 로보코드 매뉴얼을 무작정 따라하여 자신만의 로봇을 만들어 본다.
- 설치 디렉토리 밑에 있는 로보코드 javadoc 디렉토리의 클래스 및 메소드 정의서를 보며 로봇을 자신의 의도에 맞게 코딩 및 테스트 해 본다.
- 샘플로 제공되는 로봇들의 움직임을 살펴보며 따라 해 본다.
- Wikipedia Robocode와
IBM developerWorks의 Secrets from the Robocode masters에 마련되어 있는 알고리즘 자료들을 분석한 후 어느 정도 숙지 한다.
- 역대 수상자들의 로봇들을 다운받아 소스코드를 분석 한다. (1회,
2회)
- 자신만의 보다 개선된 알고리즘을 탑재한 로봇을 제작한다.
5) 로보코드 포럼 운영자로서 개발자분들에게 전하고 싶은 말
제 개인적인 생각으로 로보코드는 자바와 게임의 접목이라는 것 이외에, 추가적으로 국내 대학생들이나 개발자들에게 '내가 과연 개발시 알고리즘에 대해 얼마나 고민하는가?' 라는 질문을 던지는 것 같습니다.
요즘 같이 소프트웨어 개발이 쉽게 자동화된 툴을 통해 이루어 지고, 프레임웍을 사용하여 개발되는 환경에서 알고리즘에 대해 고민하는 기회는 실력 있는 소수의 개발자들에게만 주어지게 마련입니다.
그러다 보면 차츰 개발자의 실력이 툴을 따라가게 되고 나중에는 실력도 항상 제자리를 지키게 되는 것 같습니다.
이러한 환경에서 로보코드는 잠시나마 자바를 이용하여 게임 알고리즘을 구현 함으로서 우리의 두뇌가 살아있다는
것을 느끼게 해주기에 충분한 존재 인것 같습니다.
아무쪼록, 로보코드를 통하여 개발자로서 보다 많은 재미를 느끼고, 더불어 실력 있는 개발자로 거듭날 수 있는 기회가 되었으면 합니다.
로봇을 만들다가 궁금하거나 도움이 필요하면 언제든 로보코드 포럼에 문의주세요.
감사합니다.
[로보 코드 관련 자료]
로보코드 포럼 가기
포럼 운영자 소개 페이지 가기

[ 포럼존 가기 ]
|
 |
!-->!-->!-->!-->!-->
|
 |