Web应用 活跃维护

Kaetram-Open

Kaetram/Kaetram-Open

Kaetram 是一个开源的 2D HTML5 MMORPG。它是 BrowserQuest (BQ) 的扩展版本。

736
Stars 标星
204
Forks 分支
25
Watchers 关注
13
Open Issues
TypeScript
主要语言
MPL-2.0
开源协议
828.9 MB
仓库大小
1 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Kaetram/Kaetram-Open
git clone https://github.com/Kaetram/Kaetram-Open.git
git clone git@github.com:Kaetram/Kaetram-Open.git
README.md develop

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

注意:KAETRAM 开源项目多年未更新。KAETRAM 不再开源。请不要加入 Discord 寻求开源支持。不过如果你想看看游戏是如何发展的,欢迎随时查看。我不会在任何情况下帮助使用该版本的人,你将完全独立操作。

卡特拉姆

Kaetram 是一个开源的 2D MMORPG,基于 Little Workshop 的 BrowserQuest (BQ) 的原始概念进行扩展。我们的目标是提供协作游戏体验,同时为有兴趣创建自己版本的人提供游戏引擎。游戏仍处于早期开发阶段,欢迎所有帮助、建议和 bug 报告。所有资源均在 CC-BY-SA3.0 许可下发布,我们的目标是保留原始 BQ 资产并在此基础上扩展。整个代码库已从零重新编写,进行了优化和文档化。有关开发的详细信息,请参阅 GitHub wiki。Kaetram 最初于 2015 年以 Tap Tap Adventure (TTA) 的名义开始开发。2017 年,Kaetram 作为完全重写的代码项目启动,之前基于 BQ。

实时版本 – https://kaetram.com

在 Discord 上加入我们 – https://discord.gg/MmbGAaw

技术

BQ最初是在2012年作为HTML5实验编写的,用于展示Web技术的能力。Kaetram在这一理念基础上进行构建,使用现代标准来促进可读性、性能和兼容性。以下是一些主要功能:

  • 使用µWebSockets实现多人游戏。
  • 增强的渲染引擎(包括动态光照、覆盖层、动画瓦片)。
  • 区域/分块系统(客户端根据需要从服务器缓存和保存数据)。
    • 动态瓦片(根据玩家在成就/任务等中的进度变化的瓦片)。
    • 全局对象(如树等瓦片,未来将增加更多,玩家可以与之互动)。
  • 玩家之间的交易。
  • 具有聊天和多世界支持的公会系统。
  • 武器附魔系统。
  • 任务和成就系统。
  • 技能系统。
  • 攻击方式系统。
  • 特殊游戏事件的小游戏系统。
  • 基于插件的怪物行为(用于特殊怪物,如Boss)。
  • 基于插件的物品互动。
  • 跨服务器通信/同步的中心系统(私人消息、全局消息)。
  • Discord服务器集成(游戏内和Discord服务器可以互相通信)。
  • 增强的地图解析,支持压缩瓦片地图。
  • Yarn v3,支持单仓库打包的工作区。
  • 服务器间的玩家同步(好友列表、公会、登录状态)。
  • 使用 REST API 的游戏内排行榜。

入门

先决条件

你必须首先安装 Node.js来运行该项目,并且_可选_地安装 MongoDB来在服务器上存储用户数据。

注意:Node.js

你需要使用大于或等于 v16.17.1 的 Node.js 版本,遵循
长期支持 (LTS) 时间表,以在开发/实验 Kaetram 时获得最稳定的体验。较旧的版本将无法与我们当前的依赖项和包管理器兼容。

注意:MongoDB

MongoDB 并不是 Kaetram 运行的必需条件,但如果你安装它并运行启用所有功能的在线环境,你可以存储和保存用户数据。有关操作,请参见
配置,并设置 SKIP_DATABASE=false。_如果你选择安装
MongoDB,用户不是必需的,但你可以通过 MONGODB_AUTH 启用身份验证
设置._

纱线

你还需要通过 Corepack 启用 Yarn,以管理依赖项。

管理 Yarn 的首选方式是通过 Corepack,这是随所有 Node.js 发行版一起提供的新二进制文件 [...]

要启用它,请运行以下命令:

https://yarnpkg.com/getting-started/install

安装中

通过简单运行安装依赖项

yarn

运行中

您必须通过在环境变量文件中切换 ACCEPT_LICENSE 来接受 MPL2.0 和 OPL 许可协议。在您完成此操作之前,服务器和客户端将被禁用。

要运行实时开发构建,请使用

yarn dev

要创建生产构建,请运行

yarn build

然后,要运行每个生产构建,使用

yarn start

配置

可选地,如果您想进行一些额外的配置,有一个名为 .env.defaults 的文件,除非被新的 .env 文件覆盖,否则会使用该文件的值。

复制并重命名 .env.defaults 为 .env,并修改内容以满足您的需求。

请记住,每次更改配置后,您都需要重新构建客户端并重启服务器。

测试

端到端

作为运行 E2E 测试的前提条件,您需要一个正在运行的 MongoDB 服务器。

仅用于测试环境的配置可以在 .env.e2e 上进行配置。它的所有值将回退到 .env,然后回退到 .env.defaults (如果存在)。

要在控制台上运行测试,请使用

yarn test:run

或者,如果你想以交互方式打开测试环境,以便你可以在用户界面中选择要运行的测试,请使用

yarn test:open

功能

区域

区域系统的工作方式是将地图分割成较小的块,然后发送给客户端。客户端缓存地图数据并将其存储在本地存储中以加快加载速度。当存在新地图版本时,客户端会清除缓存并重新开始该过程。区域系统分为静态瓦片和动态瓦片。静态瓦片不会发生变化,是地图的永久部分。动态瓦片会根据条件变化,例如玩家的成就/任务进度,或者在树木的情况下,取决于树是否被砍伐。未来,我们计划使用此区域系统创建区域的实例化版本,例如同时运行多个小游戏实例。

使用夸张示例展示区域系统的视频示例:

瓦片地图

Kaetram 使用 Tiled Map Editor 创建和修改地图。我们的 地图解析 工具用于导出地图数据的压缩版本。服务器接收大量信息并用其计算碰撞、瓦片数据和区域(PvP、音乐等)。客户端存储最少数据,例如瓦片“z-index”和动画。

地图解析

在 packages/tools/map/data/ 中完成地图修改后,可以通过在 packages/tools/ 目录中执行 yarn exportmap 来解析地图数据。

示例命令:

yarn exportmap ./data/map.json

要构建当前的游戏地图,你可以运行

yarn map

Kaetram 中心

该中心充当服务器之间的网关。由于 NodeJS 的性能限制,托管多个服务器比托管包含数千玩家的大型服务器更可行。中心正是执行此操作,一旦中心运行,并且服务器实例获得了中心的主机地址,它将自动连接。中心成为客户端的主要连接点。当收到连接请求时,中心会选择第一个有空位的服务器。或者,它允许玩家从服务器列表中选择任意服务器。

要启用中心服务器,请参阅 配置,并将这些值设置为 true。

API_ENABLED=true
HUB_ENABLED=true

路线图

这里是 路线图项目面板。这是 Kaetram-Open 项目的主面板。一种用于跟踪和向社区展示进度的看板任务板。在这里我们计划、优先排序并跟踪我们的工作。

另请参阅 未解决的问题,查看提议的功能列表(以及已知问题)。

待办事项

  • 为武器添加特殊攻击
  • 为特殊能力添加功能
  • 武器/盔甲/戒指/挂饰附魔
  • 丰富游戏内容(添加更多技能、小游戏、活动、物品等)
  • 改善移动设备上的用户界面可用性
  • 一旦 alpha 版结束,将路径寻找移至服务器端

捐赠

加密

BTC – bc1qeh0tdlkuc5q82j2qk9h3sqmwe6uy75qpjtc0dv

LTC – MMRo7dfAi2T8rJrx7m3DmzhsgHRC7XJ83f

ETH – 0x4c6de7175f789DAf0f531477753B07402EEfedaC

BCH – bitcoincash:qzx6uqunqj4mtv74jng97pea0mfcl4nmyqsew92enu

许可与佣金

在测试版发布之后,Kaetram-Open 将每 2-4 周更新一次。不会再有关于精灵画、音乐、物品/怪物/NPC 等属性的更新。该代码库将为您提供创建自己版本的 Kaetram 所需的工具,其中包含了大量资源。后续的修改将主要是游戏引擎的改进。

关于购买不同许可证、委托工作或购买我们最新版本的访问权限的所有查询,请通过 Discord 联系 @kaetram 或发送电子邮件至 admin@kaetram.com.

本项目根据 Mozilla 公共许可证版本 2.0 发布。更多信息请参见 LICENSE。

此外,Kaetram 随附第二许可,Omnia 公共许可证 (OPL):

  • 您必须在致谢部分提供指向 Kaetram 的直接链接。
  • 您必须保持代码开源并继续保持开源。
  • 未经创作者直接许可,您不得将本项目或其中任何部分用于人工智能、加密货币或 NFT 相关的任何用途。
  • 您不得删除致谢部分。致谢部分必须在网站首页可见,并且必须按照 W3C 可访问性标准 易于所有访问该项目的用户访问。
  • 您不得删除任何对本项目艺术家、音乐家或其他原始创作者的致谢。
  • 您不得将本项目或其任何部分用于销售在线课程,但可以用于一般流媒体平台,包括基于观看量的收入。
  • 您不得将本项目或其任何部分用于任何非法活动。
  • 您不得将本项目或其任何部分用于传播仇恨、种族主义或任何形式的歧视行为。

如有任何问题,请在 Discord 上联系 @kaetram。

本站来源与版权声明
  • 本文标题:Kaetram-Open - Kaetram 是一个开源的 2D HTML5 MM
  • 本文链接:https://www.cn121.com/webapp/kaetram-kaetram-open.html
  • 原项目:Kaetram/Kaetram-Open 版权归原作者 Kaetram 及贡献者所有
  • 收录信息:本站于 2026-09-30 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MPL-2.0(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 Kaetram/Kaetram-Open。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。