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와 대국 한판)

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

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

2008년 7월 15일 화요일

SBCL 1.0.18 Win32 Binary Installer

SBCLCLISP과 함께 꽤 많은 분들이 사용하고 계시는 Open-source Common Lisp 구현체 중 하나입니다. 비교적 개발이 활발히 이루어지고 있고, 다양한 플랫폼용으로 포팅되어 있는 것이 특징입니다. 완벽하진 않지만 Windows용으로도 포팅이 되어 있습니다. 사용하는 데에 큰 지장이 없는 수준이죠.

한 가지 아쉬운 점이 있다면 새 버전의 소스가 발표된 이후 Windows용 binary가 가장 늦게 나온다는 것입니다. 그래서, SBCL Internals 페이지에 나와 있는 Windows binary build 방법을 보고 직접 Windows용 binary를 만들게 되었습니다.

제가 build 해둔 binary는 다음 링크에서 다운로드 하실 수 있습니다.

LINK: http://kaisyu.ohpy.com/99779/27
LINK: https://code.google.com/p/sbcl-for-windows/

참고.

1.0.12 버전 이후부터는 아래의 메모리 관련 오류에 대한 패치를 기본으로 반영하여 설치 패키지를 만들었습니다. 그러므로 별도로 패치를 해주실 필요가 없습니다.
- 2007.11.29

특정 시스템에서 다음과 같은 오류를 내며 제대로 실행되지 않는 경우가 있습니다.
VirtualAlloc: 0x1e7.
ensure_space: failed to validate 536870912 bytes at 0x09000000
(hint: Try "ulimit -a"; maybe you should increase memory limits.)
이 문제를 해결하기 위해 heap과 stack 크기를 수정한 패치 실행 파일도 다운로드 페이지에 함께 올려두었습니다. (패치 방법은 이곳에서 참고했습니다.) Installer를 사용해서 설치한 이후 제대로 실행이 안되고 위와 같은 오류가 뜨면 패치된 실행 파일을 받아서 SBCL이 설치된 곳에 덮어 쓰시면 됩니다. Installer 설치만으로 오류 없이 잘 실행이 된다면 굳이 패치된 실행 파일을 사용하실 필요가 없습니다. 패치가 설치 패키지 내에 기본으로 반영되었습니다.

공개되어 있는 소스를 그대로 build한 것이므로 저는 이 설치 binary에 대해 어떠한 권리도 가지고 있지 않습니다. 또한 이 설치 binary에 대해 어떠한 보장도 해드리지 않습니다.