重點資訊
創作者 Lukas Vogel 開發了 SQLDoom,這是一個在以效能為導向、相容 Postgres 的關聯式資料庫管理系統 CedarDB 中運行 1993 年經典遊戲《毀滅戰士》的專案。前端透過 Python 處理圖形、聲音和輸入,充當周邊設備,而所有數學運算皆在資料庫內完成。
轉換該專案需要 5,900 行 SQL 程式碼來處理核心遊戲循環,以及 1,300 行程式碼用於圖形渲染,共橫跨 89 個不同的資料表。Vogel 指出,《毀滅戰士》封裝檔中的資料具有高度關聯性,使得地圖關卡可以輕鬆地複製到普通的資料庫表中。
Vogel 發現 SQL 透過以並行執行的單一 UPDATE 陳述式取代迭代循環,簡化了各種操作,儘管他提到地板和天花板渲染器因為依賴洪水填充演算法,無法完美對應。
多人遊戲功能受益於資料庫環境,交易指令可自動同步各個資料表之間的狀態。有興趣的使用者可以透過 GitHub 儲存庫下載或探索 SQLDoom,或閱讀 Vogel 的部落格文章。


