[Go] 现在跑团当 GM 门槛太高了,不但要会编故事,还得会写飞书 bot

1 月 16 日
 nirvam

缘起

最近我的 GM 魂又有点蠢蠢欲动,就组织了一群损友在飞书上跑《魔王之影》的文字团,苦于飞书没有现成好用的骰子 bot 轮子,每次都要切出去投骰子很断节奏。

恰好前段时间读 SICP 有点上头,满脑子都是求值器,就想着干脆自己上手撸一个,顺便实战学习( vibe coding )一下 AST 的解析。

于是就有了这个 🎲Feishu Dice Bot🤖

项目介绍

这是一个基于 Go 编写,通过 WebSocket 连接飞书开放平台的轻量级掷骰机器人。 主打零门槛部署多种规则支持

解决了什么痛点?

  1. 无公网 IP 痛点:利用飞书的 WS 长连接模式,不需要公网 IP ,不需要域名备案,也不用配置内网穿透。家里 NAS 或云服务器跑个 Docker 就能用。
  2. 复杂规则支持:既然是为了跑团写的,自然要比微信🎲表情要强那么一丢丢。
    • 魔王之影/D&D1d20+1 - 2d6^ (属性检定+阻挠:投 d20+1 ,减去 2 个 d6 中最大的那个)
    • 建卡4d6^3 (投 4 取 3)
    • FATE4dF+2 (Fudge 骰子)
    • 统计:内置了简单的统计模块,甚至能生成欧非排行榜。
  3. 两种输出格式:支持纯文本和卡片两种消息格式,丰俭自由。

技术实现

既然是受 SICP 启发,核心的表达式求值部分自然没有用现成的库,而是请 Gemini 老师手写了 LexerParser

效果预览

User: 1d20+5 Bot: 18 Details: 13 + 5

仓库地址

开源在 GitHub (MIT License):https://github.com/nirvam/feishu-dice-bot

欢迎 star 和 pr !

题外话

顺便强力安利一下“痛苦大师” Robert J. Schwalb 设计的 TRPG 规则 《魔王之影》(Shadow of the Demon Lord) ,世设比 5e 有趣,规则比 FATE 直观。感兴趣的朋友可以去机核网,试听一下位面旅行者 G 的两期世设和规则介绍节目,讲得非常有“味道”。

1618 次点击
所在节点    分享创造
1 条回复
Tumblr
1 月 16 日
GM 。。。我以为是 General Manager 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1186105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX