肉团长是一个基于AI的跑团工具。让玩家可以在一个近乎无比自由的环境当中去进行跑团的游戏。 我想要充分利用AI无限拓展的可能,将DND或者是COC的跑团融入其中。 我们不能让像一般的酒馆那样,让用户拥有几乎无限的权利。我认为那样的话,对游戏体验是一种伤害。 但是我也不想像标准的CRPG那样,用户只能在一个相当有限的框架内游戏。 所以我希望做一个新的产品出来。
- packages/website 网站和线上游戏
- packages/core 共享库
- packages/mobile 移动应用
- Next.js + OpenNext
- Coss UI https://coss.com/ui/docs
- TailwindCSS v4
- TypeScript
- Cloudflare Workers + Cloudflare 全家桶
- better-auth
数据库使用 Cloudflare D1,统一通过 migrations 管理。
- 本地应用迁移:
wrangler d1 migrations apply dnd --local - 线上应用迁移:
wrangler d1 migrations apply dnd
如果之前手动执行过 SQL,请先清理本地数据库或新建本地数据库,再执行迁移。
- 使用 better-auth 的邮箱 + 密码注册/登录,不需要邮箱验证。
- 需要配置
BETTER_AUTH_SECRET(Cloudflare secret 或本地环境变量)用于会话签名。 - better-auth 使用
user/account/session/verification四张表,已加入迁移。
- 剧本是核心元素,定义场景与战斗,同时限定人物卡可选项(技能、装备、职业、出身、Buff / Debuff、属性范围)以及数量上限(技能 / 装备 / Buff / Debuff),默认使用规则内的属性点预算与范围。
- 剧本包含开场对白(openingMessages),用于进入游戏时的背景简介与环境描述。
- 人物卡必须绑定
scriptId,不能跨剧本复用;角色的可选项需受剧本限制,自由字段主要是名字、背景、动机等文本描述。人物卡归属到用户(user_id)。 - 人物卡支持头像(avatar),用于游戏内展示。
- 人物卡记录幸运值(COC 3D6×5),随角色存档。
- 头像存储在 R2(绑定名 ASSETS_BUCKET,桶名 assets),对外域名由
NEXT_PUBLIC_ASSET_URL提供。 - 游戏由
scriptId + characterId开始,确保人物卡与剧本一一匹配;人物卡不可被多次开局复用。 - 首页展示剧本列表与游戏记录,点击剧本进入详情页建卡,完成后开始游戏;也可从首页继续游戏记录。
- 路由约定:剧本详情
/scripts/:id,进入游戏/games/:id。 - 个人设置存储在
user_settings(AI provider / model / dm_profile_id),并在get_session时返回。 - DM 指南拆分为“初步验证”和“具体叙事”,以全局
dm_profiles管理,默认使用is_default=1的风格,用户可选择不同 DM 风格。 - root 用户由环境变量指定,可进入全局配置页面维护 DM 风格与规则。
- 推荐:
ROOT_USER_IDS或ROOT_USER_EMAILS(逗号/换行分隔)。 - 也支持单个值:
ROOT_USER_ID/ROOT_USER_EMAIL。
- 推荐:
- 服务端会校验人物卡选项是否落在剧本清单内,确保无法绕过限制。
- COC 点购默认采用 8 项属性总计 460 点的预算,属性点总和不得超过预算;剧本仅在需要房规时覆盖默认规则。
- 当
attribute_ranges_json为空或attribute_point_budget为 0 时,使用规则默认值。 - 默认属性范围(COC 7e 掷骰):力量/敏捷/体质/意志/外貌 15-90,体型/智力/教育 40-90。
- 点购范围默认沿用上述范围;界面会显示“规则推荐最低值”(默认为规则下限),即便剧本放宽范围也仅提示不强制。
- 技能分配默认采用 quick-start:核心技能值 70×1、60×2、50×3,兴趣技能 2 项 +20(可通过 rules 覆盖)。
- 如需点购,设置 rules.skillAllocationMode="budget";未指定 skillPointBudget 时使用 COC 7e(教育×4 + 智力×2),也可覆盖为固定预算。
- 技能默认上限 75,可通过 rules 覆盖。
- 减益状态默认不在建卡流程中出现,仅当剧本设置 debuffLimit>0 才要求选择,并默认预选前 N 项(可调整但必须选满)。
- 技能检定由服务端函数执行,AI 只提供检定类型与参数(dc/技能/属性);训练技能默认 50,未训练技能默认 20,dc 按规则/剧本/情境决定。
整个游戏仍然像一般的跑团那样。
- DM也就是肉团长负责描述环境,然后接手用户的输入。
- 用户创建角色卡上面会记录角色的各种属性、装备技能等等。
- 通过创建游戏模组来控制游戏的环境和规则。
- 玩家在文本框输入他想采用的行为和要说的话。
- AI需要判断哪些是用户说的话,哪些是用户要采取的行为,哪些是用户希望对周边世界世家的影响。然后根据规则来分别应对这些东西。既要让玩家能够更自由的与这个世界互动,也不能让玩家自意的改变这个世界。
- 网页版,我自己尝试
- 只支持 COC
- 支持添加简单模组
- 自动时间流动
- 支持复杂模组,支持复杂交互
- 支持 BYOK
- 支持 DND
- 支持移动应用