Konfiguracja serwera World of Warcraft obejmuje instalację oprogramowania emulującego serwer, skonfigurowanie bazy danych, przygotowanie danych gry i połączenie poszczególnych komponentów serwera. Jednym z najbardziej znanych projektów open source pozwalających poznać ten proces jest AzerothCore, który emuluje środowisko serwerowe World of Warcraft: Wrath of the Lich King 3.3.5a.
AzerothCore działa w systemach Linux, Windows i macOS. W tym poradniku skupimy się na instalacji w systemie Ubuntu 26.04 LTS z wykorzystaniem aktualnej procedury instalacji z kodu źródłowego projektu.
Omówimy najważniejsze polecenia, konfigurację bazy danych i sieci oraz typowe problemy z instalacją.
Ważne: AzerothCore jest niezależnym projektem open source, a nie oficjalnym serwerem Blizzard. Warunki licencyjne firmy Blizzard ograniczają nieautoryzowaną emulację i połączenia. Ten poradnik służy celom edukacji technicznej i dotyczy środowisk, w których dysponujesz niezbędnymi prawami i zezwoleniami. Nie udostępnia klientów gry ani zastrzeżonych zasobów, ani nie daje zezwolenia na prowadzenie nieautoryzowanej usługi.
Czym jest AzerothCore?
AzerothCore to emulator serwera MMORPG o otwartym kodzie źródłowym, oparty na środowisku Wrath of the Lich King 3.3.5a.
Odtwarza systemy działające po stronie serwera, takie jak zarządzanie postaciami, uwierzytelnianie, zadania, stworzenia i interakcje w świecie gry.
Oprogramowanie składa się z trzech głównych komponentów:
- Authserver: Obsługuje uwierzytelnianie podczas logowania i wybór świata gry.
- Worldserver: Zarządza aktywnością w świecie gry, postaciami i mechaniką rozgrywki.
- Baza danych MySQL: Przechowuje dane uwierzytelniania, postacie i informacje o świecie gry.
Obie aplikacje serwerowe komunikują się z MySQL i mogą działać na tej samej maszynie.
AzerothCore udostępnia oprogramowanie serwerowe, ale nie zapewnia licencjonowanego klienta gry World of Warcraft ani praw do redystrybucji zasobów firmy Blizzard.

Wymagania serwera World of Warcraft
Wymagania AzerothCore zależą od sposobu instalacji i obciążenia. Kompilacja oprogramowania zwykle wymaga więcej zasobów niż uruchomienie niewielkiego środowiska testowego.
W przypadku środowiska programistycznego lub testowego opartego na systemie Linux warto zacząć od następującej konfiguracji:
| Zasób | Sugerowana konfiguracja |
|---|---|
| CPU | 4 vCPU lub więcej |
| RAM | 8 GB lub więcej do kompilacji |
| Pamięć masowa | 60–100 GB na dysku SSD lub NVMe |
| System operacyjny | Ubuntu 26.04 LTS |
| Baza danych | MySQL 8.4 LTS |
| Kompilator | GCC 15+ lub Clang 18+ |
Podane parametry sprzętowe to praktyczne szacunki na początek, a nie oficjalne wymagania minimalne ani gwarantowana liczba obsługiwanych graczy.
W tym poradniku użyjemy systemu Ubuntu 26.04 LTS, którego repozytoria zawierają obsługiwane pakiety MySQL 8.4.
Instalacja wymaga również dostępu administracyjnego i znajomości podstawowych poleceń systemu Linux.
Jeśli dopiero zaczynasz hostować gry wieloosobowe, nasz poradnik dotyczący hostingu serwerów gier wyjaśnia, jak sprzęt serwerowy, wydajność sieci i infrastruktura hostingowa wpływają na rozgrywkę, stabilność i zapotrzebowanie na zasoby.
Krok 1: Przygotuj serwer z systemem Linux
Połącz się ze środowiskiem Linux przez SSH:
ssh admin@YOUR_SERVER_IP
Zastąp admin swoją nazwą użytkownika, a YOUR_SERVER_IP rzeczywistym adresem serwera.
Zaktualizuj system:
sudo apt update
sudo apt upgrade
Następnie zainstaluj zależności wskazane w dokumentacji dla Ubuntu 26.04:
sudo apt install git cmake make gcc g++ clang \
libstdc++-16-dev default-libmysqlclient-dev \
libssl-dev libbz2-dev libreadline-dev \
libncurses-dev mysql-server libboost-all-dev tmux
Sprawdź, czy MySQL działa:
sudo systemctl status mysql
Możesz również sprawdzić wersje kompilatora i bazy danych:
clang --version
mysql --version
Przed przejściem dalej upewnij się, że spełniają aktualne wymagania AzerothCore.
Kompiluj i uruchamiaj AzerothCore z konta zwykłego użytkownika systemu Linux, a nie jako root.
Krok 2: Pobierz i skompiluj AzerothCore
Pobierz oficjalny kod źródłowy z GitHub:
git clone https://github.com/azerothcore/azerothcore-wotlk.git \
--branch master --single-branch ~/azerothcore
Przejdź do katalogu projektu i utwórz osobny katalog kompilacji:
cd ~/azerothcore
mkdir build
cd build
Skonfiguruj kompilację za pomocą CMake:
cmake .. \
-DCMAKE_INSTALL_PREFIX="$HOME/azerothcore/env/dist/" \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DTOOLS_BUILD=all \
-DSCRIPTS=static \
-DMODULES=static
Jeśli konfiguracja przebiegła pomyślnie, skompiluj AzerothCore:
make -j2
Opcja -j2 ogranicza kompilację do dwóch równoległych zadań, zmniejszając obciążenie pamięci w porównaniu z wykorzystaniem wszystkich dostępnych wątków procesora.
Jeśli serwer ma mało pamięci RAM i kompilacja kończy się niepowodzeniem z powodu jej wyczerpania, spróbuj użyć make -j1.
Po zakończeniu kompilacji zainstaluj pliki wykonywalne:
make install
Zainstalowane pliki powinny być teraz dostępne w katalogu:
~/azerothcore/env/dist/
Katalog bin zawiera aplikacje serwerowe i skompilowane narzędzia.
Krok 3: Skonfiguruj bazę danych MySQL
AzerothCore korzysta z trzech baz danych:
acore_auth— dane uwierzytelniania i kont.acore_characters— dane postaci i graczy.acore_world— informacje o świecie gry.
W przypadku nowej instalacji AzerothCore udostępnia skrypt SQL do utworzenia baz danych i użytkownika bazy danych.
Uruchom:
sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql
Używaj tego skryptu inicjalizacyjnego wyłącznie przy nowej instalacji. Skrypt ponownie tworzy również domyślnego użytkownika bazy danych, co może zakłócić działanie istniejącej konfiguracji.
Skrypt tworzy konto acore z domyślnym hasłem. Zmień to hasło przed rozpoczęciem korzystania z instalacji.
Otwórz MySQL:
sudo mysql
Zmień hasło konta:
ALTER USER 'acore'@'localhost'
IDENTIFIED BY 'YOUR_STRONG_PASSWORD';
Zastąp symbol zastępczy silnym, unikatowym hasłem. Zachowaj je w poufności i zaktualizuj odpowiednie dane logowania do bazy danych w plikach konfiguracyjnych.
Wyjdź z MySQL:
EXIT;
AzerothCore zawiera automatyczny mechanizm aktualizacji bazy danych, który inicjalizuje i aktualizuje wymagane tabele podczas uruchamiania odpowiednich procesów serwera.
Nie musisz ręcznie importować każdego pliku aktualizacji bazy danych.
Krok 4: Przygotuj wymagane dane gry
AzerothCore wymaga danych świata gry zgodnych ze środowiskiem 3.3.5a.
Dane te są odrębne od kodu serwera o otwartym kodzie źródłowym i wymagają szczególnej uwagi w kwestii zastrzeżonych zasobów oraz licencji.
Główne katalogi danych to:
| Katalog | Przeznaczenie |
|---|---|
dbc | Konfiguracja gry i dane referencyjne |
maps | Informacje o terenie i mapach |
vmaps | Dane dotyczące kolizji i widoczności |
mmaps | Dane dotyczące nawigacji i ruchu |
AzerothCore udostępnia narzędzia do wyodrębniania tych danych ze zgodnej instalacji klienta, pod warunkiem że masz niezbędne prawa.
Do wyodrębniania służą narzędzia takie jak map_extractor, vmap4_extractor, vmap4_assembler i mmaps_generator. Aby przeprowadzić ten proces odpowiednio do swojego środowiska, postępuj zgodnie z oficjalną instrukcją konfiguracji serwera w systemie Linux.
Po zakończeniu wyodrębniania umieść wymagane katalogi w skonfigurowanej lokalizacji danych.
Przy domyślnej konfiguracji zwykle powinny znajdować się obok zainstalowanego pliku wykonywalnego worldserver w katalogu:
~/azerothcore/env/dist/bin/
Przed uruchomieniem serwera świata gry sprawdź, czy wymagane katalogi istnieją.
Uwaga: Licencja emulatora o otwartym kodzie źródłowym nie zezwala na pobieranie, udostępnianie ani redystrybucję zastrzeżonych plików klienta World of Warcraft.
Krok 5: Skonfiguruj Authserver i Worldserver
AzerothCore udostępnia przykładowe pliki konfiguracyjne dla obu usług.
Przejdź do katalogu konfiguracyjnego:
cd ~/azerothcore/env/dist/etc/
Utwórz kopie robocze:
cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
Otwórz pliki konfiguracyjne w wybranym edytorze tekstu.
Na przykład:
nano worldserver.conf
Znajdź ustawienia połączenia z bazą danych.
Mają one następujący format:
LoginDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_characters"
Zastąp YOUR_PASSWORD utworzonym wcześniej hasłem do bazy danych.
Skonfiguruj również LoginDatabaseInfo w pliku authserver.conf.
Każdy wpis określa host MySQL, port, nazwę użytkownika, hasło i nazwę bazy danych.
Następnie sprawdź opcję DataDir w pliku worldserver.conf.
Jeśli wymagane katalogi danych gry znajdują się obok zainstalowanego pliku wykonywalnego serwera świata gry, domyślna ścieżka względna może być odpowiednia. W przeciwnym razie ustaw DataDir na właściwy katalog.
Zapisz pliki konfiguracyjne przed przejściem dalej.
Krok 6: Uruchom serwer świata gry i serwer uwierzytelniania
AzerothCore zawiera skrypty uruchomieniowe do zarządzania procesami serwera.
Podczas testów interaktywnych możesz użyć tmux, aby każdy proces działał w osobnej sesji terminala.
Najpierw utwórz sesję dla serwera świata gry:
tmux new -s wow-world
W tej sesji uruchom:
cd ~/azerothcore
./acore.sh run-worldserver
Przy pierwszym uruchomieniu AzerothCore może poprosić o utworzenie lub wypełnienie tabel bazy danych. Postępuj zgodnie z wyświetlanymi instrukcjami i poczekaj na zakończenie inicjalizacji.
Sprawdź, czy w danych wyjściowych nie ma informacji o problemach z połączeniem z bazą danych lub brakujących plikach danych gry.
Aby odłączyć się od sesji tmux bez zamykania procesu, naciśnij Ctrl+B, a następnie D.
Uruchom drugą sesję:
tmux new -s wow-auth
Następnie uruchom:
cd ~/azerothcore
./acore.sh run-authserver
Oba procesy serwera powinny teraz działać w osobnych sesjach.
Listę sesji wyświetlisz za pomocą:
tmux ls
W przypadku wdrożeń działających przez dłuższy czas korzystaj z opisanych w dokumentacji AzerothCore metod zarządzania usługami, zamiast polegać wyłącznie na interaktywnych sesjach terminala.
Krok 7: Utwórz konto testowe
Po pomyślnym uruchomieniu serwera świata gry możesz utworzyć konto za pomocą jego konsoli.
Ponownie połącz się z sesją serwera świata gry:
tmux attach -t wow-world
W konsoli serwera świata gry wpisz:
account create testuser YOUR_STRONG_PASSWORD
Zastąp przykładową nazwę użytkownika i hasło wybranymi przez siebie danymi logowania.
AzerothCore obsługuje również różne poziomy uprawnień kont.
Na przykład za pomocą poleceń zarządzania kontami można nadać uprawnienia administratora:
account set gmlevel testuser 3 -1
Poziom 3 nadaje uprawnienia administratora, a -1 stosuje to ustawienie we wszystkich światach gry.
Nadawaj podwyższone uprawnienia tylko kontom, które naprawdę ich potrzebują.
Są to polecenia konsoli AzerothCore, a nie zwykłe polecenia powłoki systemu Linux.
Krok 8: Zapoznaj się z konfiguracją sieciową światów gry
AzerothCore domyślnie używa dwóch portów TCP:
| Port | Usługa |
|---|---|
| 3724 | Serwer uwierzytelniania |
| 8085 | Serwer świata gry |
Informacje o połączeniu ze światami gry przechowuje również w tabeli realmlist w bazie acore_auth.
W przypadku testów lokalnych adres może pozostać ustawiony na 127.0.0.1. W autoryzowanym środowisku testów zdalnych adres świata gry musi odpowiadać adresowi dostępnému dla uprawnionego klienta, a dostęp sieciowy trzeba odpowiednio skonfigurować.
Istniejącą konfigurację światów gry możesz sprawdzić przez MySQL:
sudo mysql
Następnie:
USE acore_auth;
SELECT id, name, address FROM realmlist;
Dokumentacja sieciowa AzerothCore wyjaśnia działanie adresów światów gry i ustawień sieciowych.
Nie udostępniaj portu bazy danych w publicznym internecie. Jeśli w autoryzowanym środowisku potrzebny jest dostęp zdalny, ogranicz go za pomocą odpowiednich reguł zapory sieciowej lub sieci prywatnej.
AzerothCore jest przeznaczony do obsługi historycznego protokołu klienta WoW 3.3.5a. Współczesnych klientów World of Warcraft nie można używać zamiennie z tą wersją. Sama zgodność klienta nie oznacza zezwolenia na łączenie się z nieoficjalnym serwerem.
Typowe problemy z konfiguracją serwera World of Warcraft
Nawet jeśli oprogramowanie skompiluje się pomyślnie, problemy z konfiguracją mogą uniemożliwić uruchomienie usług.
| Problem | Co sprawdzić |
|---|---|
| Nie udało się połączyć z bazą danych | Stan MySQL, dane logowania do bazy danych, uprawnienia użytkownika |
| Worldserver nie może wczytać map | Brakujące lub umieszczone w niewłaściwej lokalizacji pliki dbc, maps lub vmaps |
| Świat gry jest niedostępny | Stan Authserver i konfiguracja realmlist |
| Połączenie odrzucone | Proces serwera, port nasłuchujący, zapora sieciowa |
| Kompilacja nie powiodła się | Wersja kompilatora, zależności, dostępna pamięć RAM |
| Nieoczekiwane awarie | Dzienniki uruchamiania, zgodność wersji oprogramowania, limity zasobów |
Na przykład dostępną pamięć i miejsce na dysku sprawdzisz za pomocą:
free -h
df -h
Jeśli diagnozujesz nieudaną kompilację, uruchom ponownie odpowiednie polecenie i przeczytaj pierwszy istotny komunikat o błędzie, zamiast skupiać się wyłącznie na końcowym komunikacie o niepowodzeniu.
W przypadku utrzymujących się problemów zajrzyj do dokumentacji AzerothCore dotyczącej typowych błędów.
Aktualizowanie i zabezpieczanie AzerothCore
AzerothCore jest stale rozwijany, dlatego wymagania instalacyjne i opcje konfiguracji mogą się zmieniać.
Przed aktualizacją istniejącego środowiska:
- Utwórz kopie zapasowe baz danych MySQL i własnych konfiguracji.
- Zapoznaj się z najnowszymi informacjami projektu dotyczącymi instalacji i aktualizacji.
- Zatrzymaj odpowiednie usługi w kontrolowany sposób.
- Zaktualizuj kod źródłowy i w razie potrzeby ponownie skompiluj oprogramowanie.
- Poczekaj na zakończenie aktualizacji bazy danych opisanych w dokumentacji.
- Sprawdź procesy serwera i przejrzyj ich dzienniki.
Regularnie instaluj również aktualizacje zabezpieczeń systemu operacyjnego, chroń dane logowania administratorów, ogranicz zbędny dostęp sieciowy i testuj procedury odzyskiwania.
Nie wyłączaj całkowicie automatycznych aktualizacji zabezpieczeń. Zamiast tego planuj okna serwisowe i koordynuj aktualizacje, które mogą spowodować ponowne uruchomienie MySQL lub innych usług.
Często zadawane pytania
Tak. AzerothCore obsługuje system Linux i udostępnia dokumentację dotyczącą kompilacji i konfiguracji oprogramowania serwerowego o otwartym kodzie źródłowym. Korzystanie z zastrzeżonych zasobów gry lub łączenie się klientem WoW wiąże się z dodatkowymi kwestiami dotyczącymi praw i licencji.
Nie. Projekt AzerothCore WotLK jest przeznaczony dla historycznego środowiska World of Warcraft 3.3.5a. Współczesne oficjalne wersje klienta gry nie są z nim bezpośrednio zgodne.
Nie. AzerothCore zakończył obsługę MariaDB we wrześniu 2024 roku. Aktualna dokumentacja projektu zaleca MySQL 8.4 LTS.
Niekoniecznie. Środowisko programistyczne lub testowe może działać na wystarczająco wydajnej maszynie wirtualnej. Zapotrzebowanie na zasoby zależy od kompilacji, zainstalowanych modułów, aktywnych usług i obciążenia.
Umowa licencyjna użytkownika końcowego firmy Blizzard ogranicza nieautoryzowaną emulację serwerów i połączenia z nimi. Oprogramowanie serwerowe o otwartym kodzie źródłowym nie daje praw do klienta gry, grafik ani innych zastrzeżonych treści firmy Blizzard. Każdy, kto rozważa korzystanie ze środowiska emulatora, powinien zapoznać się z odpowiednimi licencjami i uzyskać wszelkie wymagane zezwolenia.
Podsumowanie
Konfiguracja serwera World of Warcraft za pomocą AzerothCore wymaga znacznie więcej niż pobrania emulatora i uruchomienia dwóch poleceń.
Działające środowisko techniczne wymaga zgodnego oprogramowania, konfiguracji MySQL, odpowiednich danych gry, prawidłowo skonfigurowanych usług uwierzytelniania i świata gry oraz właściwych ustawień sieciowych.
Postępując zgodnie z aktualną dokumentacją projektu i weryfikując każdy etap przed przejściem do następnego, możesz lepiej zrozumieć działanie infrastruktury serwerów MMORPG i uniknąć wielu typowych błędów instalacyjnych.
Zawsze odróżniaj technologię serwerową o otwartym kodzie źródłowym od zastrzeżonych treści i zezwoleń wymaganych do jej wykorzystania.