机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
注意: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 发行版一起提供的新二进制文件 [...]
要启用它,请运行以下命令:
安装中
通过简单运行安装依赖项
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://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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。