핵심 정보
개발자 루카스 포겔은 성능 중심의 Postgres 호환 관계형 데이터베이스 관리 시스템인 CedarDB 내부에서 1993년 작 게임을 구동하는 SQLDoom 프로젝트를 선보였다. 파이썬으로 작성된 프론트엔드가 그래픽과 사운드 및 입력을 처리하는 주변기기 역할을 수행하며, 모든 수학적 연산은 데이터베이스 내부에서 처리된다.
이번 프로젝트는 핵심 게임플레이 루프를 위해 5,900줄의 SQL 코드를 사용했으며, 89개의 서로 다른 테이블에 걸쳐 있는 1,300줄 규모의 그래픽 렌더러를 활용했다. 포겔은 둠 패키지 파일 내의 데이터가 이미 높은 연관성을 가지고 있어 맵 레벨을 일반 테이블로 쉽게 복제할 수 있었다고 밝혔다.
포겔은 SQL이 반복문 대신 단일 업데이트 문을 병렬로 처리하여 연산을 단순화한다고 설명했으나, 바닥과 천장 렌더러의 경우 플러드 필 알고리즘에 기반하여 SQL에 깔끔하게 매핑되지 않았다고 언급했다.
멀티플레이 기능의 경우 트랜잭션 명령어를 통해 테이블 간 상태를 자동으로 동기화하는 데이터베이스의 특성 덕분에 큰 이점을 얻었다. 사용자들은 깃허브 저장소를 통해 SQLDoom을 다운로드하거나 포겔의 블로그 게시물을 확인할 수 있다.


