#card-game #online #board-game #rules #system #tabletop #play

bin+lib otter

水獭游戏系统;主数据结构 Rust 包

9 个版本 (4 个稳定版)

1.2.1 2022年6月26日
1.2.0 2022年6月24日
1.1.0 2022年5月26日
1.0.0 2022年4月2日
0.5.1 2021年4月19日

151 in 游戏

每月下载 32 次
用于 5 个包 (4 个直接使用)

AGPL-3.0-or-later

1MB
20K SLoC

Rust 17K SLoC // 0.1% comments TypeScript 2.5K SLoC // 0.1% comments Tera 345 SLoC // 0.1% comments JavaScript 140 SLoC // 0.1% comments Bazel 10 SLoC

简介

水獭,在线桌面游戏环境渲染器,是一个在线游戏系统。

但它与大多数在线游戏系统不同。它不知道(也不需要知道)您正在玩的游戏规则。相反,它让您和您的朋友使用常见的桌面/桌游元素,如牌手、棋盘等。

所以它有点像“桌面模拟器”(但没有3D、物理引擎或类似的东西)。

这意味着使用水獭

  • 支持水獭尚不了解的新游戏,通常不需要编写或修改任何计算机程序。

  • 如果水獭已经有了必要的游戏元素(例如牌),您只需要编写一个规范文件,说明游戏开始时桌上应该有什么。例如,大多数以标准52张牌为起点的惠斯特变体都可以玩。

  • 您可以玩规则随着游戏进行而改变、由玩家制定或过于复杂而难以编写为计算机程序的游

  • 家规没有问题,因为计算机不会强制执行规则——您和您的朋友会。

  • 每个人都可以在任何时候与游戏桌上的不同物品进行交互。(水獭不知道您游戏的轮流机制,因此不知道可能是谁的回合。)

我们用水獭成功有趣地在线玩了 Penultima 和 Mao。

使用水獭玩游戏

水獭游戏环境通过运行 JavaScript 的网页浏览器访问,使用从加入游戏获得的魔法 https 链接。

您在玩游戏时需要能够与您的朋友讨论游戏。水獭与语音聊天配合使用效果很好——我们与仅使用语音模式的 Jitsi 取得了成功。

大多数相对现代的桌面浏览器应该能够与Otter兼容。(所需的最先进功能是支持WebAssembly。)

目前可用的预定义游戏和棋子

目前,Otter在其棋子库中

  • 国际象棋的成分,包括幻棋。因此,有一个棋盘,包括许多幻棋棋子,还有一个棋钟。

  • 卡牌游戏的成分。因此,一副52张的标准扑克牌,加上两种鬼牌。特别为玩家手和拾取牌组设计的“手”和“牌组”棋子。

目前有游戏定义

  • Penultima。这可以直接用来玩标准国际象棋和一些幻棋变体。

  • Mao。这可以用来玩大致相同形状的任何游戏。

使用库中现有的棋子定义新游戏相对容易。也可以在游戏进行中临时添加库中的元素。

局限性

目前,加入游戏需要服务器主机上的Unix shell账户(或shell账户用户的帮助)。

目前还没有公开可用的服务器。服务器代码是自由软件,如果您有合适的虚拟机或服务器,鼓励您自行构建和运行它,供您和朋友使用。

手机并不适合在Otter上玩游戏,因为它们的屏幕太小。平板电脑和其他基于触摸屏的系统可能可以工作,但现在表现不佳。

Otter目前甚至没有内置的文本聊天功能。但它有分享语音聊天URL的方法。

自由软件和用户自由

Otter是自由软件。我编写它是为了解放游戏玩家,使他们无需将游戏规则编码为计算机程序,从而摆脱程序员的暴政。

我非常欢迎贡献,特别是针对我上面提到的局限性,以及改善用户体验。

我还致力于让用户能够定义自己的游戏(包括自己的棋子、牌、棋盘等),而无需在服务器上安装它们。

Otter软件项目托管在Debian的GitLab上,网址为https://salsa.debian.org/iwj/otter

合并请求(附有:-)表明对开发者来源证书的签署)将非常受欢迎。

参考资料

依赖关系

~40–53MB
~769K SLoC