跳到正文
YiBoard

2026-10-21

观战与解说功能规划

观战从第一局五子棋上线那天就写在愿望清单上,之后一直被排在后面。这篇是计划的老实版本:观战要做什么、为什么它先是隐私问题、解说席要怎么才不添乱,以及按什么顺序做。

#spectator#product#roadmap

五子棋第一局上线那天,观战就被写进了愿望清单,之后一直被需求更多的人排到后面。这篇是这份计划的老实版本:一个 game spectate feature 在 YiBoard 上要做什么,为什么「看别人下棋」先是一个隐私问题、其次才是一个功能,以及 watch games feature(观战)和 commentate matches(解说)上线之前我们得先建好什么。五子棋现在就能在 yiboardgame.com 的对战页开一局。

观战功能到底要做什么

YiBoard 上一盘棋,服务器上存的就是一串落子和一个时钟,没有别的。所以观众看到的,理论上可以和两位对局者看到的完全一样,只差一件事:观众拿到的数据要晚。我们打算用按手数计的延迟,而不是按秒计,这样一场正在直播的棋局不可能被人拿来帮正在下棋的人。之前那篇观战模式把它写成一个学棋的工具,它同时也是决定实时观战能不能安全存在的那块地基。

隐私那部分要排在前面

半夜打开棋盘下两局的人,没有谁默认同意被围观。所以默认值是关的:一盘棋只对下棋的两个人可见,观战必须由其中一人主动分享出来的链接开启。这条链接带的是这盘棋,不是对局者的名字,也不是他们的段位记录,棋局结束链接就失效。棋谱回放是另一件事,要在棋下完之后,由分享的人再决定一次。

  • 观战按每一局单独开启,不存在账号设置里默认开着的情况
  • 分享链接只暴露棋谱,不暴露段位和账号
  • 观众看到的棋盘比实战晚几手
  • 对局双方随时能看到谁在看,也可以随时关掉

棋局直播,为什么实时比录播难

转播一盘棋和转播一款射击游戏不是一回事。屏幕上只有两个人在想,有意思的部分发生在他们脑子里,而观战界面上什么都没有。我们试过几种让空棋盘显得不那么空的办法,在截图里好看的那几个,全都让棋本身变得更难读。

  • 落子动画:截图里好看,实际让人觉得棋下得慢,性能优化那篇写过这个取舍
  • 候选点高亮:观众以为那是提示,对局者以为那是泄密
  • 胜率曲线:五子棋的估值函数是我们手写的,曲线抖得厉害,看了反而误导
  • 聊天框:没有 moderator 就不开

解说一盘棋,怎么不添乱

解说要有用,前提是下棋的人看不到。所以解说席是单向的:解说员说话,观众读到,棋盘上的人什么都收不到。解说员也拿不到比观众更多的信息,双方的手数延迟对他是同一个值。这几条不是礼貌问题,是这个功能能不能存在的前提。

我们打算按这个顺序做

  • 第一步:棋谱回放链接。棋下完之后可以发出去的那条,带一个拖动条
  • 第二步:带延迟的实时观战,只走邀请链接
  • 第三步:解说角色。一个人说,观众看,对局者无感
  • 第四步:公开观战房间,只有在第三步没有变成一份 moderation 工作之后才会做

什么时候来

在象棋之后。观战要建在裁判内核之上,而象棋正在把裁判内核改得更复杂,等它稳定下来再往上搭,比现在搭完再改一遍省事。在那之前,排行榜是唯一能看到别人怎么下棋的地方,而下棋本身在对战页一直是开着的。

FAQ

观战会暴露我的段位吗?

不会。分享链接只带这盘棋的棋谱,不带账号和段位记录。

观众看到的棋局延迟多少?

按手数算,几手棋。这样正在直播的棋局没法被用来帮正在下的人。

解说员能看到我看不到的东西吗?

不能。他和观众用的是同一份延迟数据,只是多了一个说话的位置。

别人的棋局我能随便看吗?

不能。观战必须由对局者之一分享出链接,公开房间还没有做。

在 yiboardgame.com 免费下一局五子棋

Related

explore.title

YiBoard (yiboardgame.com) — 中华棋类,浏览器即玩,免费无注册。 去下一局 · 更多博客 · 玩法指南