Skip to content

部署与目录

部署后主要关注三个目录:GameCenter 保存管理程序和公共组件,mud2.0_next 保存共享登录网关、区服与数据库数据,www_next 保存提供给客户端的热更新和配置包。实际盘符和安装位置可以不同,也可以直接部署在盘符根目录,例如 D 盘根目录,以 GameCenter 页面显示的路径为准。

首次部署请先阅读快速开始,日常不需要手动进入这些目录启动服务。

整体目录

以下为 0.3.12 的目录结构。共享 LoginGatemysql 并列,各区服直接位于 mud2.0_next 下,区内的 GameGateDBServer 并列。

text
<解压目录>\
├─ 启动 GameCenter.exe       日常启动入口
├─ GameCenter\               管理程序和公共组件,由 GameCenter 维护
├─ mud2.0_next\
│  ├─ LoginGate\            共享登录网关
│  ├─ mysql\
│  │  └─ data\              数据库数据
│  ├─ zone180\              一个区服(目录名自动生成)
│  │  ├─ DBServer\
│  │  ├─ GameGate\          该区通信网关
│  │  └─ Mir200\
│  │     ├─ Envir\          版本配置与脚本
│  │     │  └─ SmartMonsters\  自定义怪物攻击和行为配置
│  │     ├─ Map\            地图文件
│  │     └─ Gs1\            M2 程序和区服配置
│  └─ ...                   其他区服
└─ www_next\
   ├─ assets\               客户端热更新资源
   ├─ project.manifest      热更新清单
   ├─ version.manifest      热更新版本信息
   ├─ DownLoad\             客户端配置包,如 config.zip
   └─ serverlist.json       GameCenter 生成的区服列表

完整包提供目录骨架,数据库在初始化时建立,区服、游戏版本和热更新内容在导入后填充。zone180 仅为示例,实际以登记的区服目录为准。日常可通过 GameCenter 的打开区服目录、MySQL 的打开数据目录和中央服务的打开 www 目录进入对应位置;区服列表通过启动公告与区服列表页面维护。

公共服务与区服服务

范围服务作用
管理端GameCenter部署区服、配置网络并统一启动或停止服务
全机共享MySQL 数据库保存账号及各区服游戏数据
全机共享中央服务提供账号认证、区服列表、客户端配置包和热更新内容
全机共享LoginGate客户端共用的登录网关
每区独立DBServer该区的角色和游戏数据服务
每区独立M2Server该区的游戏逻辑和版本脚本
每区独立GGService / RunGate该区的客户端通信网关

同一套部署共用 MySQL、中央服务和 LoginGate;新建二区、三区时,仅新增各区自己的 DBServer、M2Server 和 GGService / RunGate。各区使用独立的区服数据库,由同一个 MySQL 实例统一承载。

日常操作

请通过 GameCenter 启停服务和打开工作目录。不要手动复制运行中的区服、移动内部目录,或绕过 GameCenter 单独启动子程序,否则可能造成配置与实际进程不一致。

开发期间重载动态房间 NPC 脚本

在 M2 窗口选择 服务 → 重载数据 → 重载动态房间 NPC 脚本。确认后,重载当前房间配置对应的 Envir/DynRoomScripts 脚本:

  • 可见 NPC:脚本名-房间名.pas
  • 隐藏房间控制 NPC:DNpc_房间名.pas

已创建的 NPC 保留对象和位置,替换脚本并重新执行 OnInitialize;后续创建的 NPC 使用更新后的脚本。该操作不重新读取房间配置,也不调整 NPC 的数量、外观和坐标。

编译失败或已有脚本文件缺失时保留旧版本,日志报告原因;从未配置的可选脚本会跳过。某个 NPC 初始化失败时保留它的旧脚本,其他 NPC 继续处理。日志分别报告更新的脚本数、成功更新的 NPC 数、失败数和跳过数。

此功能主要用于版本开发和特殊维护。脚本全局变量重新初始化;OnInitialize 中刷怪、修改变量或安排延迟任务等操作可能再次执行,已经产生的副作用无法自动回滚。重载不会重新执行玩家入场流程,进行中的副本可能受影响。

备份与迁移

完整备份时,先在 GameCenter 中停止全部服务,再同时备份 GameCentermud2.0_nextwww_next 三个目录,分别保留管理配置与组件、数据库与区服数据、客户端公开内容。

导出版本用于整理可部署的版本内容,不包含完整的账号和玩家运行数据,不能代替完整备份。换机器或更换部署路径时,还需核对运行许可与部署配置,不应将复制目录视为已完成迁移。

使用完整包更新引擎

已使用 0.3.12 或之后版本的部署,可以使用完整包内的 更新引擎.exe。工具提供普通 Windows 窗口,不依赖 PowerShell 或 WebView2,也不要求先打开 GameCenter。

  1. 在 GameCenter 中停止全部服务,退出启动器,并完成上述完整备份。
  2. 将新版完整包解压到独立目录,不要覆盖现有部署。例如部署位于 D 盘根目录,可以新建 release-folder 文件夹并解压到其中;不要放进现有 GameCentermud2.0_nextwww_next 目录。
  3. 双击 更新引擎.exe,选择包含 GameCentermud2.0_next 的部署根目录。直接部署在盘符根目录时,选择该盘的根目录。
  4. 点击 检查部署,核对目标版本和区服;通过后点击 开始更新 并确认,等待窗口显示完成。
  5. 点击 启动 GameCenter,核对区服状态,再启动服务,检查登录、选区及角色数据。

工具更新全部区服引擎、共享服务和 GameCenter,保留脚本、配置、账号角色数据及公开资源,不清理已有更新历史。相同版本也可以重新安装程序。GameCenter 内的 引擎更新 仍可使用,需要选择部分区服时使用该入口。

此工具不进行 0.3.11 旧目录结构迁移。全新部署请运行完整包中的 启动 GameCenter.exe

失败与恢复

更新失败时会尝试恢复更新前的程序和部署配置,并显示结果。若程序意外退出,重新打开 更新引擎.exe,选择原部署目录,点击 恢复更新前部署。恢复完成后即可重新检查、更新,无需手动搬移恢复目录。

恢复仅用于更新后尚未重新开服的部署,不回退业务数据。更新后已修改程序或部署配置时,工具会拒绝直接恢复;GameCenter 中的区服引擎回滚也不等于恢复整个部署。

若提示恢复未完成,请保持停服并保留 GameCenter/updates 内的记录和备份;操作日志位于完整包解压目录的 engine-update-<进程号>.log

大数值模式

  1. 在 GameCenter 中停止全部服务。
  2. 完整备份 GameCentermud2.0_nextwww_next 三个目录。
  3. 进入 功能开关,在 大数值模式(64 位) 中选择 开启大数值模式 并保存。
  4. 确认页面未提示配置不一致,再启动服务并使用配套的 2.x 客户端连接。

切换前须知

大数值模式是整套部署共用的运行模式,不能在服务运行时切换,并要求服务端与完整的 2.x 客户端配套使用。已经按 64 位模式保存数据后,如需回到传统数值模式,应恢复切换前的完整备份;模式开关不会自动缩窄已有数据。

GOW-Next 引擎开发手册 · 原版 API 兼容列表持续核验中