Alphabet Soup:一款拼出最长单词才能获胜的多人游戏

查看原文 HN 讨论

文章摘要

Alphabet Soup(字母汤)是开发者 John Chin-Jew 做的一款极简多人拼字游戏,网址 alphabetsoup.club。规则一句话就能说完:系统给出 7 个随机字母,所有玩家同时在限定时间内拼单词,只有你拼出的最长的那个词计入得分

作者在 Show HN 的自述里把它和《纽约时报》的 Spelling Bee 做了对比:Spelling Bee 是单人的、鼓励你尽可能多找词;Alphabet Soup 是多人的,且只算最佳成绩,所以游戏的重心从「找得多」彻底转向了「找到一个异常出色的词」。这个改动看似微小,实际上把游戏的心理结构整个换掉了——你不再是在刷数量,而是在赌一个高分词。

产品形态非常轻。首页只有两个按钮:「Arena」进公开对战,跟当时在线的其他玩家匹配;「Play with friends」创建私人房间跟一个或多个朋友玩。如果 Arena 里没人,系统会给你匹配一个机器人(在游戏里以一个鸭子 emoji 出现),保证任何时候点进来都有得玩。因为游戏不是回合制的(所有人同时拼词),所以人数扩展性很好——两个人能玩,一大群人也能玩,不会出现回合制游戏里等人的问题。

技术栈方面,作者在评论里透露用的是 Elixir 的 Phoenix LiveView 加 PubSub 来保持所有人浏览器状态同步——从页面源码里也能看到 data-phx-sessionphx-click 这些 LiveView 的痕迹,以及 Tailwind 的类名。整个游戏没有前端框架的重型 SPA 结构,服务端渲染 + WebSocket 推送就把实时多人做完了,这本身就是 LiveView 适用场景的一个不错的示范。部署在 Railway 上(Show HN 期间 Railway 出过一次故障,把游戏搞挂了一阵)。

游戏有几条规则在初版里没写清楚,导致评论区反复被问:可以重复使用同一个字母;不要求用满全部 7 个字母(即不必是 pangram);最初还允许专有名词。作者在讨论过程中现场迭代,添加了「How to play」说明、加了 emoji 表情按钮、移除了专有名词、修了一个已用词判定的 bug。这种 Show HN 现场滚动发版的节奏,本身也是帖子好看的一部分。

HN 评论精华

36 分,讨论规模不大但质量很高,几乎全是建设性的产品反馈,作者 johnchinjew 几乎回复了每一条。