Mic Drop:一款实时多人「抢麦」唱歌游戏
文章摘要
Mic Drop(micdrop.gg)是开发者 johnsillings 做的一个浏览器派对游戏,定位是线下经典游戏「Grab the Mic」(抢麦)的免费在线版。规则极简:系统给出一个词,谁想到含这个词的真实歌曲就抢先按下抢麦按钮(buzz in),唱出来,其他玩家投票判定是否算过。支持 2 到 8 名玩家,无需下载 App,也不需要麦克风权限——因为游戏本身完全不播放、不采集、不传输任何音频。
这个「不碰音频」的设计是整个作品最关键的技术取舍,也是 HN 上最有价值的讨论点。作者在评论区解释:游戏不播放也不串流任何声音(他觉得倒是可以加个倒计时音效之类的),玩家实际的使用方式分两种——要么大家人在一起、各自拿手机连进同一局,要么用 Google Meet / Discord 之类的语音工具,唱歌走那条通道。这样一来,浏览器音频管线里所有让人头疼的问题(蓝牙耳机 100–200ms 的额外延迟、iOS Safari 上 audio 元素被暂停后必须再次用户手势才能恢复播放)全部被绕开了。游戏中唯一对延迟敏感的部分是「抢麦」判定谁先按下,但作者认为实践中影响很小:玩家通常要花好几秒才能想出一首符合目标词的歌,几十毫秒的网络差异被人类思考时间淹没了。
服务形态上它是典型的「开个链接就能玩」的轻量多人游戏:房间通过链接分享,玩家在手机或电脑浏览器里直接进入。发布时只有多人模式,没有单人模式——这在 HN 上立刻成了最集中的反馈,作者当场表示要动手加。整个帖子里几乎没有商业化、技术栈、架构层面的信息披露,作者的重心明显在打磨玩法体验,对每一条改进建议都回复「告诉我怎么能让它更好玩」。值得一提的是,游戏名里的「karaoke」(卡拉OK)用词在评论区被质疑名不副实——因为游戏里既没有伴奏也没有歌词滚动,实质是「给一个词,唱一首歌」的文字提示型唱歌游戏,作者也坦率承认这个批评公允。
HN 评论精华
这条帖子拿到 93 分、40 余条评论。讨论主线相当友善且集中在两件事上:一是这个「给词唱歌」的玩法在世界各地都有本土版本,评论区变成了民间游戏考古现场;二是几位工程师直接从技术角度追问延迟与音频同步,结果反被作者「我根本不播音频」的答案化解。作者 johnsillings 几乎回复了每一条评论。
- useiris 提出了本帖技术含量最高的问题:既然是浏览器音频而不是原生客户端,歌词高亮怎么跨玩家同步?「每台手机的音频管线缓冲都不同,光蓝牙耳机就能带来 100–200ms 延迟,如果高亮是按本地播放位置推进而不是共享的服务端时钟,同一个『拍子』上的两个玩家会看到不同的词被点亮,而这对一个讲究歌词时序的游戏至关重要。」他还特别点出 iOS Safari 的坑:一个由用户手势启动的 audio 元素,如果中途暂停(比如有人切标签页去拿饮料)再恢复,可能卡在需要再一次用户点击才能播放的状态,在快节奏回合制派对游戏里,这在那名玩家看来就像游戏在回合中间静默崩了。
- johnsillings 的回答直接拆掉了整个前提:游戏不播放也不串流任何音频,玩家要么线下面对面各自拿手机玩,要么用 Meet/Discord 唱。唯一受延迟影响的是 buzz in 抢麦,但「按我的经验,玩家本来就要花几秒才能想出符合目标词的歌」。
- darkvertex 在作者回复前先猜测实现方式:大概是走同一条 MediaStream 的 WebRTC「metadata track」,这类轨道虽然不在正式规范里,但可以注入到视频帧数据负载中或编码进音频,LiveKit 这类库把它抽象得很好用。_flux 直接反驳:「我认为没有任何浏览器真的能用 WebRTC metadata track。」
- koolala 两次泼冷水,也说到了点子上:「叫卡拉OK有点过誉了,整个游戏就是一个单词提示,叫唱歌游戏更准确」,另一条更干脆:「这不是卡拉OK游戏,根本没有歌词需要同步。」作者回了句「说得公道」。
- kalamarico 抱怨没法一个人试玩,作者反问「没有单人模式(不过我可以加一个!)——除了试水之外,你真会玩单人模式吗?」得到肯定答复后回复「正在做了」。这位用户随后又汇报了土办法:在同一台电脑上开一个普通 Chrome 加一个隐身窗口两个会话,「不是很好玩,但对测试很有用,运行良好!」mortar 也用同样的两标签页办法在手机上先自测过,才决定发给朋友。
- simondebbarma 贡献了最长的文化背景补充:印度长大的孩子玩的 Antakshari(意为「结尾字母的游戏」),2000 年代还有过播了十多年的电视综艺。规则是必须唱一首以上一首歌结尾音(在印地语、普通话、泰语这类声调语言里更讲得通)开头的歌,从一句对句开始起局,唱不出来的人淘汰,且不能重复歌曲;正式规则只允许印度/宝莱坞歌曲。
- HaloZero 说小时候夏令营就玩过:分队,唱一首含有像「love」这样常见词的歌。
- driese 展示了自己做的同类作品(deriese.net/songs.html):要求玩家输入真实歌名和歌手,程序对照歌词数据库校验,目标是一分钟内找出尽可能多含有某个词(或其变体)的歌,「拿到真实歌词是最难的部分,所以不是所有歌都在库里」。
- socalgal2 提到已经存在 14 年的 Smule:随机匹配陌生人合唱、可选自动修音。dabinat 追问远程合唱怎么可能同步,「延迟一上来立刻就听得出来」。rzzzt 给出 Ninjam 的解法:所有人都比别人晚整数个小节在演奏;RevEng 则说 Smule 是轮流录——一个人先独唱,另一个人再和着录音唱。作者补了个趣事:曾在咖啡馆被一位顾客递上 Smule 的名片,去听了他的歌,发现这平台真有铁杆粉丝群体。
- Waterluvian 想起一个实时多人喜剧开放麦游戏,「前提设定太棒了,即便它是个内容审核的原子弹」,后经 goodmythical 和他自己确认是 Steam 上的 Comedy Night(2017 年发售,用户自建房间上台讲笑话或唱歌,观众可以投票把表演者赶下台或起哄)。这条线随后跑偏成一场关于该工作室是否滥用 AI 素材的争论:latexr 指控该工作室在多款游戏间复用 AI 素材且未一律披露,具体点名 Safari Cannon 用了明显是 AI 生成的主图却没有披露(2021 年的游戏,2024 年才换成这张图),而在 Death in the Water 2 里却披露了「游戏内菜单图片」的 AI 使用;braiamp 和 addandsubtract 引用官方声明反驳,latexr 强调自己批评的是工作室而非 Comedy Night 这款游戏。