TMC 游戏平台 - The Modding Community

MIT 许可证,开源 早期阶段

面向多人游戏的开源 Godot 插件

Dot 是一组开源的 Godot 插件,涵盖账户、专用服务器、管理、小队和语音。基于它的游戏通过链接在浏览器标签页中启动,其服务器会出现在我们的服务器浏览器中。

  • Godot 4.7 或更新版本
  • 在浏览器标签页中游玩
  • 专用服务器

早期阶段。每个插件都有自己的测试套件并能通过,但目前很少有玩家用过整套系统。请预期会有一些粗糙之处。

project.godot dot-server
您的游戏
game-arenagame-hungariomg-prop-hunt
Dot 插件
dot-authdot-serverdot-partydot-moderationdot-voicedot-net
The Modding Community
游玩中心服务器浏览器内容包Workshop
各部分如何衔接

上面是您的游戏,中间是 Dot,下面是网站

共三层。选择其中一层,查看它做什么,以及哪些部分仍需由您来写。

Dot 插件

60 多个插件,可逐个选用。只有 dot-core 是硬性依赖。其余插件在运行时被发现,因此游戏只携带它用到的部分。

  • 账户、头像和登录。
  • 专用服务器框架,带有查询、部署和安全工具。
  • 小队、匹配、好友、文字聊天和语音聊天。
  • 管理、回放、排行榜和成就。

选择一层即可了解详情。

与众不同之处

这里有什么不一样

以下内容目前都存在于代码中。凡是只测试了一部分的,卡片上都会注明。

同一个客户端,浏览器或桌面

dot-server-deploy 会为浏览器以及 Linux、Windows 和 macOS 导出同一个客户端。服务器对浏览器通过 WebSocket 监听,对桌面客户端通过 ENet 监听,可让两者进入同一场对局。浏览器导出仅在无头 Chromium 中测试过,桌面版本尚未发布。

游戏以签名包的形式送达

游戏是一个内容包,用 RSA 签名,并在挂载前由 dot-cloud 校验。所有游戏使用同一个客户端,因此新游戏不需要下载新客户端。

服务器永远不知道您是谁

游戏服务器收到的是为该服务器派生的密钥,而不是您的账户 ID。两个服务器所有者无法通过比对日志来跨平台追踪某位玩家。dot-user 与网站使用同样的派生方式。

一个头像,所有游戏通用

头像是服务器可以校验的小型文档,存放在网站上。它通过公开且有文档的协议跟随您进入游戏服务器,因此您的外观不必为每款游戏重做。

会员可以发布游戏

任何已登录的会员都可以创建游戏或小游戏,带有页面、分类、权限,以及从“开发中”到“已发布”的开发阶段。网站和游戏所有者都可以要求在某个版本到达玩家之前进行审核。

上架列表,数据实时

dot-server-query 可响应 A2S(大多数服务器追踪器已支持的查询),也可响应自有的、更丰富且同样支持 WebSocket 的协议。向网站汇报的服务器会连同在线玩家一起出现在服务器浏览器中。

多款游戏,一个平台

同一套插件和同一个账号服务于众多游戏和小游戏。每款游戏在网站上都有自己的页面,您的登录、头像和好友会一路跟随。

任何人都能运行服务器

为任何 Dot 游戏搭建社区服务器,只差一个工具。查看步骤。

每个游戏的排行榜与统计

每个游戏声明自己的排行榜:按什么排名(时间、分数、积分或罚分)、单位,以及地图、赛道或风格等范围,这些范围会成为页面上的筛选项。统计由游戏服务器记录并上报给网站,所以数字来自服务器,而不是玩家。服务器的排行榜显示在该服务器的页面上,游戏所有者批准的服务器还会汇入游戏自己的排行榜。击杀数、最高速度等玩家统计也以同样方式上报。
插件

只取您需要的部分

从 60 多个插件中挑选的一部分,每个都有自己的仓库。可按您正在构建的内容筛选,也可按名称搜索。

显示 36 个

点击“游玩”

从一个链接到一场正在进行的游戏

有人在服务器或游戏页面上点击“游玩”之后会发生什么。可以逐步查看。

第 1 步,共 5 步

一个链接

在服务器页面、游戏页面或游玩中心点击“游玩”,会在您当前所在页面之上打开一个启动窗口。如果您已登录,游戏会通过一个短代码(而不是令牌)知道您是谁,因此无需再次登录。

网站侧:游玩中心和网页播放器。

运行您自己的服务器

托管游戏,只需六步

任何人都可以为任何 Dot 游戏运行社区服务器。您需要一个终端,以及 Linux 或 Docker。其余由 dot-server-deploy 完成。

  1. 1

    获取工具

    克隆 dot-server-deploy,即 Dot 游戏服务器的启动器。

    git clone https://github.com/modcommunity/dot-server-deploy
    cd dot-server-deploy
  2. 2

    运行安装

    运行一次安装脚本,它会准备好服务器及其配置。

    ./setup.sh
  3. 3

    启动游戏

    指定要启动的游戏。使用 Docker 时,docker compose up -d 效果相同。

    ./server --games arena
    # or, with Docker
    docker compose up -d
  4. 4

    回答问题

    完整安装会就您的服务器提出约十个问题,然后写入配置。

    ./setup.sh --full
  5. 5

    在网站上登记

    在网站上打开添加服务器页面,选择游戏并输入地址和端口。服务器启动时会向网站证明自己能在该地址响应(注册),获得专属凭证,并自行写入列表信息。

  6. 6

    调整

    在 cfg/content.yml 中修改设置、地图和模组,在 cfg/packs.yml 中管理内容包,然后重启。

    cfg/content.yml
    cfg/packs.yml
Dot Workbench

在游戏运行时编辑

dot-workbench 是用于运行中游戏的实时编辑器。修改配置档案,游戏无需重启即可应用。

游戏内面板

在运行中的游戏里打开面板,边玩边调整数值。

本地网页

一个在您自己机器上的页面。默认关闭,并由令牌文件保护,因此只有您能使用。

JSON API

同样的配置档案编辑,以纯 JSON 提供,供脚本和工具使用。
示例在游戏运行时调整怪物
类型: npc已实时应用
  • crawler
  • leaper
  • spitter

Leaper

共 5 项设置,其中 2 项与默认值不同

保存到: 服务器运行时层(实时,已复制)

这是为本页绘制的示意图,不是截图。字段名和初始值来自 game-zombie-zone 中的 leaper 配置档案。实际的面板和页面外观可能不同。

它编辑的是配置档案。场景和代码仍在 Godot 编辑器中修改。

目标

我们 想达成的目标

这些是目标,而不是待办清单。平台还处于早期阶段,各部分的进展请见路线图。

  1. 1

    原版 Godot,而非分叉

    不需要这些的游戏仍是普通的 Godot 项目。我们只添加插件和一个开放协议,您只需取用需要的部分。

  2. 2

    开放,人人都能自己运行

    插件采用 MIT 许可证,后端协议是开放的。我们运行一个实例,任何人都可以运行自己的实例。

  3. 3

    易于启动的社区服务器

    启动专用服务器应当只需一条命令,向网站上报的服务器会出现在服务器浏览器中。

  4. 4

    一个账号通用所有游戏

    您的登录、头像、好友和队伍会跟随您在游戏之间切换,而游戏服务器只能看到为它生成的密钥。

  5. 5

    通过链接即可进入

    游戏应当能通过链接启动,无论在浏览器标签页还是桌面端,两类玩家可进入同一场对局。手机端是目标,尚未构建。

  6. 6

    成员发布自己的游戏

    任何成员都可以在网站上发布带有独立页面的游戏或小游戏,网站和游戏所有者都可以要求审核。

  7. 7

    来到这里的理由

    平台目前还是空的,Zee's Games 正在把人们在老游戏里喜爱的玩法带过来:冲浪和兔子跳、Prop Hunt、DeathRun、Hide and Seek 和 Murder Mystery。其中大多数还没有完成。

  8. 8

    开发者销售并发布自己的内容

    开发者将可以通过本网站向玩家出售物品,并在平台上发布自己的内容和头像。目前尚不可用。游戏已经以签名内容包的形式送达玩家,成员也可以在 Workshop 中订阅内容包,但销售和开发者头像尚未构建。

基于它构建

建立在平台之上的项目

平台上的第一个项目,也是最能说明平台用途的项目。

Zee's Games

MIT

采用 MIT 许可证、基于 Dot 插件制作的真实游戏和小游戏,作者就是构建平台的人。

它的目标,来自它自己的目标页面

  1. 1 展示平台能做什么。这些游戏演示了移动、战斗、载具、NPC、物理、排行榜、小队、匹配和专用服务器,使用的是任何项目都能使用的同一批开放 Dot 插件。
  2. 2 值得一玩。作为演示并不是做出无聊游戏的借口,所以每个游戏都有自己的地图、模式和打磨。
  3. 3 面向社区服务器。任何人都应该能够通过 Dot Server Deploy 仓库,用其中一个或多个游戏开一台服务器。
  4. 4 您的服务器,您的规则。服务器所有者可以更改游戏以及所用各个插件的设置,然后把服务器和游戏列到平台上。
  5. 5 随处加入。玩家可通过网页浏览器、桌面应用或手机进入已列出的服务器,所有人都在同一批服务器上游玩。
  6. 6 一台服务器,多款游戏。一台服务器运行多款游戏,并在玩家保持连接的情况下切换,就像 Garry's Mod 和 Counter-Strike 的社区服务器切换地图一样。
  7. 7 内容自动送达。当游戏或地图变化时,玩家会从平台的 CDN 下载所需内容。
  8. 8 免费且开源。每个游戏、地图包和插件都在 GitHub 上开源。大多数游戏尚未完成,并且是用 Claude Code 制作的,作者对此直言不讳。

与平台目标的关系

游戏的目标在哪些地方与上述目标一致,哪些地方不一致。

  • 展示平台能做什么,并且值得一玩。 对应“来到这里的理由”。游戏就是这个理由:移植过来的经典玩法,例如冲浪和兔子跳、Prop Hunt 和 DeathRun。
  • 社区服务器,每个都有自己的规则。 对应“易于启动的社区服务器”和“开放,人人都能自己运行”。目标相同,只是从游戏的角度来看。
  • 通过浏览器、桌面应用或手机加入。 浏览器和桌面端对应“通过链接即可进入”。手机端不同:平台只把它列为目标,尚未构建。
  • 免费且开源。 对应“开放,人人都能自己运行”。许可证涵盖插件和游戏;网站后端和桌面应用有各自的许可证。

它有两个目标在平台目标中没有对应项:一台服务器运行多个游戏,以及内容自动送达。它们描述的是游戏,而不是平台的目标。

这些游戏位于 GitHub 组织 zees-games 中。大多数尚未完成。

MIT 许可证,开源

阅读它。分叉它。发布它。

Dot 插件和本页面上的游戏,在各自的仓库中都带有 MIT LICENSE 文件。您可以在商业游戏中使用、修改和再分发它们。保留版权声明即可。

阅读它如何运作

每个插件都是一个小型仓库,带有自己的文档和测试套件。

分叉您需要的部分

取一个插件,或取全部。只有 dot-core 是硬性依赖。

运行您自己的服务器

用 dot-server-deploy 一条命令启动专用服务器,并选择它连接我们的后端还是您自己的后端。

许可证涵盖 Dot 插件和 Zee's Games 的仓库。网站后端和桌面应用是独立项目,各有自己的许可证。

在 GitHub 上阅读代码

试一试,或者先读代码

打开游玩中心加入一场游戏,浏览实时服务器,或者阅读文档并克隆一个插件。