#古法编程# 在任何看上去不能玩游戏的地方跑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
发布于 山东
