맨위로가기

스마트 게임 포맷

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

스마트 게임 포맷(SGF)은 다양한 보드 게임의 정보를 저장하기 위해 개발된 텍스트 기반의 파일 형식이다. 1987년 안더스 키에룰프에 의해 처음 제안되었으며, 이후 여러 차례 사양 개정을 거쳐 FF[4]가 널리 사용되고 있다. SGF 파일은 속성 및 속성 값 쌍으로 구성되며, 흑돌 추가, 백돌 추가, 주석, 게임 결과 등 다양한 정보를 포함한다. 현재 바둑, 체스, 오목 등 40여 가지의 게임을 지원하며, 게임 종류는 GM 속성으로 구분된다.

더 읽어볼만한 페이지

  • 파일 포맷 - 바로 가기
    바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다.
  • 파일 포맷 - EXE
    EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
스마트 게임 포맷 - [IT 관련 정보]에 관한 문서
기본 정보
유형마크업 텍스트
컨테이너 대상바둑 기록
공개 여부
URLSmart Game Format 공식 웹사이트
기술 정보
확장자.sgf
개발자안데르스 키에룰프 (1987, FF1), 마틴 뮐러 (1993, FF3), 아르노 홀로시 (1997, FF4)
출시1987년
최신 버전4
최신 버전 출시일1997년

2. 역사

SGF의 첫 번째 버전인 FF[1]은 1987년 안더스 키에룰프(Anders Kierulf영어)에 의해 구상되었으며, 그의 박사 학위 논문 부록 A에 해당한다.[5] 1993년 마르틴 뮐러(Martin Müllerde)가 SGF 사양을 정리하여 제3판(FF[3])을 발표했다.[12] 현재 SGF 버전은 아르노 홀로시(Arno Holloside)의 FF[4]이며, 대부분의 최신 SGF 리더에서 지원된다. FF[2]는 공개된 적이 없으며, 이 형식은 오픈 콘텐츠 라이선스에 따라 게시되었다.

1987년 SGF는 Smart Go Board영어의 저자이기도 한 안더스 키에룰프에 의해 제안되었다.[8] 당시 컴퓨터 바둑의 표준으로 제안되었지만 널리 받아들여지지 않아, 1990년 발표된 그의 박사 학위 논문에 Smart Go Board영어용 파일 형식 사양서를 부록으로 넣었다.[8][9] 이 1987년/1990년판이 제1판(FF[1])이며, 바둑, 오셀로, 체스, 나인 멘 모리스의 4종류 게임을 지원했다.[10]

1993년 마르틴 뮐러는 SGF 사양을 정리하여 제3판(FF[3])을 발표했고,[12] 오목, 렌주, 샹치, 쇼기를 더한 7종류의 게임을 지원했다(사양에서는 오목과 렌주가 동일하게 취급됨).[11] 1997년 아르노 홀로시는 제3판에 새로운 기능을 추가한 제4판(FF[4])을 발표했다.[12]

1999년 제5판(FF[5]) 제정을 위한 논의가 시작되었지만 정식 발표되지는 못했다.[13] 2002년 XML을 채택하는 XGF 포맷(XML Game Format영어)이 제안되었으나,[14] 역시 널리 채택되지 않았다.

3. 구조 및 형식

SGF 파일은 각 게임의 특징을 설명하는 속성 및 속성 값 쌍으로 구성된다.[1] 이러한 속성에는 게임 정보, 플레이어 정보, 규칙 등이 포함된다.

SGF는 텍스트 기반의 데이터 형식을 채택하고, 게임 정보 저장에 트리 구조 표현을 사용한다.[16] 이 트리 구조에서는 세미콜론(;)으로 부모 노드와 자식 노드를 구분하고, 반각 괄호(())로 형제 노드의 그룹을 표기한다.[16] 또한, 노드에는 `속성명[속성값]`의 형태로 속성이 지정된다.[16]

변형은 괄호 안에 중첩되며, 일반적으로 문자가 할당된다. 첫 번째 분기(변형 A)가 주요 분기이다.[2] 이 표기법은 뉴윅 형식에서 비롯되었다.

SGF에서 사용되는 태그의 내용에 대해서는 엄격한 검사가 이루어지지 않으므로, 예를 들어 결과 태그에 어떤 텍스트든 넣을 수 있다.

3. 1. 데이터 형식

SGF는 텍스트 기반의 데이터 형식을 채택하며, 게임 정보의 저장에 트리 구조 표현을 사용한다.[16] 이 트리 구조에서는 세미콜론(;)으로 부모 노드와 자식 노드를 구분하고, 반각 괄호(())로 형제 노드의 그룹을 표기한다.[16] 각 노드는 `속성명[속성값]`의 형태로 속성을 지정할 수 있다.[16]

SGF 파일은 각 게임의 특징을 설명하는 속성 및 속성 값 쌍으로 구성된다.[1] 속성명은 대문자 알파벳으로만 정의되어 있으며, 노드에서 지정할 때는 순서에 관계없이 지정할 수 있다.[16] 속성은 루트(SGF 버전(FF), 게임 종류(GM) 등 루트 노드에서만 지정 가능), 게임 정보(흑번과 백번 플레이어 명(PB, PW), (KM) 등 한 국면당 정보), 셋업(처음부터 놓인 흑돌과 백돌(AB, AW) 등, 첫 국면을 나타내는 정보), 착수(흑번의 착수(B), 백번의 착수(W) 등), 기타(코멘트(C), 악수(BM) 등)로 크게 분류된다.[15][16]

주요 프로퍼티[15]
프로퍼티명종류프로퍼티 값 예시설명
FF루트 프로퍼티4SGF의 버전
GM루트 프로퍼티1게임 종류(#대응 보드 게임 참조)
CA루트 프로퍼티UTF-8문자 세트
AP루트 프로퍼티CGoban:1.6.2애플리케이션 이름과 버전
SZ루트 프로퍼티19, 9:10게임 보드의 크기
DT게임 정보2020-09-21대국 날짜
EV게임 정보ABC 토너먼트대회명
HA게임 정보2접바둑돌의 수 (바둑 전용 프로퍼티)
KM게임 정보5.5 (바둑 전용 프로퍼티)
PB게임 정보田中흑번 플레이어 명
PW게임 정보佐藤백번 플레이어 명
RE게임 정보W+0.5대국 결과
RU게임 정보Japanese적용 규칙
TM게임 정보3600제한 시간
AB셋업cc처음부터 놓인 흑돌
AW셋업dd처음부터 놓인 백돌
PL셋업W순서
B착수 프로퍼티cc흑번의 착수
W착수 프로퍼티dd백번의 착수
BM착수 프로퍼티악수
IT착수 프로퍼티묘수
TE착수 프로퍼티
C기타これはコメントです。코멘트



다음은 SGF 파일에서 사용되는 속성들의 일부이다.[1]

속성설명
AB흑돌 추가: 첫 번째 수 전에 보드에 놓을 흑돌의 위치
AW백돌 추가: 첫 번째 수 전에 보드에 놓을 백돌의 위치
AN주석: 게임에 코멘트를 다는 사람의 이름.
AP애플리케이션: SGF 파일을 생성하는 데 사용된 애플리케이션(예: CGOban2, ...).
B속성 값으로 지정된 위치에서 흑의 수.
BR흑의 기력: 흑색 플레이어의 기력.
BT흑 팀: 흑 팀의 이름.
C코멘트: 주석.
CP저작권: 저작권 정보.
DT날짜: 게임의 날짜.
EV이벤트: 이벤트의 이름(예: 제58기 본인방 타이틀 매치).
FF파일 형식: 이 SGF 파일을 관리하는 SGF 사양의 버전.
GM게임: 이 SGF 파일로 표시되는 게임의 유형. 속성 값 1은 바둑을 나타낸다.
GN게임 이름: 게임 기록의 이름.
HA접바둑: 흑에게 주어진 접바둑 돌의 수. 접바둑 돌의 배치는 AB 속성을 사용하여 설정된다.
KM덤.
ON포석: 오프닝에 대한 정보(포석), 파일에서 거의 사용되지 않음.
OT초읽기: 초읽기 시스템.
PB흑의 이름: 흑색 플레이어의 이름.
PC장소: 게임이 진행된 장소(예: 도쿄).
PL플레이어: 시작할 플레이어의 색상.
PW백의 이름: 백색 플레이어의 이름.
RE결과: 결과는 일반적으로 "B+R"(흑이 기권으로 승리) 또는 "B+3.5"(흑이 3.5로 승리) 형식이다.
RO라운드: 라운드(예: 5번째 게임).
RU규칙: 규칙 세트(예: 일본식).
SO출처: SGF 파일의 출처.
SZ크기: 보드의 크기, 정사각형이 아닌 보드도 지원된다.
TM제한 시간: 제한 시간(초).
US사용자: SGF 파일을 만든 사람의 이름.
W속성 값으로 지정된 위치에서 백의 수.
WR백의 기력: 백색 플레이어의 기력.
WT백 팀: 백 팀의 이름.


3. 2. 속성 (Properties)

SGF 파일은 각 게임의 특징을 설명하는 속성 및 속성 값 쌍으로 구성된다.[1] 속성명은 대문자 알파벳으로만 정의되며, 노드에서 지정할 때는 순서에 관계없이 지정할 수 있다.[16]

속성은 크게 루트, 게임 정보, 셋업, 착수, 기타로 분류된다.[15][16]

  • 루트 속성: SGF 버전(FF), 게임 종류(GM), 문자 세트(CA), 애플리케이션(AP), 게임 보드 크기(SZ) 등 루트 노드에서만 지정 가능한 속성이다.[15][16]
  • 게임 정보 속성: 대국 날짜(DT), 대회명(EV), 접바둑돌 수(HA), 덤(KM), 흑/백 플레이어 명(PB/PW), 대국 결과(RE), 적용 규칙(RU), 제한 시간(TM) 등 한 국면당 정보이다.[15][16]
  • 셋업 속성: 처음부터 놓인 흑/백돌(AB/AW), 순서(PL) 등 첫 국면을 나타내는 정보이다.[15][16]
  • 착수 속성: 흑/백의 착수(B/W), 악수(BM), 묘수(IT), 수(TE) 등이다.[15][16]
  • 기타 속성: 코멘트(C) 등이다.[15][16]


주요 프로퍼티[15]
프로퍼티명종류프로퍼티 값 예시설명
FF루트 프로퍼티4SGF의 버전
GM루트 프로퍼티1게임 종류(#대응 보드 게임 참조)
CA루트 프로퍼티UTF-8문자 세트
AP루트 프로퍼티CGoban:1.6.2애플리케이션 이름과 버전
SZ루트 프로퍼티19, 9:10게임 보드의 크기
DT게임 정보2020-09-21대국 날짜
EV게임 정보ABC 토너먼트대회명
HA게임 정보2접바둑돌의 수 (바둑 전용 프로퍼티)
KM게임 정보5.5 (바둑 전용 프로퍼티)
PB게임 정보田中흑번 플레이어 명
PW게임 정보佐藤백번 플레이어 명
RE게임 정보W+0.5대국 결과
RU게임 정보Japanese적용 규칙
TM게임 정보3600제한 시간 (초)
AB셋업cc처음부터 놓인 흑돌
AW셋업dd처음부터 놓인 백돌
PL셋업W순서
B착수 프로퍼티cc흑번의 착수
W착수 프로퍼티dd백번의 착수
BM착수 프로퍼티악수
IT착수 프로퍼티묘수
TE착수 프로퍼티
C기타これはコメントです。코멘트


3. 3. 좌표 체계

SGF에서 점과 착수의 좌표는 두 개의 문자로 표현된다. 첫 번째 문자는 열(왼쪽에서 오른쪽)을 나타내고, 두 번째 문자는 행(위에서 아래)을 나타낸다.[1] 예를 들어, 바둑판의 왼쪽 상단 모서리는 "aa"로 표시된다.[1]

이는 "A"-"T"( "i" 제외) 및 숫자 1-19로 움직임(과 점)을 표시하는 전통을 의도적으로 깨뜨린 것이다. 단순함과 간결성을 위해 "a"-"s" 범위의 소문자 두 개를 대신 사용했다.[1]

보드의 원점인 왼쪽 상단 모서리는 대부분의 최신 컴퓨터가 텍스트와 그래픽 통합을 단순화하기 위해 화면 좌표를 나타내는 방식에 해당한다.[1]

4. 지원 게임

SGF는 다양한 보드게임을 지원하며, 각 게임은 GM 속성으로 구분된다. FF[4]에서는 40가지 게임이 정의되어 있다.[15]

SGF는 1987년 Smart Go Board영어의 저자인 안데르스 키에룰프(Anders Kierulf)에 의해 처음 제안되었다.[8] 당시에는 컴퓨터 바둑 표준으로 제안되었으나 널리 받아들여지지 않았다. 1990년 키에룰프는 자신의 박사 학위 논문에 Smart Go Board영어용 파일 형식으로 SGF 사양서를 부록으로 추가했다.[8][9] 이 1987년/1990년 판이 제1판(FF[1])이며, 바둑, 오델로, 체스, 나인 멘 모리스 4종류를 지원했다.[10]

1993년 마르틴 뮐러(Martin Müllerde)는 SGF 사양을 정리해 제3판(FF[3])을 발표했고,[12] 지원 게임은 FF[1]의 4종류에 오목, 렌주, 샹치, 쇼기를 더한 7종류가 되었다(사양에서는 오목과 렌주를 동일하게 취급).[11] 1997년 아르노 홀로시(Arno Holloside)는 제3판에 새로운 기능을 추가한 제4판(FF[4])을 발표했다.[12]

1999년 제5판(FF[5]) 제정을 위한 논의가 시작되었으나 정식 발표되지는 않았다.[13] 2002년 XML을 채택한 XGF 포맷(XML Game Format영어)이 제안되었으나,[14] 역시 널리 채택되지 않았다.

4. 1. 주요 지원 게임

아마존스, 아택스, 백개먼, 블로커스,[4] 바이트, 체이스, 체스, 드본, 엑시트, 포커스, 게스, 지프, 바둑, 고블렛, 오목+렌주, 헥스, 하이브, 흐네파타플, 정글, 크로프키, 쿠바, 라인스 오브 액션, 뉴트론, 나인 멘 모리스, 옥티, 철학자의 축구, 플래토, 푼트, 쿼드러처, 리버시 (오셀로), 사하라, 쇼기, 탐스크, 탠트릭스, 트락스, 트리플, 텀블링 다운, 트윅스트, 샹치, 인쉬, 제르츠가 현재 지원되는 게임이다.[3] 공식적으로 지원되지는 않지만, sgf 형식은 메리디안스에도 사용된다.

SGF 파일의 GM 속성은 게임 종류를 나타내며, FF[4]에서는 1부터 40까지 40가지가 정의되어 있다.[15]

SGF가 지원하는 주요 보드 게임[15]
GM 속성보드 게임주석
1바둑
2오델로
3체스Portable Game Notation 형식이 일반적이다.
4오목, 렌주오목과 렌주는 동일하게 취급
5나인 멘스 모리스
6백개먼
7샹치
8쇼기
11헥스
12투수기
17탄트릭스
21트윅스트


5. 한계

FF표준영어에는 대규모 게임 컬렉션에 적용하는 것을 불가능하게 하거나, 적어도 비합리적으로 만드는 몇 가지 문제가 있다. 자세한 내용은 참고 문헌을 참조한다.[7]

원하는 많은 속성을 나타내는 표준 지정이 없다는 사실은 실제로 제한 사항은 아니다. 이 시스템은 확장 가능하며, 새로운 레이블을 만들 수 있고, 이미 그렇게 되었다. 시간이 지나면 새로운 레이블 중 인기 있는 레이블이 표준이 된다.

참조

[1] 웹사이트 SGF file format FF[4] https://red-bean.com[...] red-bean.com 2006-08-06
[2] 웹사이트 SGF - Variations https://red-bean.com[...] red-bean.com 1999-01-07
[3] 웹사이트 The SGF format https://homepages.cw[...]
[4] 웹사이트 Pentobi/Libpentobi_base/Pentobi-SGF.md at main · enz/Pentobi https://github.com/e[...]
[5] 웹사이트 Definition of the Smart Game Format https://britgo.org/t[...] British Go Association 2023-06-02
[6] 웹사이트 The SGF Format http://homepages.cwi[...]
[7] 웹사이트 Notes on the SGF format https://homepages.cw[...]
[8] 웹사이트 An interview with Anders Kierulf of SmartGo https://gogameguru.c[...] Go Game Guru 2020-09-21
[9] 논문 Smart Game Board: a Workbench for Game-Playing Programs, with Go and Othello as Case Studies ETH Zürich 1990
[10] 웹사이트 File Format FF[1] https://www.red-bean[...] 2020-09-21
[11] 웹사이트 Smart Game File Format FF[3] https://www.red-bean[...] 2020-09-21
[12] 웹사이트 SGF User Guide Version 1.2 https://www.red-bean[...] 2020-09-21
[13] 웹사이트 SGF FF[5] - Discussion https://www.red-bean[...] 2020-09-21
[14] 웹사이트 XGF - An XML Game Format https://www.red-bean[...] 2020-09-21
[15] 웹사이트 SGF Properties (FF[4]) https://www.red-bean[...] 2020-09-21
[16] 웹사이트 SGF file format FF[4] https://www.red-bean[...] 2020-09-21



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com