누가 운영하나요?
저는 MariaGO의 모델 학습, 게임 엔진, 웹 화면과 서버 운영을 직접 맡고 있는 개인 개발자입니다. 이곳의 글은 일반적인 게임 백과사전을 다시 요약한 내용이 아니라, 구현 중 확인한 코드와 실험 기록을 바탕으로 작성합니다.
프로젝트 이름의 ‘GO’는 첫 출발점인 바둑을 뜻합니다. 바둑에서 시작한 질문은 오목과 오델로, 장기, 체스, 숫자와 낱말 퍼즐로 넓어졌습니다. 게임마다 규칙은 다르지만 “현재 상태를 AI가 어떻게 읽고 다음 행동을 고르는가”라는 공통 주제가 있습니다.
왜 또 하나의 게임 사이트를 만들었나요?
온라인 대국 서비스는 이미 많습니다. MariaGO가 해결하려는 문제는 상대를 빨리 찾아 경쟁하는 일이 아닙니다. 사람과 약속을 잡지 않아도 원하는 때 한 수를 두고, 시간이 부족하면 멈췄다가 같은 판으로 돌아오는 개인적인 대국 환경을 만들고 싶었습니다.
목표는 가장 강한 AI를 자랑하는 것이 아니라, 학습한 모델의 판단을 누구나 브라우저에서 직접 만나고 그 과정까지 이해할 수 있게 하는 것입니다.
그래서 대표 바둑 대국에는 턴 시간 제한을 두지 않았습니다. 사용자의 착수가 확정될 때마다 서버에 판과 수순을 저장하고, 다음 방문에는 진행 중인 대국을 다시 불러옵니다. 기보를 앞뒤로 살핀 뒤 특정 수부터 다른 변화를 시험하는 기능도 같은 생각에서 만들었습니다.
어떻게 개발하나요?
바둑 모델은 상급자와 프로의 SGF 기보에서 국면과 다음 수를 추출해 학습합니다. 원본 기보를 그대로 넣는 것으로 끝나지 않습니다. 19×19 좌표를 모델이 읽을 수 있는 정렬 격자로 바꾸고, 중복 국면을 제거하며, 학습 자료와 실제 대국 서버가 같은 판 표현을 쓰는지 확인합니다.
학습 뒤에는 승률 하나만 보지 않습니다. 모델이 네 귀의 좌표를 비슷한 정확도로 찾는지, 이미 돌이 놓인 점을 다시 고르지는 않는지, 지나치게 이른 시점에 패스하지는 않는지 기록합니다. 웹 대국에서도 AI의 수를 그대로 적용하지 않고 게임 엔진이 자충·패·중복 착수 같은 불법수를 검사합니다.
| 학습 자료 | 상급자·프로 SGF에서 추출한 국면과 실제 다음 수 |
|---|---|
| 국면 표현 | 행과 열 번호를 두 자리로 정렬한 19×19 텍스트 격자 |
| 실전 검증 | 좌표 정확도, 합법수 비율, 조기 패스와 방향 편향을 별도 확인 |
| 대국 저장 | 판 상태와 전체 수순을 착수 단위로 저장해 복기와 이어두기에 사용 |
콘텐츠와 운영 원칙
직접 확인한 내용을 씁니다
기능 설명은 현재 코드와 동작을 기준으로 작성합니다. 구현되지 않은 기능을 계획만으로 소개하지 않습니다.
한계를 함께 공개합니다
모델의 실수, 자동 계가의 사활 판정 한계처럼 사용자가 알아야 할 조건을 결과와 함께 밝힙니다.
게임보다 글이 먼저인 곳도 둡니다
메인 사이트에서는 바로 이동시키는 주소 목록 대신 규칙, 구현 방식과 개발 기록을 읽을 수 있게 합니다.
서두르지 않는 경험을 지향합니다
점수 경쟁과 체류 유도보다 사용자가 자기 속도로 생각하고 돌아올 수 있는 대국을 우선합니다.
현재의 한계도 분명히 말합니다
MariaGO의 모든 게임이 같은 수준으로 완성된 것은 아닙니다. 바둑은 기보 저장과 이어두기를 지원하지만 다른 게임의 기능 범위는 서로 다릅니다. 바둑 자동 계가는 둘러싸인 빈 영역과 사석을 계산하되 죽은 돌을 완전히 판별하지 못합니다. 계가 값은 심판의 확정 결과가 아니라 대국자가 판을 검토하기 위한 참고치입니다.
이 차이와 실패 사례가 오히려 프로젝트 기록의 핵심입니다. 기능이 달라지면 이 소개와 연구노트도 함께 고치겠습니다.