Show HN:Boardzilla,一个用于制作基于网页的桌游的框架

一个名为 Boardzilla 的新框架旨在让构建和托管基于网页的桌游更容易,它提供了一个基于 TypeScript 的引擎,可在客户端和服务器上运行共享游戏逻辑。评论者赞赏它对桌面游戏机制和原型设计的关注,但也对其非标准的 Commons Clause 许可、缺少 Python 支持、依赖 React,以及文档缺口、浏览器兼容性 bug、过度依赖 Discord 提供支持等实际问题表示担忧。关于“-zilla”名称带来的知识产权风险,以及它与 Board Game Arena 和 Asmodee 竞争的难度也存在争论,因此一些人认为其主要机会在于独立游戏和面向发行商的工具,而不是主流大作。

许可与开源问题

  • 核心引擎目前使用 Commons Clause,许多评论者认为这不属于 FOSS,并且存在问题。
  • 有人建议改用 AGPLv3:它仍然是自由/开源的,Linux 发行版也可接受,但大公司会避开它,而一些人认为这反而是优点。
  • 作者表示他们会重新审视许可,并被提醒如有需要可以采用商业双重许可。

与现有平台的定位及游戏权利

  • 许多人将其与 Board Game Arena(BGA)相比;它的定位是“像 BGA,不是 Tabletop Simulator”。
  • 担忧点在于:Asmodee 拥有 BGA 以及许多发行商,这使得为大作获取授权很困难;有人建议聚焦独立发行商和原型。
  • 法律说明:机制本身不能受版权保护,但美术、名称和规则文本可以;社区通常不赞成明显的克隆作品。

技术选择与架构

  • 游戏只需用 TypeScript 编写一次,就能在客户端和服务器两端运行;这也是为什么没有单独的 Python 后端。
  • React 只被轻量使用,主要用于 JSX;重动画不在 React 中处理。由于包体积,一些人建议使用更精简的替代方案。
  • 抽象包括:PiecePlayerSpaceGameAction,以及一个“flow”树(阶段、循环、everyPlayer 用于同时行动)。
  • 计划支持可插拔 AI;已有一个 TestRunner 类用于自动化游玩。

Python、Lua 与语言之争

  • 一些用户强烈希望服务器端使用 Python,理由是生态和表达能力。
  • 另一些人认为 TS 适合共享客户端/服务器逻辑,而对维护者来说迁移到 Python 并不“简单”。
  • 还有关于 Lua 在游戏中受欢迎程度,以及其面向对象模式是否足够的旁支讨论。

自托管与部署

  • 支持本地开发;一个清晰的自托管“单游戏运行器”已在计划中,但尚未完成。
  • 有人表示,如果落地页没有突出自托管,他们几乎会跳过这个项目。

Bug、兼容性与用户体验

  • 多次报告旧浏览器/iOS 上的 Object.hasOwn 错误;已经添加 polyfill,但需要反复迭代。
  • 还指出一些小问题:致谢中的拼写错误、缺少邮件通知退订,以及某些游戏内规则 bug。
  • 评论者强调,长期成功取决于 UI/UX 和活跃玩家基础,而不仅仅是引擎质量。

命名、商标与品牌

  • 对使用“*zilla”有强烈警告,因为 Godzilla 商标执法很激进,而且其 logo 看起来也很相似;几位用户建议改名。

文档、上手与社区渠道

  • 大家普遍赞赏其雄心,但反复呼吁提供逐步教程和更清晰的文档。
  • 落地页因把“加入我们的 Discord”放在首位而受到批评;一些人不喜欢把 Discord 当作 شبه 文档渠道,更偏好可搜索的静态文档。