FeroxFoxxo/MQReawakened

GitHub: FeroxFoxxo/MQReawakened

一款面向已停运 MMO「Monkey Quest」的开源服务端模拟器,实现完整登录与游戏世界逻辑,支持 Docker 部署与跨平台服务端运行。

Stars: 88 | Forks: 20


A community-driven server emulator, written completely from scratch in C#, for MQ!

License Wiki Setup Wiki Stars

This server is completely free from the original game's assets / intellectual property.

None of the repo, the tool, nor the repo owner is affiliated with or sponsored by any affiliates of the original game.

### 信息 如果您在使用代码时遇到任何问题,请通过[仓库的 Issue 系统](https://github.com/FeroxFoxxo/MQReawakened/issues)提交 Issue,相关问题会被分配给相应的人员。 如果您需要报告关于此仓库的任何事项,或者通过其他方式联系我,可以通过 feroxfoxxo@gmail.com 找到我。 ### 前置条件 - 您**必须**提供*您自己*的游戏副本及其相关的 asset bundles。 - 您**必须**提供*您自己*从游戏中提取的相关 DLL 文件,这些文件将在编译时添加到服务器本身 —— 以确保本仓库不包含任何受版权保护的代码。 ## 如何设置 MQReawakened 请阅读[关于如何设置 MQReawakened 的开发者指南](https://github.com/FeroxFoxxo/MQReawakened/wiki/Setting-Up-The-Development-Environment)。 关于使用 Docker 部署并让服务器上线,请参阅分步指南:[SETUP.md](SETUP.md)。 如果您想游玩 2012 年或更早的版本(不推荐),请使用*全新改进版!*[MQClient(在此处找到)](https://github.com/FeroxFoxxo/MQClient)。 否则,只需编辑原始游戏客户端中的 `settings.txt` 和 `game/LocalBuildConfig.xml` 文件,将其指向您尝试连接的 MQReawakened 服务器,替换默认提供的配置即可。 ## 游戏玩法 该项目的目标是忠实地重现目标构建版本当时的游戏原貌。 虽然大部分功能已经实现,且游戏可以从头玩到尾,但仍可能存在功能缺失或 Bug。 在托管本地服务器时,您默认拥有所有命令的访问权限(账号等级:owner)。 ## 架构 MQ 由以下组件组成: * 一个通过 HTTP 提供服务的登录服务器和资源托管服务 * 一个通过 TCP 通信并使用 MQ 网络协议的 Shard 服务器 #### 针对 2012 版本 * 一个兼容旧版 NPAPI 插件接口的网页浏览器 * 一个包含游戏代码和必要资源(如加载界面等)的 `.unity3d` bundle #### 针对 2013/2014 版本 * 一个 Unity 可执行文件,通常位于 /game/ 文件夹中,以及一个启动器。 登录服务器和 Shard 服务器都运行在同一个 Asp.Net 应用程序中,正如本 git 仓库所示。 原始游戏使用玩家的实际网络浏览器来启动游戏。但自那以后,游戏所依赖的 NPAPI 插件接口已被弃用,并且在大多数现代浏览器中不再可用。MQR 通过分发旧版本的 Electron(一种专用的网页浏览器软件包)来解决这个问题。 浏览器/Electron 客户端会打开一个包含适当 MIME 类型 `` 标签的网页,其中 `src` 参数指向游戏的 `.unity3d` 入口点。这会触发浏览器加载一个处理该 MIME 类型的 NPAPI 插件,在这种情况下就是 Unity Web Player。 *(类似于 https://github.com/OpenFusionProject/OpenFusion)* ### 其他信息 - 您也可以下载 ILSpy 来查看原始游戏的任何依赖项,了解它们的工作原理,并对它们进行逆向工程以开发服务器端实现。 - https://sourceforge.net/projects/ilspy.mirror ### 在 Linux 上运行游戏客户端 虽然 MQ 服务器支持 Windows 和 Linux(以及其他类 Unix 系统),但由于运行游戏所需的 NPAPI Unity Web Player 插件,游戏客户端本身仅支持 Windows。不过,如果配置得当,客户端在 Wine 中运行得非常好。 由于人们使用的 Wine 前缀管理器多种多样(除了可以选择手动配置您的 Wine 前缀外),您可以通过多种方式设置游戏。无论您偏好哪种方式,对于 MQ,您都需要满足以下几个依赖项: - Electron (MQClient.exe) 需要所有字体才能运行 - 它还需要使用以下参数运行:--no-sandbox --disable-gpu - 强烈建议使用 DXVK 而不是 wined3d,以避免诸如任务指示环无法渲染等图形故障 虽然我们尚未编写完整的操作指南,但访问 OpenFusion 的 Linux 客户端运行指南(另一个 Unity WebPlayer MMO)可能会为您提供足够的入门理解。 ### 开源许可证 - AssetRipper.IO.Endian - 二进制读写实用程序 [许可证](https://github.com/FeroxFoxxo/MQReawakened/blob/main/Web.AssetBundles/Licences/LICENSE_ASSETRIPPER) - AssetStudio - 用于探索原始 assetbundles 的工具 [许可证](https://github.com/FeroxFoxxo/MQReawakened/blob/main/Web.AssetBundles/Licences/LICENSE_ASSETSTUDIO) - ServUO - 用作基础的服务器模拟器,使用 C# .NET 编写 [许可证](https://github.com/FeroxFoxxo/MQReawakened/blob/main/Server.Base/Licences/LICENSE_SERVUO) - Thrift - 点对点 RPC 实现 [许可证](https://github.com/FeroxFoxxo/MQReawakened/blob/main/Server.Reawakened/Licences/LICENSE_THRIFT) - Discord.Net - 反射类初始化 [许可证](https://github.com/FeroxFoxxo/MQReawakened/blob/main/Server.Reawakened/Licences/LICENSE_DNET) ### 致谢 - Z6mbie - Logo 设计师。 - Victti - 概念贡献者 & 导师。
标签:DNS解析, MQ, Server Emulator, 去中心化游戏, 后端开发, 安全监控, 开源项目, 服务器模拟器, 游戏复刻, 游戏开发, 游戏服务端模拟, 游戏逆向工程, 社区驱动, 私服, 网络游戏, 请求拦截