一位程序员 Lukas Vogel 在育儿假期间,利用纯SQL和约150行Python代码,成功构建了一款名为DOOMQL的多人第一人称射击游戏,致敬经典《Doom》。该游戏实现了真正的“纯SQL”游戏体验,通过SQL处理渲染和输入,分辨率达128×64像素,帧率可达30FPS。与借鉴项目DuckDB-DOOM不同,DOOMQL避免了使用JavaScript,并在性能上表现更优。游戏架构巧妙,状态存储在数据库表中,渲染通过SQL视图实现,游戏循环由shell脚本驱动。目前代码已在GitHub开源,未来计划加入更多游戏元素。
🎮 **纯SQL实现的《Doom》体验**:程序员Lukas Vogel利用约150行Python代码和纯SQL技术,成功构建了一款名为DOOMQL的多人第一人称射击游戏。该游戏完全基于SQL处理渲染和输入,打破了传统游戏开发的界限,实现了令人惊叹的“纯SQL”游戏体验。
🚀 **性能与创新**:相较于使用JavaScript的类似项目,DOOMQL在性能上表现更为出色,帧率可达约30FPS,远高于8FPS。开发者特意避免了JavaScript,坚持真正的SQL驱动,并在一个月内完成开发,展示了其技术实力和对数据库性能的深刻理解。
🏗️ **巧妙的架构设计**:DOOMQL的游戏状态存储在数据库表中,渲染通过SQL视图实现射线投射和精灵投影。游戏循环由一个小型shell脚本驱动,每秒执行SQL文件约30次,而客户端则负责输入轮询和查询数据库获取3D视图,这种设计简洁而高效。
🌐 **开源与未来展望**:DOOMQL的代码已在GitHub上开源,允许玩家通过Docker和Python在本地运行。开发者Lukas Vogel计划在未来持续改进游戏,包括添加强化道具、多种武器、优化精灵细节层次系统、改进客户端以及引入AI对手,进一步丰富游戏的可玩性。
快科技9月12日消息,近日,一位程序员利用“纯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对手等。
