前言
在前面的文章中,我們已經準備好了 Debian Linux 環境。現在要進入最關鍵的步驟:安裝 AzerothCore 核心。這是整個私服的心臟,負責處理所有遊戲邏輯。
什麼是 AzerothCore?
AzerothCore 是一個開源的魔獸世界伺服器模擬器,特點包括:
- 基於 TrinityCore 和 MaNGOS 發展而來
- 支援 WoTLK 3.3.5a 版本
- 模組化架構,易於擴展
- 活躍的開發社群
- 優秀的效能和穩定性
第一步:安裝依賴套件
基本編譯工具
透過 SSH 連線到伺服器,執行以下命令:
# 更新套件清單
apt update && apt upgrade -y
# 安裝基本編譯工具
apt install -y git cmake make gcc g++ clang
# 安裝必要的函式庫
apt install -y libmysqlclient-dev libssl-dev libbz2-dev
apt install -y libreadline-dev libncurses-dev libboost-all-dev
apt install -y mysql-server libace-dev
安裝額外工具
# 安裝額外的有用工具
apt install -y screen tmux htop curl wget unzip
apt install -y p7zip-full gdb
第二步:下載 AzerothCore 原始碼
克隆 PlayerBots 分支
我們將使用包含 PlayerBots 的特殊分支:
# 建立工作目錄
mkdir -p /opt/wow
cd /opt/wow
# 克隆 AzerothCore with PlayerBots
git clone https://github.com/liyunfan1223/azerothcore-wotlk.git \
--branch=Playerbot --depth=1
# 進入目錄
cd azerothcore-wotlk
下載 PlayerBots 模組
# 進入模組目錄
cd modules
# 克隆 PlayerBots 模組
git clone https://github.com/liyunfan1223/mod-playerbots.git \
--branch=master --depth=1
# 返回主目錄
cd ..
第三步:使用自動化腳本安裝
AzerothCore 提供了便利的自動化腳本:
安裝所有依賴
# 執行依賴安裝腳本
./acore.sh install-deps
這個腳本會自動:
- 檢查系統環境
- 安裝缺少的依賴
- 設定必要的環境變數
編譯核心
# 使用全部 CPU 核心編譯
./acore.sh compiler all
# 或指定核心數(例如使用 4 核心)
./acore.sh compiler all -j 4
編譯過程需要 60-90 分鐘,取決於系統性能。
第四步:手動編譯方法(可選)
如果自動腳本失敗,可以手動編譯:
建立編譯目錄
# 建立並進入編譯目錄
mkdir build
cd build
配置 CMake
# 配置編譯選項
cmake ../ \
-DCMAKE_INSTALL_PREFIX=/opt/wow/server \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DWITH_WARNINGS=1 \
-DTOOLS=1 \
-DSCRIPTS=static \
-DMODULES=static
開始編譯
# 編譯(使用所有 CPU 核心)
make -j $(nproc)
# 安裝編譯完成的檔案
make install
第五步:下載遊戲資料檔
取得客戶端資料
AzerothCore 需要從遊戲客戶端提取的資料檔:
# 建立資料目錄
mkdir -p /opt/wow/server/data
# 下載預先提取的資料檔(約 1.5GB)
cd /opt/wow/server/data
# 方法一:使用官方提供的資料
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip
unzip data.zip
rm data.zip
資料檔結構
確認以下目錄存在:
/opt/wow/server/data/
├── dbc/
├── maps/
├── mmaps/
├── vmaps/
├── cameras/
└── gt/
第六步:設定目錄結構
建立必要目錄
# 建立日誌目錄
mkdir -p /opt/wow/server/logs
# 建立設定檔目錄(如果不存在)
mkdir -p /opt/wow/server/etc
# 設定權限
chmod -R 755 /opt/wow/server
複製設定檔
# 複製預設設定檔
cd /opt/wow/server/etc
cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
# 如果有 PlayerBots 設定
cp mod_playerbots.conf.dist mod_playerbots.conf
第七步:建立啟動腳本
建立伺服器控制腳本
# 建立腳本檔案
vim /opt/wow/server/start.sh
加入以下內容:
#!/bin/bash
SERVER_PATH="/opt/wow/server"
SCREEN_NAME="wow"
case "$1" in
start)
echo "Starting WoW Server..."
cd $SERVER_PATH/bin
screen -dmS ${SCREEN_NAME}-auth ./authserver
sleep 3
screen -dmS ${SCREEN_NAME}-world ./worldserver
echo "Server started in screen sessions."
;;
stop)
echo "Stopping WoW Server..."
screen -X -S ${SCREEN_NAME}-auth quit
screen -X -S ${SCREEN_NAME}-world quit
echo "Server stopped."
;;
restart)
$0 stop
sleep 5
$0 start
;;
status)
screen -ls | grep $SCREEN_NAME
;;
attach-world)
screen -r ${SCREEN_NAME}-world
;;
attach-auth)
screen -r ${SCREEN_NAME}-auth
;;
*)
echo "Usage: $0 {start|stop|restart|status|attach-world|attach-auth}"
exit 1
;;
esac
設定執行權限:
chmod +x /opt/wow/server/start.sh
第八步:驗證安裝
檢查編譯結果
# 檢查執行檔是否存在
ls -la /opt/wow/server/bin/
# 應該看到以下檔案:
# authserver
# worldserver
# 以及其他工具程式
測試執行檔
# 測試 authserver
/opt/wow/server/bin/authserver --version
# 測試 worldserver
/opt/wow/server/bin/worldserver --version
常見編譯問題
問題 1:記憶體不足
如果編譯時出現記憶體錯誤:
# 建立或增加 swap
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# 使用較少的平行編譯
make -j 2 # 只使用 2 個核心
問題 2:缺少依賴
# 重新執行依賴安裝
./acore.sh install-deps
# 或手動安裝特定套件
apt-get install -y libmysqlclient-dev
問題 3:Git 子模組問題
# 更新所有子模組
git submodule update --init --recursive
編譯優化建議
使用 Clang 編譯器
Clang 通常比 GCC 編譯速度更快:
# 安裝 Clang
apt install -y clang
# 在 CMake 時指定
-DCMAKE_C_COMPILER=clang
-DCMAKE_CXX_COMPILER=clang++
使用 ccache 加速
# 安裝 ccache
apt install -y ccache
# 設定環境變數
export CC="ccache gcc"
export CXX="ccache g++"
第九步:初次執行準備
在首次啟動伺服器前,需要:
- 設定資料庫(下一篇文章詳述)
- 配置伺服器設定檔
- 導入初始資料
- 建立管理員帳號
下一步
恭喜!AzerothCore 核心已經編譯完成。我們現在擁有:
✅ 編譯完成的 authserver 和 worldserver
✅ 必要的遊戲資料檔
✅ 基本的目錄結構
✅ 伺服器控制腳本
下一篇文章將介紹如何設定 MySQL 資料庫,這是存儲所有遊戲資料的地方。
小提示
- 編譯過程可能需要 1-2 小時,請耐心等待
- 建議在編譯完成後建立虛擬機快照
- 保留原始碼目錄,方便未來更新
- 定期更新到最新版本以獲得錯誤修復
有用的命令
# 查看編譯進度
tail -f build/CMakeFiles/CMakeOutput.log
# 監控系統資源
htop
# 查看 screen 會話
screen -ls
# 清理編譯檔案(如需重新編譯)
cd build && make clean
準備好設定資料庫了嗎?讓我們繼續前進!