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, które pozwalają poznać ten proces, jest AzerothCore, emulujący środowisko serwera 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 niezbędne 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 licencji Blizzard ograniczają nieautoryzowaną emulację i połączenia. Ten poradnik służy edukacji technicznej i dotyczy środowisk, w których dysponujesz niezbędnymi prawami i pozwoleniami. Nie udostępnia klientów gry, zasobów objętych prawami własności ani pozwolenia 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 wykorzystuje trzy główne komponenty:
- Authserver: Obsługuje uwierzytelnianie podczas logowania i wybór serwera gry.
- Worldserver: Zarządza aktywnością w świecie gry, postaciami i mechanikami rozgrywki.
- Baza danych MySQL: Przechowuje dane uwierzytelniające, dane postaci 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 Blizzard.

Wymagania serwera World of Warcraft
Wymagania AzerothCore zależą od sposobu instalacji i obciążenia. Kompilacja oprogramowania zazwyczaj wymaga więcej zasobów niż uruchomienie niewielkiego środowiska testowego.
W przypadku środowiska programistycznego lub testowego w systemie Linux warto przyjąć następującą konfigurację wyjściową:
| Zasób | Sugerowana konfiguracja |
|---|---|
| CPU | 4 vCPU lub więcej |
| RAM | 8 GB lub więcej na potrzeby kompilacji |
| Przestrzeń dyskowa | 60–100 GB 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 wartości wyjściowe, a nie oficjalne wymagania minimalne ani gwarancja obsługi określonej liczby graczy.
W tym poradniku użyjemy systemu Ubuntu 26.04 LTS, którego repozytoria udostępniają 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 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 też 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 ze zwykłego konta użytkownika systemu Linux, zamiast uruchamiać aplikację 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 uwierzytelniające i informacje o kontach.acore_characters— dane postaci i graczy.acore_world— informacje o świecie gry.
Na potrzeby nowej instalacji AzerothCore udostępnia skrypt SQL tworzący bazy danych i użytkownika bazy danych.
Uruchom:
sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql
Używaj tego skryptu inicjalizacyjnego wyłącznie w nowej instalacji. Skrypt odtwarza również domyślnego użytkownika bazy danych, co mogłoby 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, unikalnym hasłem. Zachowaj je w tajemnicy i zaktualizuj odpowiadające mu dane logowania do bazy danych w plikach konfiguracyjnych.
Zakończ pracę z MySQL:
EXIT;
AzerothCore zawiera automatyczny mechanizm aktualizacji bazy danych, który inicjuje i aktualizuje wymagane tabele po uruchomieniu odpowiednich procesów serwerowych.
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.
Są one odrębne od kodu serwera o otwartym kodzie źródłowym, a korzystanie z nich wymaga szczególnej uwagi w kwestii zasobów objętych prawami własności i licencji.
Główne katalogi danych to:
| Katalog | Przeznaczenie |
|---|---|
dbc | Konfiguracja gry i dane referencyjne |
maps | Dane o terenie i mapach |
vmaps | Dane o kolizjach i widoczności |
mmaps | Dane o nawigacji i ruchu |
AzerothCore udostępnia narzędzia do wyodrębniania tych danych ze zgodnej instalacji klienta, jeśli dysponujesz niezbędnymi prawami.
Proces wyodrębniania wykorzystuje narzędzia takie jak map_extractor, vmap4_extractor, vmap4_assembler i mmaps_generator. Postępuj zgodnie z oficjalną instrukcją konfiguracji serwera Linux, wybierając procedurę wyodrębniania odpowiednią dla swojego środowiska.
Po zakończeniu wyodrębniania umieść wymagane katalogi w skonfigurowanej lokalizacji danych.
W konfiguracji domyślnej zwykle oczekuje się, że będą znajdować się obok zainstalowanego pliku wykonywalnego worldserver w katalogu:
~/azerothcore/env/dist/bin/
Przed uruchomieniem serwera świata sprawdź, czy wymagane katalogi istnieją.
Uwaga: Licencja emulatora o otwartym kodzie źródłowym nie zezwala na pobieranie, udostępnianie ani redystrybucję plików klienta World of Warcraft objętych prawami własności.
Krok 5: Skonfiguruj Authserver i Worldserver
AzerothCore udostępnia przykładowe pliki konfiguracyjne dla obu usług.
Przejdź do katalogu konfiguracji:
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.
Ich format jest następujący:
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 hasłem do bazy danych utworzonym wcześniej.
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, domyślna ścieżka względna może być już odpowiednia. W przeciwnym razie ustaw DataDir na właściwy katalog.
Przed przejściem dalej zapisz pliki konfiguracyjne.
Krok 6: Uruchom serwer świata i serwer uwierzytelniania
AzerothCore zawiera skrypty startowe do zarządzania procesami serwerowymi.
Na potrzeby testu interaktywnego możesz użyć tmux, aby każdy proces działał w osobnej sesji terminala.
Najpierw utwórz sesję dla serwera świata:
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ź komunikaty pod kątem problemów z połączeniem z bazą danych lub brakujących plików 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 serwerowe powinny teraz działać w osobnych sesjach.
Możesz wyświetlić listę sesji za pomocą:
tmux ls
W przypadku wdrożeń długoterminowych 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 możesz utworzyć konto za pomocą jego konsoli.
Połącz się ponownie z sesją serwera świata:
tmux attach -t wow-world
W konsoli serwera świata wpisz:
account create testuser YOUR_STRONG_PASSWORD
Zastąp przykładową nazwę użytkownika i hasło wybranymi danymi logowania.
AzerothCore obsługuje również różne poziomy uprawnień kont.
Na przykład polecenia do zarządzania kontami pozwalają nadać uprawnienia administratora:
account set gmlevel testuser 3 -1
Poziom 3 nadaje uprawnienia administratora, a -1 stosuje to ustawienie do wszystkich serwerów gry.
Nadawaj podwyższone uprawnienia tylko kontom, które rzeczywiście ich potrzebują.
Są to polecenia konsoli AzerothCore, a nie zwykłe polecenia powłoki systemu Linux.
Krok 8: Poznaj konfigurację sieciową serwerów gry
AzerothCore domyślnie używa dwóch portów TCP:
| Port | Usługa |
|---|---|
| 3724 | Serwer uwierzytelniania |
| 8085 | Serwer świata |
Przechowuje także informacje o połączeniach z serwerami gry w tabeli realmlist bazy acore_auth.
Podczas testów lokalnych adresem może pozostać 127.0.0.1. W autoryzowanym środowisku testowym ze zdalnym dostępem adres serwera gry musi odpowiadać adresowi dostępnemu dla klienta, któremu zezwolono na połączenie, a dostęp sieciowy należy odpowiednio skonfigurować.
Możesz sprawdzić istniejącą konfigurację serwera gry przez MySQL:
sudo mysql
Następnie:
USE acore_auth;
SELECT id, name, address FROM realmlist;
Dokumentacja sieciowa AzerothCore wyjaśnia działanie adresów serwerów gry i ustawień sieciowych.
Nie udostępniaj portu bazy danych w publicznym internecie. Jeśli zdalny dostęp jest niezbędny w autoryzowanym środowisku, ogranicz go za pomocą odpowiednich reguł zapory sieciowej lub sieci prywatnej.
AzerothCore korzysta z protokołu historycznego klienta WoW 3.3.5a. Współczesne klienty World of Warcraft nie są zamienne z tą wersją. Sama zgodność klienta nie oznacza pozwolenia na połączenie z nieoficjalnym serwerem.
Typowe problemy z konfiguracją serwera World of Warcraft
Nawet jeśli kompilacja oprogramowania przebiegła 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 |
| Serwer gry jest niedostępny | Stan Authserver i konfiguracja realmlist |
| Połączenie zostało odrzucone | Proces serwerowy, 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 sprawdź dostępną pamięć i przestrzeń dyskową 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.
Jeśli problem się utrzymuje, 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 niestandardowych plików konfiguracyjnych.
- Zapoznaj się z najnowszymi informacjami projektu dotyczącymi instalacji i aktualizacji.
- Zatrzymaj odpowiednie usługi w prawidłowy 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 serwerowe i przejrzyj ich dzienniki.
Dbaj także o aktualizacje zabezpieczeń systemu operacyjnego, chroń dane logowania administratora, ogranicz zbędny dostęp sieciowy i testuj procedury przywracania.
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.
Najczęściej zadawane pytania
Tak. AzerothCore obsługuje system Linux i udostępnia dokumentację dotyczącą kompilacji oraz konfiguracji oprogramowania serwerowego o otwartym kodzie źródłowym. Korzystanie z zasobów gry objętych prawami własności lub łączenie się za pomocą klienta 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 klienty gry nie są z nim bezpośrednio zgodne.
Nie. AzerothCore zakończył obsługę MariaDB we wrześniu 2024 r. Aktualna dokumentacja projektu zaleca MySQL 8.4 LTS.
Niekoniecznie. Środowisko programistyczne lub testowe może działać na odpowiednio 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 Blizzard ogranicza nieautoryzowaną emulację serwera i połączenia. Oprogramowanie serwerowe o otwartym kodzie źródłowym nie przyznaje praw do klienta gry Blizzard, materiałów graficznych ani innych treści objętych prawami własności. Każda osoba rozważająca korzystanie ze środowiska emulatora powinna zapoznać się z odpowiednimi licencjami i uzyskać wszelkie wymagane pozwolenia.
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 obsługi świata gry oraz właściwych ustawień sieciowych.
Korzystając z aktualnej dokumentacji projektu i weryfikując każdy etap przed przejściem do następnego, lepiej zrozumiesz działanie infrastruktury serwerowej MMORPG i unikniesz wielu typowych błędów instalacyjnych.
Zawsze odróżniaj technologię serwerową o otwartym kodzie źródłowym od treści objętych prawami własności oraz pozwoleń niezbędnych do korzystania z niej.