2008년 7월 26일 토요일

glGo + GNU Go - 혼자서도 즐길 수 있는 바둑 게임

glGo는 인터넷 바둑 서버(IGS:Internet Go Server) Pandanet에 접속해서 전세계의 아마추어 바둑 기사들과 바둑을 둘 수 있는 클라이언트 프로그램입니다. Python, OpenGL, wxWidgets 등을 사용해서 만들어진 이 프로그램은 2D 뿐만 아니라 3D 게임 화면까지 지원하기 때문에 좀더 실감나는 바둑판을 제공합니다. 또한 SGF(Smart Go Format) 형식의 기보 보기 및 편집 기능을 내장하고 있어서 다른 사람들의 대국을 감상하고 연구하는 데에도 큰 도움이 됩니다. - SGF 형식의 기보 파일은 바둑 포털 사이트 등에서 유료 혹은 무료로 구할 수 있다고 합니다.

그리고, GTP(Go Text Protocol)를 지원하기만 하면 어떤 프로그램과도 연결이 가능하기 때문에 GNU Go 인공지능 플레이어와 대결하는 것도 가능합니다. 저를 비롯한 바둑 초보분들이 혼자서 연습할 때 도움이 되지 않을까 싶네요. 사실, 이 글의 핵심이 바로 그것입니다.

자, 그러면 본론으로 들어가서 glGo와 GNU Go를 사용해 혼자 즐기는 바둑의 세계로 들어가봅시다.

가장 먼저 glGo와 GNU Go를 준비해야 합니다.
  1. glGo 다운로드 하기
    glGo는 공식홈페이지에서 다양한 시스템용 바이너리 패키지를 구할 수 있습니다.
    LINK: glGo 다운로드 페이지
  2. GNU Go 다운로드 하기
    GNU Go는 공식홈페이지에서 소스 형태로 직접 내려 받을 수 있고, 미리 빌드된 바이너리에 대한 링크도 제공됩니다.
    LINK: GNU Go 다운로드 페이지
    편의를 위해 제가 미리 만들어둔 Windows용 바이너리를 링크합니다. (3.8.0 안정 버전의 binary를 새로 build하여 링크했습니다. -- 2010.12.19)
    LINK: GNU Go 3.8.0 Win32 binary(DropBox)
    LINK: GNU Go 3.8.0 Win32 binary(MediaFire)
    LINK: GNU Go 3.8.0 Win32 binary(SkyDrive)

    3.9.1 개발 버전 바이너리도 링크합니다. -- 2011.03.10
    LINK: GNU Go 3.9.1 Win32 binary(DropBox)
    LINK: GNU Go 3.9.1 Win32 binary(MediaFire)
    LINK: GNU Go 3.9.1 Win32 binary(SkyDrive)
두 프로그램이 준비되었으면 glGo를 먼저 설치한 다음, GNU Go 실행 파일을 glGo가 설치된 폴더에 복사해넣습니다. (꼭 glGo가 설치된 폴더가 아니라도 상관은 없습니다.) 그런 다음 glGo의 설정(Preferences) 다이얼로그에서 GNU Go 실행파일이 위치한 경로를 지정해줍니다.


(glGo의 Preferences에서 GNU Go 경로를 설정해준다.)

자 이제 모든 준비가 끝났습니다. 'Play GNU Go' 버튼을 눌러서 GNU Go와 대국을 시작할 수 있습니다.


(glGo에서 Play GNU Go를 눌러준다.)


(대국에 대한 상세 설정을 해준다.)


(3D 바둑판에서 GNU Go와 대국 한판)

아주 쉽고 단순한 내용에 그림 좀 넣었더니 생각보다 글이 길어졌습니다. 아무튼 이렇게 해서 심심풀이 바둑을 혼자 즐길 수 있는 방법에 대한 소개가 끝이 났습니다. :)

덧.
저는 바둑을 못둡니다. 잘 못두는 것이 아니라 아예 못둡니다. 바둑 클라이언트에 대한 글을 쓰는 것 자체가 아이러니죠. 하지만, 바둑을 배우고 싶다는 생각은 아주 오래전부터 가지고 있었습니다. 바둑의 완전기초부터 차근히 잘 가르쳐주는 곳 어디 없을까요?

댓글 15개:

  1. GNU GO를 즐기다가, 우연히 구글링을 통해 찾아왔습니다.
    저는 정식 릴리즈된 GNU GO 3.6을 즐기고 있습니다만, 게시글을 보니 3.7.10을 컴파일하여 사용하셨더군요. 저도 지난달(11월)에 올라온 3.7.11을 빌드해보려 시도는 해봤지만 생각보다 잘 안되더군요.
    혹시 3.7.10을 빌드한 방법을 좀 배울 수 있을까요? 아니면, 3.7.11을 바이너리로 올려주셔도 좋구요.

    부탁 드리겠습니다. 감사합니다.

    답글삭제
  2. 안녕하세요. 반갑습니다.

    GNU Go 3.7.11 버전이 나온 줄은 알고 있었는데, 게으름이 하늘을 찔러 여태 새로 build 하지 않고 있었네요. ^^;

    새로 build한 3.7.11 버전의 binary를 링크해두었습니다. (본문 내용 수정)
    유용하게 사용하셨으면 합니다.

    감사합니다.
    좋은 하루 되세요. ^^

    답글삭제
  3. 아.. 그리고, Visual C++를 사용해서 GNU Go를 build 하려면 잔손이 제법 가는데, 제 경우 cygwin을 사용해서 간단하게 build 할 수 있었습니다.
    cygwin을 사용한다고 하더라도 cygwin의 emulation run-time이 별도로 필요하지 않도록 -mno-cygwin 옵션을 주기 때문에 binary 실행에 cygwin1.dll 등이 추가로 필요하거나 하지는 않습니다.

    답글삭제
  4. 이렇게 빨리 답변을 받아볼 수 있을지 생각도 못했습니다. 감사합니다.
    저는 GNU GO 만 가지고 놀았었는데, glGO의 소개를 보고 qGO을 설치해보았습니다.(비슷하면서도 각각의 특징들이 다르더군요.)
    좋은 하루 되시기 바랍니다.

    (저도 바둑을 배워보려고만 하는 1人 입니다. ^^;)

    답글삭제
  5. 과장님님 잘 지내세요? 여기히 블로그 관리는 열심히 하시네요 ^^
    그냥 함 놀러 와봤네요
    진주 와 보니까 너무 좋네요
    제가 그래도 경력은 아주 아주 짧지만
    직장 2군데 인데 프로그래머로 대우는 여기 진주가 최고네요. 아침/점심/저녁 모두 제공 기숙사(에어콘,TV,런닝머신,물세,전기세 공짜 관리비제로,쌀 무한리필 등),통근용 승용차 지원,출출할때 먹으라고 사발면 등, 너무 좋아요 사장님이 프로그래머 대우 너무 좋게 해줘서 미안할정도로라서 열심히 해야겠어요. 회사에서도 22인치+19인치 모니터 듀얼로 작업하고 기숙사에서 똑같이 22인치+19인치 듀얼 모니터로 설치해주셨어요. 너무 하루하루가 꿈만 같아요. 사장 나이가 25살이라서 모든게 파격적입니다. 작업 툴은 닷넷 2005로 쓰는데 윈도우 프로그래밍도 해 보고 싶었던 종목이라서 돈주고 하라는데 할만 하구요 ㅋ
    전 잘 지내고 있으니 걱정마세요! ㅋ 과장님도 잘지내시고요!

    답글삭제
  6. 모과이// 음.. 서울 간다고 들었던 것 같은데 진주였군요. 새 직장이 대우도 좋고 조건도 좋다니 다행입니다. 건강하게 잘 지내시고 종종 연락 주세요~ ^^

    답글삭제
  7. 대단히 감사합니다
    상세하게 설명해주셔서 감사.
    한참을 찾고 돌아다녔거든요

    열심히 바둑 두겠습니다

    답글삭제
  8. 안녕하세요. 작년 말에 덧글을 남기고 다시 남겨봅니다.
    지난 덧글에서 3.7.11 버전을 컴파일 부탁했었는데, 이번에는 3.7.12를 이미 빌드하여 올려두셨더군요.
    정말 감사합니다.
    가끔 블로그의 다른 내용들도 재미있게 보고 있습니다.
    좋은 하루 되세요

    답글삭제
  9. 안녕하세요? 홈페이지에 보니까. 3.7.13버젼도 있던데.. 이건 어찌하는 건가요?? 방법좀 부탁드립니다.

    답글삭제
  10. 이성민// 안녕하세요. 찾아주셔서 감사합니다. ^^
    GNU Go 소스는 cygwin(http://www.cygwin.com)을 설치하고 gcc 관련 패키지를 추가하시면 별 어려움 없이 바로 빌드가 가능합니다. cygwin 설치나 gcc 패키지 추가 등은 인터넷 검색에서 쉽게 찾으실 수 있을 겁니다. ^^;
    우선은 3.7.13 버전을 빌드한 실행 파일 올려 두었습니다.
    좋은 하루 되세요~

    답글삭제
  11. 위 댓글 중 소스에서 빌드하는 방법을 보충하면 이렇습니다. (gnugo 3.7.13 버전 기준이지만 이후 다른 버전도 크게 다르지 않을 겁니다.)

    1. gnugo-3.7.13.tar.gz 소스를 다운로드합니다.
    2. cygwin shell을 실행해서 다음과 같이 명령을 실행하고 빌드가 끝나길 기다립니다.

    tar zxvf gnugo-3.7.13.tar.gz
    cd gnugo-3.7.13
    env CC='gcc -mno-cygwin' ./configure
    make

    3. interface 폴더 아래에 gnugo.exe 실행 파일이 생성되어 있는 것을 확인할 수 있습니다.

    더 자세한 내용은 소스에 포함된 WINDOWS 파일을 읽어보시면 됩니다.

    답글삭제
  12. 너무 감사합니다. 좋은 하루되세요...

    답글삭제
  13. 안녕하세요? 지난번 올려주신 건고 3.7.13 로 잘 두고 있습니다. 그런데... 이번에 건고에서 또 업그레이드가 있었네요.. 3. 8. 선생님께서 가르쳐 주신 방법으로 열심히 해봤는데...도무지.... 죄송하지만 다시한번 올려 주심 안될까요? ㅎㅎ 너무 염치가 없네요.. 좋은 하루되세요

    답글삭제
  14. 이성민// 안녕하세요. 또 들러주셨네요. :)
    3.8 정식 버전이 출시됐다는 소식 정말 반갑습니다. 얼른 빌드해서 바이너리 만들어볼까 했는데, 홈페이지에 가보니 이미 빌드된 바이너리를 제공하는 링크가 있었습니다. ;) 그것도 다양한 버전으로...
    아래 사이트 방문해보시면 3.8 버전 정식 바이너리 받으실 수 있을 겁니다.
    http://gnugo.baduk.org/
    아마 개발 버전 업데이트가 있기 전까지는 이 바이너리를 쓰시는 편이 더 성능이 좋지 않을까 생각됩니다.
    좋은 하루 되세요~

    답글삭제
  15. 감사합니다. 항상 건강하시고.. 자주 방문하겠습니다.

    답글삭제