AzerothCore搭建指南:魔兽世界私服60分钟可玩
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
按本文流程操作,你能在 60 分钟内用一份 3.3.5a 客户端登录自建的 WotLK 服务器,建号、进世界、跑图验证全程。AzerothCore 是一个面向 WotLK 版本的开源魔兽世界私服项目,本文写给会基础 Linux 命令、但没接触过 MMO 服务端的读者。
环境基线 📦
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 4 核 | 8 核 |
| 内存 | 8 GB | 16 GB |
| 磁盘 | 50 GB 可用空间 | SSD,100 GB |
| 系统 | Ubuntu 20.04 / CentOS 7 | Ubuntu 22.04 LTS |
| 依赖 | MySQL 5.7+、CMake、GCC/Clang | MySQL 8.0、最新 CMake |
世界库数据量在百万行级别,机械盘导入动辄一小时起步,SSD 是省时间最快的投入。AzerothCore 官方推荐在 Ubuntu 上构建,依赖脚本对该发行版的覆盖最完整。
获取与校验 📥
先把源码拉下来,仓库里包含构建服务端所需的全部脚本与 SQL 数据。
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk克隆完成后,只需要认识三个地方:
- acore.sh:管理入口,后续所有操作类命令都通过它下发。
- data/sql/base/:认证、角色、世界三个库的完整 SQL 基础数据。
- apps/compiler/:构建工具,封装了 CMake 的配置与编译流程。
构建流水线 🔧
拉齐依赖
这一步在做什么:装齐编译与数据库客户端需要的系统包。
./acore.sh install-deps预期输出:脚本自动识别发行版并安装依赖,终端无报错即通过。
编译服务端二进制
这一步在做什么:编译出认证与世界两个服务进程。
./acore.sh compiler build预期输出:首次构建视核数约 30–80 分钟,产物出现在构建目录的bin/下,终端无错误收尾。
⚠️ 构建中途不要用 Ctrl+C 打断,缓存(ccache)会让下一次构建显著提速。
注入世界数据
这一步在做什么:创建三个数据库并导入基础游戏数据。
./acore.sh setup-db预期输出:结束后用mysql -u root能看到acore_auth、acore_characters、acore_world三个库,世界库导入耗时较长属正常现象。
拉起服务
这一步在做什么:在后台同时运行两个服务进程。
./acore.sh service-manager预期输出:ps -ef | grep server能看到 authserver 与 worldserver 两个进程,worldserver 日志持续滚动直至加载完毕。
上线验证 🔍
服务进程活着不等于真正可用,按顺序做三个检查。
端口监听。worldserver 默认监听 3724 端口,能看到它说明游戏服务已就绪。
ss -lnt | grep 3724判定:出现一行LISTEN状态的记录即通过,空输出则回头查服务日志。
数据库连通。确认三个库都建成且可查询。
mysql -u root -e "SHOW DATABASES;" | grep acore判定:输出三行、分别对应 auth、characters、world 即通过。
客户端握手。确认世界进程已完成地图与数据加载。
tail -n 5 var/log/worldserver.log判定:日志尾部无 ERROR、出现世界加载完成的提示行即通过;此时用 WotLK 客户端指向本机地址,即可建号登录。
⚠️ 客户端版本必须与服务端匹配(3.3.5a),版本不一致会在握手阶段被直接拒绝。
高频卡点速查 🩹
现象:服务起不来,日志报端口被占用。原因:机器上已有旧进程占着 3724 端口,常见于上次没停干净的 worldserver。 修复:lsof -i:3724 -sTCP:LISTEN定位 PID 后kill掉;或者在构建生成的worldserver.conf里改WorldServerPort换个端口。
现象:编译报缺 openssl 头文件或 MySQL 客户端库。原因:系统缺少对应开发依赖包,多半是install-deps没跑或跑在半途。 修复:Ubuntu 上补sudo apt install libssl-dev libmysqlclient-dev,CentOS 装同名-devel包,然后重跑./acore.sh install-deps。
现象:worldserver 启动即退出,日志报数据库连接失败。原因:数据库账号没有acore_*三个库的访问权限。 修复:用 root 执行mysql -u root -e "GRANT ALL ON acore_world.* TO 'acore'@'localhost'; FLUSH PRIVILEGES;"(三个库各授一次),再重启服务。
日常运维备忘 📋
- 备份:动数据前先导出,
mysqldump -u root --databases acore_auth acore_characters acore_world > backup_$(date +%F).sql。 - 重置:想推倒重来时,
./acore.sh reset清理仓库与构建产物,重新走一遍流水线即可。 - 热更:只改 SQL 时重导对应库;改过 C++ 代码时用
./acore.sh compiler compile增量编译,再重启服务。 - 盯日志:
tail -f var/log/worldserver.log实时观察运行状态。
延伸方向 🧭
定制游戏内容:物品、NPC、任务的数值都在acore_world库与data/sql目录下,改一行字段、重启服务即可验证效果。
模块开发:AzerothCore 采用模块化架构,./acore.sh module可以搜索与安装社区模块,自定义逻辑放在独立模块里,不侵入核心代码。
性能调优:跑起来之后观察 CPU 与内存曲线,按机器核数调整worldserver.conf里的并发相关参数,让魔兽世界私服在低配机器上也能稳住在线人数。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考