如何从零搭建 AzerothCore 魔兽世界私服
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
AzerothCore是魔兽世界的开源服务器方案,读完可跑通私服编译、数据库导入与启动全流程。
私服编译环境前置条件
| 组件 | 最低要求 | 推荐值 |
|---|---|---|
| 操作系统 | Debian/Ubuntu 系 Linux 或 macOS | Ubuntu 22.04 LTS |
| 编译器 | GCC 7 或 Clang 10 | GCC 11 及以上 |
| CMake | 3.16 | 3.20 及以上 |
| 数据库 | MySQL 5.7 或 MariaDB | MySQL 8.0 |
| 内存 | 4 GB | 8 GB 及以上 |
私服编译、数据库导入与启动流程
拉取代码
项目根目录的./acore.sh是唯一入口脚本,封装了装依赖、编译、建库、启动等子命令。克隆仓库后先执行 install-deps,脚本会按当前发行版自动安装构建所需的系统包;也可以直接用 init 子命令把装依赖、编译、建库、下载客户端数据四步一次性串完,代价是中间出错时较难定位停在哪一步。
git clone https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk cd azerothcore-wotlk ./acore.sh install-deps该命令拉取代码并按发行版安装编译依赖包。
私服编译与构建产物
构建由 CMake 驱动,具体逻辑在 apps/ 目录的 compiler 脚本中。执行 compiler build 后先完成 configure 生成构建目录,再调用 make 完成链接,产物是authserver(登录认证进程)和worldserver(游戏世界主进程)两个可执行文件及对应的 .conf 配置模板。
💡 首次构建耗时较长,核数少的机器建议挂后台执行;若 configure 阶段报缺库,先重跑 install-deps,再执行
./acore.sh compiler clean清理构建缓存后重试。
./acore.sh compiler build该命令依次执行 CMake 配置与编译,在 bin/ 目录产出两个服务器进程。
数据层配置与数据库导入
游戏数据以 SQL 形式存放在 data/sql/ 目录:base/ 是基线快照,updates/ 是增量补丁,create/ 是建库脚本。setup-db 子命令执行 create_mysql.sql,一次性创建 auth、characters、world 三个库;基线数据与增量补丁由 worldserver 在首次启动时自动导入。脚本优先使用环境变量中的 root 密码非交互连接,未设置时回退为交互式输入。
./acore.sh setup-db执行后终端会输出三个数据库的创建结果,失败时会提示检查 MySQL 服务与账号凭据。
启动服务与状态确认
两个进程可在两个终端分别用 run-authserver 和 run-worldserver 子命令拉起,后者附带简单重启器,进程异常退出时会自动重启。需要后台常驻时改用 service-manager 子命令,把服务注册到 systemd 或 PM2 下管理。启动成功的标志是 worldserver 日志走到监听状态,客户端登录界面能看到本服列表。
./acore.sh run-worldserver该命令在前台运行游戏世界主进程,崩溃时自动拉起。
私服常见问题排查
数据库连接失败
现象:setup-db 或首次启动时报 Access denied、Can't connect to MySQL server。定位思路:先确认 MySQL 服务在运行,再核对 root 密码——脚本读取的是 MYSQL_ROOT_PASSWORD 环境变量的值,未设置时走交互式输入,两处不一致就会认证失败。修复:
MYSQL_ROOT_PASSWORD='实际密码' ./acore.sh setup-db该命令用指定密码建立数据库连接并重跑建库脚本。
端口被占用
现象:worldserver 启动日志提示端口已在监听,或客户端看不到本服。定位思路:先确认是哪个进程占着端口,常见来源是上一次没退干净的旧实例。修复:结束旧进程,或修改 worldserver.conf 中的 WorldserverPort 等端口配置后执行./acore.sh run-worldserver重启,新端口即时生效。
ss -lntp | grep 8085该命令列出 8085 端口当前的占用进程,替换成你实际改动的端口即可。
可定制方向
内容定制集中在两条线:./acore.sh module子命令可以搜索并安装扩展模块,覆盖战斗、副本等玩法逻辑;NPC、任务、物品等世界数据通过 data/sql/updates/ 下的增量 SQL 调整,无需改动核心源码。
跑通以上流程后,你得到的是一套能编译、能导入数据、能启动的魔兽世界私服环境;最推荐的后续动作是用 module 机制装一个现成模块并改一个小数值,把改代码、编译、重启的完整闭环先走一遍。
【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考