Sameshi – 2KB 안에 구현된 약 1200 Elo 체스 엔진

1 month ago 15

  • 2KB 크기로 동작하는 경량 체스 엔진으로, 제한된 규칙 내에서 완전한 게임 진행이 가능함
  • 120셀 메일박스 보드, 네가맥스 탐색, 알파-베타 가지치기 등 핵심 알고리듬을 포함함
  • 기물 가치 기반 평가(material-only eval)캡처 우선(move ordering) 방식을 사용함
  • 캐슬링, 앙파상, 승진, 반복, 50수 규칙 등은 미구현 상태
  • 1170~1200 Elo 수준의 성능을 보이며, 2KB 이하 코드로 체스 엔진을 구현한 사례로 주목받음

프로젝트 개요

  • Sameshi는 제한된 규칙을 지원하는 최소형 체스 엔진으로, 전체 코드 크기가 약 1.95KB에 불과함
    • 주요 파일은 sameshi.h이며, 읽기 쉬운 버전은 readable/sameshi.h에 포함됨
    • GitHub 저장소에는 main.c, Makefile, .gitignore 등이 함께 제공됨
  • 데모 영상이 YouTube에 공개되어 있으며, 실제 동작을 확인할 수 있음

핵심 구조 (core)

  • 엔진은 다음 여섯 가지 주요 구성 요소로 이루어짐
    1. 120셀 메일박스 보드 구조
    2. Negamax 탐색 알고리듬
    3. Alpha-Beta 가지치기
    4. 기물 가치 기반 평가(material-only evaluation)
    5. 캡처 우선(move ordering)
    6. 체크·체크메이트·스테일메이트를 포함한 완전한 합법 수 검증
  • 미구현 기능으로는 캐슬링, 앙파상, 승진, 반복, 50수 규칙이 명시되어 있음

성능 (strength)

  • 1170 Elo 수준으로 평가되며, 95% 신뢰구간은 1110~1225 Elo
  • Stockfish (1320~1600 레벨) 과 240판 대국 결과를 기반으로 측정됨
  • 깊이 5(fixed depth 5) , 최대 60플라이, 제한된 규칙 조건에서 테스트됨

기술적 특징

  • 전체 코드 크기가 2KB 미만으로, C 언어 98.6% , Makefile 1.4% 로 구성됨
  • 경량화와 알고리듬 효율성을 극대화하여, 최소한의 코드로 체스 로직을 구현함
  • 체스 엔진(chess-engine) , 체스(chess) , 데모씬(demoscene) 관련 주제로 분류됨

저장소 현황

  • GitHub에서 143개의 스타, 5개의 포크를 기록함
  • Issues, Pull requests, Projects, Security 항목은 모두 비어 있음
  • 저장소 설명은 “a ~1200 Elo chess engine that fits within 2KB”로 요약됨

Read Entire Article