OpenFusionProject/OpenFusion

GitHub: OpenFusionProject/OpenFusion

一个通过逆向工程实现的 FusionFall 游戏开源服务器,让这款已停运的 MMORPG 可以在私人服务器上继续运行。

Stars: 402 | Forks: 73

OpenFusion Logo

Current Release Workflow Discord License

OpenFusion 是一个针对 FusionFall 的逆向工程服务器。它主要针对原版游戏的 `beta-20100104` 和 `beta-20111013` 版本,并对其他版本提供[有限支持](https://openfusion.dev/docs/reference/fusionfall-version-support/)。 ## 使用说明 ### 快速入门 #### 方法 A:安装程序 (最简单) 1. 点击[此处](https://github.com/OpenFusionProject/OpenFusionLauncher/releases/latest/download/OpenFusionLauncher-Windows-Installer.exe)下载启动器安装程序 - 选择运行该文件。 2. 片刻之后,启动器应该会打开:默认情况下,您可以在两个公共服务器之间进行选择。选择您想玩的那个,然后点击连接。 3. 要创建账户,只需在登录界面输入您想使用的详细信息,然后点击登录 (Log In)。*不要*点击注册,因为这只会导致出现白屏。 4. 创建一个新角色,然后享受游戏吧!您的进度将自动保存,您可以通过输入在第 3 步中使用的登录详细信息来继续游戏。 #### 方法 B:独立 .zip 文件 1. 从[此处](https://github.com/OpenFusionProject/OpenFusionLauncher/releases/latest/download/OpenFusionLauncher-Windows-Portable.zip)下载启动器。 2. 将其解压到您选择的文件夹中。注意:如果您是从旧版本升级,建议从一个全新的文件夹开始,而不是覆盖以前的安装。 3. 运行 OpenFusionLauncher.exe - 默认情况下,您可以在两个公共服务器之间进行选择。选择您想玩的那个,然后点击连接。 4. 要创建账户,只需在登录界面输入您想使用的详细信息,然后点击登录 (Log In)。*不要*点击注册,因为这只会导致出现白屏。 5. 创建一个新角色,然后享受游戏吧!您的进度将自动保存,您可以通过输入在第 4 步中使用的登录详细信息来继续游戏。 关于如何通过 Wine 在 Linux 上运行客户端的说明可以在[此处](https://openfusion.dev/docs/guides/running-on-linux/)找到。 ### 搭建服务器 1. 从[此处](https://github.com/OpenFusionProject/OpenFusion/releases/latest)获取 `OpenFusionServer-Windows-Original.zip` 或 `OpenFusionServer-Windows-Academy.zip`。 2. 将其解压到您选择的文件夹中,然后运行 `winfusion.exe` (Windows) 或 `fusion` (Linux) 以启动服务器。 3. 将新服务器添加到客户端列表中: 1. 对于 Description(描述),输入您想要的任何内容。这将显示在服务器列表中。 2. 对于 Server IP(服务器 IP),输入登录服务器的 IP 地址和端口。如果您在同一台 PC 上进行主机和游戏,则应为 `127.0.0.1:23000`。 3. 最后是 Game Version(游戏版本) - 如果您下载的是 original zip,请选择 `beta-20100104`;如果您下载的是 academy zip,请选择 `beta-20111013`。 4. 将服务器添加到列表后,连接并登录。如果您遇到问题,请参考上一节的步骤 4 和 5。 如果您想运行服务器的最新开发版本,[可以在此处找到每个功能性提交的编译二进制文件。](http://cdn.dexlabs.systems/of-builds/) 有关游戏架构及其配置方式的更详细概述,请阅读以下部分。 ## 架构 FusionFall 由以下组件组成: * 兼容旧 NPAPI 插件接口的 Web 浏览器 * 作为启动游戏网关的 Web 服务器 * Unity Web Player 的自定义版本,作为 NPAPI 插件加载 * 包含游戏代码和基本资源(加载屏幕等)的 `.unity3d` 包 * 通过 TCP 通信 FusionFall 网络协议的登录服务器 * 在另一个端口上执行相同操作的 shard 服务器 原版游戏利用玩家的实际 Web 浏览器来启动游戏,但自此以后,游戏所依赖的 NPAPI 插件接口已被弃用,并且在大多数现代浏览器中不再可用。Retro 和 OpenFusion 都通过分发旧版本的 Electron 解决了这个问题,Electron 是一个本质上是专用 Web 浏览器的软件包。 浏览器/Electron 客户端打开一个带有适当 MIME 类型的 `` 标签的网页,其中 `src` 参数是游戏 `.unity3d` 入口点的地址。这会触发浏览器加载处理该 MIME 类型的 NPAPI 插件,在本例中为 Unity Web Player。 请注意,OpenFusion 分发的 Web Player 版本期望所有资源使用标准的 `UnityWeb` 魔数,而不是 Retro 修改过的 `streamed` 魔数。 随着人们开始进行实验和混合搭配版本,这可能会在日后变得相关。 Web Player 将执行游戏代码,该代码将从服务器请求以下文件:`/assetInfo.php` 和 `/loginInfo.php`。 `/assetInfo.php` 包含用于获取游戏其余资源("dongresources")的地址。 通常,这些资源将托管在与网关相同的 Web 服务器上,但 OpenFusion 发行版(在其默认配置中)根本不使用 Web 服务器! 相反,它使用 `file://` schema 在本地加载网页,并从标准 Web 服务器获取游戏资源。 `/loginInfo.php` 包含 FusionFall 登录服务器的 IP:端口 对,客户端将连接到该服务器。此登录服务器在客户端处于角色选择菜单、角色创建和新手教程期间驱动客户端。 当玩家点击 "ENTER THE GAME"(或完成教程)时,登录服务器会向其发送 shard 服务器的地址,客户端随后将连接到该地址并在游戏过程中保持连接。 ## 配置 您可以在 `config.ini` 中更改 FusionFall 服务器监听的端口。确保登录服务器端口与您在客户端服务器列表中输入的内容同步 - shard 端口不需要这种同步。 此配置文件还有其他几个您可以调整的选项,包括日志详细程度、数据库保存间隔、默认账户/权限级别等。有关更多详细信息,请参阅 [配置文件本身](https://github.com/OpenFusionProject/OpenFusion/blob/master/config.ini) 中的注释。 如果您想和朋友一起玩,只需在 OpenFusionClient 的 `Add Server` 对话框中输入登录服务器详细信息。 如果你们都在同一个 LAN 下,这可以直接工作,但如果您想通过互联网玩,您需要开放端口、使用 Hamachi 或 nGrok 等服务,或者在 VPS 上托管服务器(就像任何其他游戏服务器一样)。 ## 编译 OpenFusion 有一个外部依赖项:SQLite。最旧的兼容版本是 `3.33.0`。您可以在 Windows 上使用 `vcpkg` 安装它,在 Unix/Linux 上使用您的发行版的包管理器安装。有关如何设置 vcpkg 的更深入指南,[请阅读本指南](https://openfusion.dev/docs/development/installing-sqlite-on-windows-using-vcpkg/)。 编译 OpenFusion 有两种选择:包含的 Makefile 和包含的 CMakeLists 文件。 ### Makefile 网站上为 Windows 用户提供了一份详细的编译指南,[使用 MinGW-w64 和 MSYS2](https://openfusion.dev/docs/development/compilation-on-windows-msys2-mingw/)。否则,要为您当前的平台编译它,只需在安装了正确的构建工具(目前是 make 和 clang)的情况下运行 `make`。 ### CMake [我们的文档中](https://openfusion.dev/docs/development/compilation-with-cmake-or-visual-studio/)为使用普通旧版 CMake 或 Visual Studio 附带的 CMake 版本的用户提供了详细的指南。TL;DR:`cmake -B build` ## 游戏玩法 该项目的目标是忠实地重现目标构建时的游戏原貌。 虽然大多数功能都已实现,并且游戏可以从头玩到尾,但可能存在缺少的功能或错误。 根据服务器配置,您将可以使用某些命令。 对于公共服务器:Original 启用了物品生成、设置玩家速度/跳跃高度和传送的能力(默认账户等级 50)。 而 Academy 服务器更适合正统通关(默认账户等级 99)。 在托管本地服务器时,您将默认拥有所有命令的访问权限(账户等级 1)。 有关可用命令的列表,请参阅[此页面](https://openfusion.dev/docs/reference/ingame-command-list/)。
标签:Bash脚本, C++, Docker, FusionFall, MMO, OpenFusion, 云资产清单, 复古游戏, 安全防御评估, 开源游戏服务器, 数据擦除, 游戏客户端, 游戏开发, 游戏模拟器, 私服, 网络编程, 请求拦截, 逆向工程