ARTICLE · 软件编程
微软 Azure CTO 业余时间“整活”:拿 Windows 画图当显示屏跑《毁灭战士》,还支持 Ctrl+Z 一键“复活”
一语总结微软 Azure CTO Mark Russinovich 开源了 DoomPaint 项目,通过 Windows 剪贴板与 OLE 机制,巧妙地将经典游戏《毁灭战士》运行在 Windows 画图软件中。
本文介绍了微软 Azure CTO Mark Russinovich 开发的开源项目 DoomPaint。该项目并非简单的截图循环,而是利用 ViZDoom 引擎在后台运行游戏逻辑,通过 Windows OLE 剪贴板机制将实时渲染的画面同步至 Paint 画布,并使用底层键盘钩子拦截输入,实现了在画图软件中流畅游玩《毁灭战士》的效果。这一实验展示了对 Windows 系统底层机制的深度挖掘,体现了计算机文化中探索系统边界的极客精神。
- 利用 OLE 剪贴板机制实现高效画面同步。
项目通过 OLE 机制让 Paint 始终连接数据对象,避免了频繁销毁剪贴板带来的异步错误,实现了稳定的画面刷新。
- 通过底层键盘钩子实现输入拦截与重定向。
为了防止 Paint 将游戏输入误判为绘图操作,项目拦截了按键并交给引擎处理,甚至实现了 Ctrl+Z 撤销游戏进程的荒诞效果。
- 技术探索的本质是挑战系统边界。
该项目展示了如何将游戏引擎、文档编辑机制与剪贴板系统组合,解决一个看似无用但极具技术挑战性的问题。
微软 Azure CTO 业余时间“整活”:拿 Windows 画图当显示屏跑《毁灭战士》,还支持 Ctrl+Z 一键“复活”
本文介绍了微软 Azure CTO Mark Russinovich 开发的开源项目 DoomPaint。该项目并非简单的截图循环,而是利用 ViZDoom 引擎在后台运行游戏逻辑,通过 Windows OLE 剪贴板机制将实时渲染的画面同步至 Paint 画布,并使用底层键盘钩子拦截输入,实现了在画图软件中流畅游玩《毁灭战士》的效果。这一实验展示了对 Windows 系统底层机制的深度挖掘,体现了计算机文化中探索系统边界的极客精神。
文章金句
"这就是计算机文化最迷人的地方——花费大量时间解决一个完全没有必要解决的问题。但也正是这些“无用”的实验,让开发者不断探索系统边界。
"你在 Doom 里“死亡”?直接 Ctrl+Z 撤销。时间倒退。重新活过来。