Airmash:HTML5 大型多人在线导弹空战游戏(官方重启版)
文章摘要
Airmash 是一款直接在浏览器里玩的 2D 俯视角多人空战游戏:几十上百名玩家各驾一架飞机在一张世界地图上空互射导弹,不用下载也不用安装。这次的 Show HN 由原作者 fivesigma 发布,宣布这是 2017 年那款爆款游戏的官方重启版。当年那条 Show HN 拿到 1535 分、303 条评论,据作者说曾连续三天占据 HN 首页第一。
作者自述里列出的重写内容。 作者说游戏从零重写,新增或改动包括:全新画面和 WebGL 着色器特效;地图障碍物;全新 UI;每种飞机多一个特殊技能;每日、每周、终身成就;升级奖励;装配系统,可以装备皮肤、旗帜、徽饰(flair)和称号;五种游戏模式:自由混战(FFA)、夺旗(CTF)、大逃杀、竞速、僵尸;公开排行榜和玩家主页;以及付费的游戏内外观,包括皮肤、旗帜和 VIP 通行证。网站自我介绍是「浏览器里的免费多人空战,2017 年爆款的官方重启版。五种飞机,五种模式,无需下载」。
「我对 Airmash 的计划」:一篇带着道歉的博文。 站内博客唯一一篇文章写于 9 月 17 日,开头就认错:「原版游戏被遗弃了,那是我的错。我停止了开发,也从没把它好好交接出去。对此我很抱歉。」他点名感谢了 Bombita、Wight、Congratulatio 等社区成员:这些人多年来无偿维持服务器运行、修补坏掉的客户端、把玩家群体聚在一起,「Airmash 今天还存在,全靠他们」。但他接着说:让一个东西活着,不等于让它往前走。很长时间里没有人能决定 Airmash 应该变成什么,游戏因此一直悬而未决;「一个游戏需要一个人来掌握方向并为之负责。作为原作者,我重新成为那个人」。
他给出的目标是让 Airmash 成为「最好的 2D 多人空战游戏,不是『作为浏览器游戏还不错』,而是最好」:秒进、有足够深度值得钻研、对所有人公平,没有广告,也不卖数值。商城只卖外观,「里面没有任何东西影响玩法,它用来支付服务器费用」;平衡调整则依据真实的对局数据。后续路线图是:先做跨服好友列表和聊天、排位单人死斗、排位团队赛,再往后是新模式、地图编辑器和「中队」(Squadrons)。至于社区私服,他表示只要服主愿意就可以一直开着,不会要求任何人关闭;社区客户端做出了原版从未有过的功能,他请大家去官方 Discord 告诉他哪些值得并入新版。他承诺每月发一次更新,「这次在 Discord 上是真的找得到我」,最后一句是:「没人需要相信我的话。重启版投入了大量工作,看接下来会上线什么就知道了。」
上线后的节奏。 更新日志显示 v1.0.0 于 9 月 15 日发布,之后九天里出了三个补丁:v1.0.1 加入 Mohawk(直升机)的横移按键,把隐形机 Prowler 的能量恢复提高 50%,修复部分周成就不触发、CTF/大逃杀/僵尸模式回合间悬赏和升级未重置、HUD 显示不同步、Twitch 登录等问题;v1.0.2 在游戏内标示机器人玩家,加入缩小视野的快捷键,并把 CTF 和竞速模式经验提高 50%;v1.0.3 重做了 CTF 基地让夺旗更容易,提高持旗者速度,加入所有模式可用的观战和鼠标操控模式,并放宽聊天字数限制。抓取页面时站点显示约 163 名在线玩家;本周经验榜前 25 名里,作者本人 fivesigma 挂着「DEV」标签排在第 17 位。
背景:2017 年的原版。 从 2017 年那条帖子里作者的回复可以拼出原版的技术细节:前端用 PIXI.js 绘图,服务端主要是 Node.js,网络层是「普通的 WebSocket,但加了点花样」。他同时开两条 WebSocket 连接,部分数据包在两条上镜像发送,以缓解 TCP 的队头阻塞;另外,Windows 的延迟 ACK 和移动设备、笔记本上省电型的 TCP 协议栈会让一部分数据包被推迟,即使开了 TCP_NODELAY 也一样(桌面 macOS 和 Linux 没有这个问题),他找到的唯一办法是每 50 毫秒给服务器发一个 1 字节的包,「很丑,但效果很好」。五种飞机分别是默认的 Predator、能反弹导弹的重型机 Goliath、可以横向平移的直升机 Mohawk、一次发射三枚导弹的 Tornado,以及能隐形的 Prowler;当年评论区就围绕 Goliath 升级后是否过强、Prowler 值不值得玩争了很久,这些名字在这次的更新日志里依然出现。
HN 评论精华
这次的 Show HN 只有 11 分、3 条评论,讨论非常稀少,远不能和 2017 年原帖相比。
三条评论都是简短的正面反馈。enajat 开头一句是「值得等待」,接着说从零重写感觉是实打实的升级,WebGL 着色器特效很好看,但对他来说最突出的改动是地图障碍物和每架飞机多出的技能,「给战术走位和技能时机留出了更多空间」,也乐于看到竞速和僵尸模式与 FFA、CTF、大逃杀并列(这条评论的内容基本是在复述作者列出的更新清单)。molmalo 说原版给他带来过很多乐趣,新版看起来很棒。notfbi 说自己从当年那条帖子起就一直在玩,「但你这段时间都去哪儿了!」,这句话正好对应作者博文里那段「原版被我遗弃了」的道歉。
作为参照,2017 年原帖(item 15892066)的讨论要热闹得多:大量评论是在报告各种浏览器和键盘上的操控问题,另一大块是向作者追问网络同步怎么做。DiThi 解释了开多条 TCP 连接的道理:TCP 丢一个包,后面的包都得等重传,开 N 条连接就只有 1/N 的包被卡住,而开火这类关键事件在所有通道上都发一遍,就更不容易迟到。许多人请作者写一篇技术复盘,他回复说「现在正忙着不让服务器被 HN 流量烧化」,承诺事后会写。