用「純SQL」作仿《Doom》遊戲!僅150行程式碼:30FPS運行
近日,一位程式設計師利用「純SQL」建構了一款類似《Doom》的多人第一人稱射擊遊戲,名為DOOMQL。
遊戲僅以約150行Python程式碼實現,雖然在軟體架構上有所限制,但運行效果令人驚喜,幀率可達約30FPS。
DOOMQL的靈感來自Patrick Trainer的DuckDB-DOOM項目,後者同樣嘗試用SQL建構類似《Doom》的遊戲,但使用了JavaScript進行渲染和輸入處理。
相較之下,DOOMQL實現了真正的「純SQL」遊戲,不僅支援多人模式,還用SQL處理渲染和輸入,解析度可達128×64像素。
開發者Lukas Vogel表示,DuckDB-DOOM中使用JavaScript的部分“感覺像是作弊”,而他自己的作品在性能上也更為出色,幀率遠高於DuckDB-DOOM的8FPS。
Vogel也是資料庫效能公司CedarDB的共同創辦人,他在一個月的育嬰假期間完成了DOOMQL的開發。
遊戲的架構簡潔而巧妙:狀態儲存在資料庫表中,渲染透過SQL視圖實現射線投射和精靈投影,遊戲循環由一個小型shell腳本驅動,每秒執行SQL檔案約30次,而客戶端則由約150行Python程式碼組成,負責輸入輪詢和查詢資料庫以取得3D視圖。
目前,DOOMQL的程式碼已在GitHub上開源,玩家可以使用Docker和Python在本地運行遊戲。 Vogel計劃在未來對遊戲進行改進,包括添加強化道具、多種武器、優化精靈細節層次系統、改進客戶端以及加入AI對手等。
延伸影片閱讀: