Folia
← 返回头版

DOOM游戏成功在Firebird SQL数据库内运行

一个开源项目实现了将经典游戏DOOM完整运行在Firebird SQL数据库内的壮举1。该项目通过将Firebird 6编译到WebAssembly,使得整个游戏能够完全在浏览器中执行1。游戏的每个逻辑帧由SQL存储过程调用驱动,每一帧的渲染则通过SELECT查询返回,JavaScript仅负责处理键盘输入和绘制画面1。

项目支持加载真实DOOM游戏的WAD文件,包括DOOM1.WAD、DOOM.WAD和DOOM2.WAD1。开发者在PSQL中使用VARCHAR存储每个屏幕列的solidsegs列表,通过CROSS JOIN LATERAL或LEFT JOIN等优化技术,将帧渲染时间从65秒大幅降低至0.2秒1。该实现配备了两种墙壁渲染器——BSP和暴力法,其中BSP渲染器在Freedoom的36张地图上的性能约为暴力法的3倍1。

为进一步提升性能,项目提供了低细节模式选项,可将屏幕列数降至160列,接近原始DOOM的配置1。在测试中,最繁忙的帧需要42个visplanes,仍低于原DOOM的128个MAXVISPLANES限制1。


评论