Hasty Briefsbeta

双语

We ported the original Doom to SQL

2 days ago
  • 该项目将1993年原版《毁灭战士》的游戏逻辑和渲染器完全移植到SQL中,在数据库内运行。
  • 游戏循环以35帧/秒运行,渲染器在笔记本上能以最高60赫兹的刷新率输出320x200的帧缓冲区,由Python处理输入、计时和显示。
  • 多人死亡竞赛模式支持最多4名玩家,采用队列系统;等待期间可通过SQL查询实时游戏状态。
  • 渲染使用BSP树实现从前到后的排序,将WAD文件转换为关系表(导入过程约1000行Python代码)。
  • 游戏逻辑用约5900行SQL实现,渲染器约1300行SQL,性能通常远低于28.6毫秒的滴答预算。
  • 关键优势包括以数据为中心的设计、易于修改(例如通过SQL调整武器属性),以及内置的多人游戏功能,如原子事务和访问控制。
  • 尽管基于SQL,编译后的查询代码性能与原始C代码相当接近,每条操作指令数约为2.4倍。