스마트 게임 포맷
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
스마트 게임 포맷(SGF)은 다양한 보드 게임의 정보를 저장하기 위해 개발된 텍스트 기반의 파일 형식이다. 1987년 안더스 키에룰프에 의해 처음 제안되었으며, 이후 여러 차례 사양 개정을 거쳐 FF[4]가 널리 사용되고 있다. SGF 파일은 속성 및 속성 값 쌍으로 구성되며, 흑돌 추가, 백돌 추가, 주석, 게임 결과 등 다양한 정보를 포함한다. 현재 바둑, 체스, 오목 등 40여 가지의 게임을 지원하며, 게임 종류는 GM 속성으로 구분된다.
더 읽어볼만한 페이지
스마트 게임 포맷 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
유형 | 마크업 텍스트 |
컨테이너 대상 | 바둑 기록 |
공개 여부 | 예 |
URL | Smart 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]는 공개된 적이 없으며, 이 형식은 오픈 콘텐츠 라이선스에 따라 게시되었다.
SGF 파일은 각 게임의 특징을 설명하는 속성 및 속성 값 쌍으로 구성된다.[1] 이러한 속성에는 게임 정보, 플레이어 정보, 규칙 등이 포함된다.
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는 텍스트 기반의 데이터 형식을 채택하고, 게임 정보 저장에 트리 구조 표현을 사용한다.[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]
프로퍼티명 | 종류 | 프로퍼티 값 예시 | 설명 |
---|---|---|---|
FF | 루트 프로퍼티 | 4 | SGF의 버전 |
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]
프로퍼티명 | 종류 | 프로퍼티 값 예시 | 설명 |
---|---|---|---|
FF | 루트 프로퍼티 | 4 | SGF의 버전 |
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]
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