AzerothCore WotLK服务器部署与定制完整指南
2026/9/19 22:40:36 网站建设 项目流程

AzerothCore WotLK服务器部署与定制完整指南

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

AzerothCore 是一个开源的《魔兽世界》3.3.5a(WotLK)服务端模拟器,适合想自建私服、跑压测环境或研究 MMO 服务端逻辑的人。配合官方 Docker 部署,5 分钟内可以起齐 authserver、worldserver 和 MySQL;想改内容,再走 C++ 模块和 SQL 两条路。

为什么值得上手

  • 协议 GPL v2(见 LICENSE),全部 C++ 源码公开,没有闭源黑箱。
  • 构建体系是 CMake(要求 3.16~3.22),根CMakeLists.txt声明项目版本 3.0.0,仓库内自带 docker-compose.yml 一键编排。
  • 模块化设计:外部扩展放在modules/目录,构建时可用-DDISABLED_AC_MODULES="mod1;mod2"按名字禁用。
  • 数据库拆成 auth / characters / world 三库,结构 SQL 统一放在data/sql/,基础库与更新库分层管理。
  • 仓库内有一套 Go 写的 e2e 集成测试(e2e/),对着真实运行的 auth + world 进程做协议级回归,改核心逻辑时有现成验证手段。

从零到跑起来:5 步部署

环境要求如下,首次构建比较耗时,建议先备好时间:

组件最低推荐
操作系统Linux / WSL2 / macOS带 Docker Desktop(compose v2 + buildx)
内存4 GB8~16 GB
数据库MySQL 8.4(compose 已内置镜像)同左,免手工安装
游戏客户端魔兽世界 3.3.5a与服务端同版本,否则登录会失败
  1. 克隆源码:
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
  1. 构建镜像。第一次会拉依赖、编译整个服务端,慢是正常的;后续重建会快很多:
cd azerothcore-wotlk docker compose build
  1. 启动全部容器。ac-db-import容器会自动把data/sql/导入数据库,不用你手工跑 SQL:
docker compose up -d --build
  1. 进入 worldserver 控制台创建管理员账号(3是 GM 等级):
docker compose attach ac-worldserver AC> account create admin password 3 -1
  1. 用 3.3.5a 客户端连接:认证端口 3724,世界端口 8085(默认值在 docker-compose.yml 中,可用DOCKER_AUTH_EXTERNAL_PORTDOCKER_WORLD_EXTERNAL_PORT覆盖)。不想用 Docker,也可以直接跑仓库根目录的./install.sh走原生安装脚本。

能帮你做什么:三类用法

自建与运维

  • 容器化编排:一份 compose 文件拉齐数据库、authserver、worldserver,日志落在挂载的logs目录。
  • 自动建库导数:ac-db-import服务完成三库创建和 SQL 导入后才放行 worldserver,首装不用手动执行任何数据库命令。
  • 客户端资源提取:启用toolsprofile 后,可以用map_extractor等工具从本地客户端目录提取地图数据(compose 中默认挂载./var/client)。

内容改造与二次开发

  • 模块开发:用modules/create_module.sh生成模块骨架,按地区(如Northrend/)或玩法归类脚本,构建时单独启停。
  • 数据热改:新增 SQL 只允许写进data/sql/updates/pending_db_*/base/archive/和已合并的updates/db_*/是只读的历史记录,这样升级不会互相覆盖。
  • 回归验证:改完登录、战斗、掉落这类核心链路,可以跑e2e/里的 Go 测试对着活服务验证。

排查与调优

  • 配置策略和日志系统各有专门文档,见下文「文档与社区」。
  • 版本行为变化看doc/changelog/master.md,升级前先对照它改配置。

边界与风险分级:公开运营别越线

AzerothCore 的设计目标是学习、研究和私人网络。把它暴露到公网、对外收费运营、或分发原始游戏的贴图与音效资源,都可能涉及暴雪的知识产权问题,下面这张表可以作为自查依据:

等级用法类型使用建议
本地/局域网私服、单机跑压测、读代码放心用,注意保持客户端版本 3.3.5a
自写模块、改 SQL 内容、调 GM 等级先在独立库上验证,客户端服务端版本对齐
公网公开服务器、商业化运营、对外分发游戏资源不建议,法律风险自负

另外,改数据库时记住一条硬规则:data/sql/base/data/sql/archive/data/sql/updates/db_*/不可动,新改动一律进data/sql/updates/pending_db_*/

定制与扩展:源码里的几个入口

  • modules/:外部模块都放这里,每个子目录自带CMakeLists.txt;想加功能就从这里下手。
  • modules/how_to_make_a_module.md:模块创建流程说明,配合create_module.sh使用。
  • src/server/game/:核心玩法逻辑,最终编译进 worldserver,改战斗、拍卖、任务结算看这里。
  • src/server/scripts/:按地区、职业、玩法组织的内容脚本,新增副本或 NPC 行为的常用位置。
  • data/sql/:数据库结构层,base/是历史基线,updates/是增量,custom/留给本地私有改动。
  • e2e/:Go 编写的协议级 e2e 测试,对着活服务跑,适合给核心改动做回归。

自助排错:6 个高频问题

Q1:docker compose build第一次跑几个小时?正常现象。首次要拉基础镜像并完整编译 C++ 源码,第二次起走缓存会快很多。

Q2:客户端连不上服务器?确认三件事:客户端必须是 3.3.5a;宿主机 3724 和 8085 端口已放行;防火墙/安全组没有拦。容器内端口默认就是这两个值。

Q3:忘记建管理员账号或建错了?docker compose attach ac-worldserver进控制台执行account create <名字> <密码> 3 -1;账号相关数据在acore_auth库,也可以在库里直接查。

Q4:某个模块导致服务端起不来?构建时加-DDISABLED_AC_MODULES="模块名"逐个排除,定位到冲突模块后再看它的日志(默认在logs/目录)。

Q5:改了 SQL 没生效,或者不小心动了 base 库?base 和已合并的 updates 是只读的,改动必须放在data/sql/updates/pending_db_*/下才会被增量执行;动过历史库就直接重建容器里的数据库重来。

Q6:e2e 测试登录全部失败,报 invalid client OS?e2e/README.md的说法,先把Warden.Enabled = 0(docker 环境可用AC_WARDEN_ENABLED=0),这是测试 harness 的已知兼容问题。

文档与社区:资料入口集中在这

  • 配置策略:doc/ConfigPolicy.md
  • 日志体系:doc/Logging.md
  • 版本变更记录:doc/changelog/master.md,升级前先看
  • 模块开发:modules/how_to_make_a_module.md
  • 代码规范与测试约定:AGENTS.md、pull_request_template.md,提 PR 前对照
  • 讨论与反馈:通过仓库的 issue 和官方社区渠道进行,遇到 bug 附日志和版本信息会更快得到响应

小结

AzerothCore 把 WotLK 服务端的代码、数据库、部署脚本放在同一个仓库里,Docker 路线适合快速验证,原生构建和模块化机制适合长期改造。建议从本地局域网环境起步,改完核心逻辑就用 e2e 测试兜底。本项目仅供学习与研究使用,请勿用于商业运营或传播受版权保护的游戏资源。

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询