在线战区:浏览器中的 BZFlag
一个免费的 3D 多人坦克游戏,支持在浏览器中玩——在桌面、手机或 VR 头显上——与 BZFlag 客户端和服务器进行对战。无需安装。立即游戏: https://bz.rikers.org · 服务器 · 帮助:控制和旗帜 · BZFlag Discord 尝试它 https://bz.rikers.org/list 列出了公共 BZO 服务器,以及任何代理的 BZFlag 服务器。点击行以进入该游戏。服务器是 Node.js;客户端是 Three.js,通过 WebSockets、WebTransport 和 WebRTC 进行通信。发布内容 每个标记的发布会发布:一个 GitHub 发布,包含从 CHANGELOG.md 生成的说明,一个源 tarball,一个在 ghcr.io/timriker/bzo:<version>-ubuntu26.04 上版本化的 Ubuntu 26.04 镜像,一个移动的 ubuntu26.04 标签 ghcr.io/timriker/bzo:<version> 和 ghcr.io/timriker/bzo:latest,均使用 Ubuntu 26.04。每个发布的镜像包含 linux/amd64 和 linux/arm64 变体。发布标签仅使用稳定 vX.Y.Z SemVer;不发布预发布和构建元数据标签。Docker 镜像是在 Ubuntu 26.04 上构建的,使用 Ubuntu 自己的 nodejs 包(Node.js 22),CI 在同一 Node 的 Ubuntu 26.04 容器中运行。安装和运行服务器 可从 GitHub 容器注册表获取 Docker 镜像,或使用源 tarball 或 git 检出。对大多数人来说,Docker 是更好的安装和更新路径。docs/installation.md 涵盖这两种方法以及配置、在反向代理后运行、列出您的服务器、代理 BZFlag 服务器和更新。一个轮询服务器的网站——统计,服务器浏览器——根据 docs/api.md 查找可以查询的内容。/list 的启动链接在安装的 BZFlag 客户端中打开 BZFlag 服务器;docs/bzflag-links.md 在 Linux、Windows 和 macOS 上设置 bzflag://。Flags bzo 承载 BZFlag 所有的旗帜。WA 广角像任何坏旗帜一样生成、粘附并抖掉,但什么也不做:它扩展了视野,在 VR 中头显拥有投影。docs/flags.md 包含其余内容,包括原因。变更日志和发布说明 可读的历史保存在 CHANGELOG.md 中。标记的 GitHub 发布使用匹配的变更日志部分作为发布说明。控制 docs/controls.md 包含所有控制:键盘和鼠标、屏幕上的触控控制、游戏手柄和 XR 控制器。在游戏中,/ 或 ? 显示键盘布局。WebXR VR 模式使用原生 WebXR,并要求支持 immersive-vr 的浏览器和头显。要进行本地验证,请在 http://localhost:5154 打开游戏。要进行远程访问,请通过 https:// 提供游戏——使用服务器自己的 https 证书,或在反向代理下;当页面通过 HTTPS 提供时,客户端会自动使用 wss:// 进行其 WebSocket 连接。头显浏览器启动安装的应用程序尝试无 2D 着陆页进入 VR。xr-launch.js 在其余客户端加载之前询问会话,并在每个可能传递用户激活的信号上不断询问——窗口加载、聚焦、页面显示、可见性更改,以及启动处理器——渲染器会接收任何会话结果。在没有会话的情况下,VR 模式从按钮开始。保存的名称将立即加入,如果没有,则 XR 菜单将在加入屏幕上打开,携带与 2D 入口对话框相同的名称、队伍和坦克选择,因此没有玩家看不见的屏幕在等待。XR 中的输入使用头显自己的系统键盘,当名称或 MOTD 行获得焦点时弹出。Quest Browser 26.1 及更高版本提供一个;不支持的头显将这些行标记为仅桌面,玩家仍可以使用服务器分配的名称加入。每次打开键盘时,它都以全新编辑开始,因此第一个按键替换整个字段,而不是追加到其后。设置齿轮旁边的一键式 VR 按钮仅在带头显的设备上显示,因为 Android 上的 Chrome 通过 Cardboard 报告任何手机的 immersive-vr 支持;VR 模式在该处的设置菜单中保持不变。如果部署设置了限制性的 Permissions-Policy 头,则允许 xr-spatial-tracking=(self)。TLS 可以是服务器自己的(https,见 docs/installation.md)或反向代理的(docs/installation.md)。在检查新浏览器、头显或部署时,请使用 WebXR 验证清单。WebGPU 渲染不在此清单范围内。开发检查 npm run check 这将运行语法和代码检查、服务器启动检查和测试套件。CI 还会在推送和拉取请求中运行这些检查。发布流程 首先提交所有内容,且不要遗漏任何内容:标签名称标记树,因此在标签发布时仍留在工作目录中的编辑不在发布中——版本说明一回事,盒子说明另一回事,没人能从标签中重现它。这包括其他人未提交的工作:对其进行审查,说明其内容,然后提交,而不是在周围打标签。git status 在准备发布之前是干净的,并且在推送标签后再次干净;在最后一刻还有任何待处理的内容意味着发布未包含它。发布标签仅使用稳定 vX.Y.Z SemVer。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡