Pulse 게시 ·

Firebird DOOM, 브라우저 SQL 데이터베이스로 게임 로직·화면 계산

개발자 mariuz가 Firebird 6를 WebAssembly로 실행하는 MIT 라이선스 프로젝트 Firebird DOOM을 공개했다. 게임 로직은 PSQL 프로시저가, 화면에 보일 요소 계산은 SQL이 맡고 JavaScript가 입력과 픽셀 출력을 처리한다. 실제 DOOM 맵을 읽지만 소리와 일부 무기는 없으며, 몬스터가 많은 큰 맵은 10fps 아래로 떨어질 수 있다.

기본 게임 데이터는 Freedoom이며, 사용자가 고른 DOOM WAD 파일도 브라우저에서 읽는다. 파일은 외부로 업로드하지 않는다.

개발자에 따르면 Freedoom의 36개 맵에서 BSP 기반 가시성 계산은 전체 벽을 계산하는 방식보다 약 3배 빨랐고 같은 가시 벽을 반환했다.

계산된 범위와 화면 열을 잘못된 순서로 조인한 사례에서는 65초가 걸렸지만 CROSS JOIN LATERAL 또는 LEFT JOIN으로 바꾸자 0.2초가 걸렸다고 보고했다.

로컬 실행·맵별 테스트·렌더러 비교 명령을 제공하며, 저해상도 설정은 화면 열을 320개에서 160개로 줄인다.

내장 SQL 콘솔에서 실행 중인 게임 상태를 조회할 수 있어 데이터베이스 기반 게임 로직과 렌더링 구조를 살펴보기 좋다.

원문