doubledamnation · TheYellowArchitect/doubledamnation
《Double Damnation》是一款仅支持多人合作的银河恶魔城(Metroidvania)平台游戏,使用 C# 与 Unity 开发,作者称其移动手感接近《任天堂明星大乱斗 Melee》。仓库 README 说明项目已在 Steam 上架,同时通过 GitHub Releases 发布;从...
这是一个跑在浏览器里的乒乓球小游戏,但它真正想展示的不是对打本身,而是球拍与球在场上移动时所搅动的一整片实时彩色流体。按照 README 的说法,画面是「一个与全彩实时流体模拟相互作用的乒乓球游戏」,并以 60 FPS 渲染。作者明确把它定位成一次浏览器能力演示(a demonstration of the possibilities that HTML5/browsers have to offer),灵感直接来自 Steve Taylor 的 Plasma Pong——那款把 Pong 与等离子/流体特效结合起来的知名独立游戏。也就是说,这个项目更接近「技术验证 + 可玩 demo」,而不是一款打磨完整的商业作品。
在玩法层面,README 只交代了它是乒乓球游戏并与流体场互动,没有写出具体按键、比分规则、AI 对手行为或胜负条件。从 Plasma Pong 一脉相承的交互逻辑来看,通常是挡板和球的运动会向流体场注入速度与染料,让背景被推挤、卷吸、扩散,从而在视觉上产生「击球把流体打散」的反馈;球路与流体互相影响的手感细节需要实际打开页面确认。README 也没有说明是否支持双人对战或移动端触摸操作,这些都属于待核验项。
技术实现是该项目最有信息量的部分。README 逐一列出了算法来源:底层的流体求解器来自 Jos Stam 的论文《Real-Time Fluid Dynamics for Games》(GDC 2003),这是图形与游戏领域非常经典的「稳定流体(stable fluids)」方案;单色流体的具体实现参考了 Oliver Hunt 的 simple fluid dynamics simulator;彩色部分则是在 RJ Marsan 的 Plasma Pong Android 项目上借用其 RGB 示例改造而来,再加上作者自己的一些调整。参考列表里还附了 Mike Ash 的《Fluid Simulation for Dummies》,可见作者是沿着这份入门科普一路摸下来的。熟悉这套方案的人会知道,它的核心步骤一般包括扩散、平流(advection)、以及保证质量守恒的投影/压力求解,再逐格更新速度场与密度场——每一步都需要在整张网格上做数值迭代,因此能在浏览器里跑到 60 FPS 才是作者强调「这很了不起」的原因。README 没有说明渲染走的是 Canvas 2D 的逐像素 ImageData 还是 WebGL 纹理,具体路径需读源码确认。
运行方式非常轻量:这是一个纯前端页面项目,README 直接给出 GitHub Pages 的在线试玩地址和一个 YouTube 演示视频链接,说明不需要安装依赖或本地构建即可体验。作者表示已在最新版本的 Chrome 与 Firefox 上测试通过,并把成功归功于 Chrome 与 Mozilla 两个团队对浏览器的持续优化。README 中还有一段 Beta 免责声明:代码「仍需要好好清理和封装」,作者当时的目标是尽快让它跑起来,所以阅读源码时不宜用工程规范去苛求它。
适合谁来读?如果你想知道浏览器里如何做实时流体模拟、速度场与密度场如何平流与投影、以及如何把物理场和游戏对象(球、挡板)耦合起来做出视觉效果,这个仓库是一份短小直接的参考;它也适合作为「在 60 FPS 预算下用 JavaScript 做逐像素数值计算」的案例研究。需要注意的反面是:代码未模块化、没有测试、README 未提及许可证信息,若要复用其中的实现,应先自行确认授权与代码质量;此外项目年代较早,只声明兼容当时的 Chrome/Firefox,现代浏览器上的表现以及不同硬件下的帧率差异都未标注,需要自己实测。
总的来说,fluid_table_tennis 是一个「小而有趣」的实验:用几十行到数百行的前端代码,把一篇图形学论文里的流体求解器搬进浏览器,再套上一层乒乓球的外壳。它的价值在于可读的实现路径与清晰的参考文献链条,而不是玩法深度或完成度。
Fish Folk: Jumpy 是一款鱼类像素画风的战术 2D 射击游戏,使用 Rust 语言与...
Hypersomnia 是 TeamHypersomnia 用 C++ 从零编写的一款多人俯视角(top-down...
DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳...
micropolisJS 是把 Micropolis(开源版《模拟城市》类城市模拟游戏)移植到 J...