CSSQuake:用 CSS 渲染的网页版雷神之锤
文章摘要
CSSQuake 是一个运行在浏览器中的网页游戏,向 id Software 的经典之作《雷神之锤》(Quake)致敬。它由 LayoutitStudio 开发,并以 “Powered by PolyCSS” 为标志,最大的噱头在于:游戏画面的渲染完全依赖 CSS,而不是传统的 Canvas 或 WebGL。需要澄清的是,这并不是一个”纯 CSS”项目——游戏的逻辑、状态管理、输入处理等仍然由 TypeScript 实现,CSS 只负责把 3D 场景”画”出来。
游戏体验上,CSSQuake 尽力还原了经典 FPS 的操作手感:玩家用 WASD 移动、鼠标瞄准、点击射击,并支持跳跃(空格)、奔跑(Shift)、蹲下(Ctrl)等动作。它同时提供单人和多人两种模式。多人模式允许玩家创建或加入房间,自定义昵称、颜色、地图以及击杀上限(fraglimit)等参数。设置项相当丰富,包括动态光照、准星样式、粒子特效、伤害显示开关、静音等可调选项,体现了开发者对细节的用心。
整个项目是开源的,托管在 GitHub 上。它更多是一次极具创意的技术炫技和工程探索,而非追求实用的游戏开发——它向世界证明了 CSS 在被推到极限时能做到什么程度,也再次点燃了”CSS 究竟算不算一门编程语言”的经典争论。对于在 90 年代玩过原版 Quake 的老玩家来说,这是一次饱含怀旧情怀的回归;当年的肌肉记忆在隔了几十年之后,依然能被瞬间唤醒。
HN 评论精华
jedberg(544 赞,主楼):调侃道,”Quake 在我 90 年代的奔腾 133 PC 上跑得比现在我的 Mac M1 Pro 还流畅。”这条评论引爆了关于性能与工程成就之间张力的讨论:既然计算能力已经进步了 30 年,是否应该足以弥补糟糕的工具选择?
poisonfountain(回复):一针见血地回应,”这个引擎根本没有为性能做优化。毕竟它用的是 CSS。”
Insanity:总结性评价,”这是一个’用错了工具’的典型案例。不过依然非常了不起。”
平台与浏览器差异:评论区出现大量关于性能差异的讨论。Safari 表现糟糕,而 Chrome 和 Firefox 在多种系统上都能跑出流畅的 60fps,一些 Linux 用户也反馈体验极佳。
实现方式的澄清:不少人最初误以为这是纯 CSS 实现的游戏。澄清后大家明确:TypeScript 处理游戏逻辑,CSS 只负责视觉渲染。
怀旧与可玩性问题:正面反馈中夹杂着技术上的小瑕疵——碰撞检测有问题、按键交互与原版不同、画面有裁剪(clipping)问题。但即便不完美,玩家依然乐在其中。社区普遍把它视为一次令人印象深刻的创意实验,有人称赞它有力地证明了”CSS 是一门真正的编程语言”。