蚁工厂
26-10-05 15:17 微博认证:科技博主

#古法编程# 在任何看上去不能玩游戏的地方跑Doom是程序员的乐趣之一
不过一些脑洞还是震惊到我,比如这个用SQL来玩Doom的
http://t.cn/AXW1bAfi

SQLDoom 的核心思路,是把 Doom 的游戏世界和状态全部存进关系表:地图、玩家、怪物、血量、位置、武器等都变成数据,原本 C 里的循环和状态机则改写成 JOIN、UPDATE、聚合和窗口函数。整体思路很像 ECS:游戏逻辑不再逐个对象执行,而是一次处理一批满足条件的实体。

渲染也完全用 SQL 完成。它利用 Doom 本身的 2.5D 和 BSP 结构确定墙体前后关系,再通过 generate_series() 展开屏幕像素,用窗口函数处理遮挡,最终把墙、地板、怪物等生成 (x, y, depth, color) 数据,通过深度比较选出每个像素最终颜色,拼成 320×200 的 framebuffer。 http://t.cn/AXW1b4W9

发布于 山东