Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Een World of Warcraft-server opzetten met AzerothCore

Voor het opzetten van een World of Warcraft-server moet je serveremulatiesoftware installeren, een database configureren, gamegegevens voorbereiden en de verschillende serveronderdelen met elkaar verbinden. Een van de bekendste opensourceprojecten om dit proces te bestuderen is AzerothCore, dat de serveromgeving van World of Warcraft: Wrath of the Lich King 3.3.5a emuleert.

AzerothCore kan draaien op Linux, Windows en macOS. In deze handleiding richten we ons op de installatie op Ubuntu 26.04 LTS, volgens de actuele installatieprocedure van het project op basis van de broncode.

We behandelen de belangrijkste opdrachten, de databaseconfiguratie, netwerkinstellingen en veelvoorkomende installatieproblemen.

Belangrijk: AzerothCore is een onafhankelijk opensourceproject, geen officiële Blizzard-server. De licentievoorwaarden van Blizzard beperken ongeautoriseerde emulatie en verbindingen. Deze handleiding is bedoeld voor technische educatie en omgevingen waarvoor je over de benodigde rechten en toestemmingen beschikt. De handleiding biedt geen gameclients, bedrijfseigen bestanden of toestemming om een ongeautoriseerde dienst te exploiteren.

Wat is AzerothCore?

AzerothCore is een opensource-emulator voor MMORPG-servers, gebaseerd op de omgeving van Wrath of the Lich King 3.3.5a.

De software bootst serversystemen na, zoals personagebeheer, authenticatie, quests, wezens en interacties in de gamewereld.

De software gebruikt drie hoofdonderdelen:

  • Authserver: Verwerkt inlogauthenticatie en de selectie van realms.
  • Worldserver: Beheert activiteiten in de gamewereld, personages en spelsystemen.
  • MySQL-database: Slaat authenticatiegegevens, personages en informatie over de gamewereld op.

Beide serverapplicaties communiceren met MySQL en kunnen op dezelfde machine draaien.

AzerothCore levert serversoftware, maar geen gelicentieerde World of Warcraft-gameclient of rechten om bestanden van Blizzard opnieuw te verspreiden.

Wat is AzerothCore

Vereisten voor een World of Warcraft-server

De vereisten van AzerothCore hangen af van je installatiemethode en de belasting. Het compileren van de software vereist doorgaans meer resources dan het draaien van een kleine testomgeving.

Voor een ontwikkel- of testomgeving op Linux kun je uitgaan van deze specificaties:

ResourceAanbevolen configuratie
CPU4 vCPU of meer
RAM8 GB of meer voor het compileren
Opslag60–100 GB SSD of NVMe
BesturingssysteemUbuntu 26.04 LTS
DatabaseMySQL 8.4 LTS
CompilerGCC 15+ of Clang 18+

Deze hardwarespecificaties zijn praktische richtwaarden, geen officiële minimumvereisten of gegarandeerde spelerscapaciteiten.

Voor deze handleiding gebruiken we Ubuntu 26.04 LTS, dat via zijn pakketbronnen ondersteunde pakketten voor MySQL 8.4 beschikbaar stelt.

Voor de installatie heb je ook beheerderstoegang en kennis van eenvoudige Linux-opdrachten nodig.

Stap 1: Bereid je Linux-server voor

Maak via SSH verbinding met je Linux-omgeving:

ssh admin@YOUR_SERVER_IP

Vervang admin door je gebruikersnaam en YOUR_SERVER_IP door het daadwerkelijke adres van je server.

Werk het systeem bij:

sudo apt update
sudo apt upgrade

Installeer vervolgens de afhankelijkheden die voor Ubuntu 26.04 zijn gedocumenteerd:

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

Controleer of MySQL draait:

sudo systemctl status mysql

Je kunt ook de versies van de compiler en de database controleren:

clang --version
mysql --version

Controleer voordat je verdergaat of ze voldoen aan de actuele vereisten van AzerothCore.

Gebruik een gewoon Linux-account om AzerothCore te compileren en uit te voeren, in plaats van de applicatie als root te draaien.

Stap 2: Download en compileer AzerothCore

Download de officiële broncode van GitHub:

git clone https://github.com/azerothcore/azerothcore-wotlk.git \
--branch master --single-branch ~/azerothcore

Ga naar de projectmap en maak een aparte buildmap aan:

cd ~/azerothcore
mkdir build
cd build

Configureer de build met 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

Als de configuratie slaagt, compileer je AzerothCore:

make -j2

De optie -j2 beperkt het compileren tot twee parallelle taken. Daardoor wordt het geheugen minder belast dan wanneer je alle beschikbare CPU-threads gebruikt.

Als je server weinig RAM heeft en het compileren mislukt door een tekort aan geheugen, probeer dan make -j1.

Installeer de binaire bestanden zodra het compileren is voltooid:

make install

De geïnstalleerde bestanden zouden nu beschikbaar moeten zijn in:

~/azerothcore/env/dist/

De map bin bevat de serverapplicaties en gecompileerde hulpprogramma’s.

Stap 3: Configureer de MySQL-database

AzerothCore gebruikt drie databases:

  • acore_auth — authenticatie- en accountgegevens.
  • acore_characters — personage- en spelersgegevens.
  • acore_world — informatie over de gamewereld.

Voor een nieuwe installatie biedt AzerothCore een SQL-script om de databases en databasegebruiker aan te maken.

Voer het volgende uit:

sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql

Gebruik dit initialisatiescript alleen bij een nieuwe installatie. Het script maakt ook de standaarddatabasegebruiker opnieuw aan, wat bestaande configuraties kan verstoren.

Het script maakt een acore-account aan met een standaardwachtwoord. Wijzig dat wachtwoord voordat je de installatie gebruikt.

Open MySQL:

sudo mysql

Wijzig het wachtwoord van het account:

ALTER USER 'acore'@'localhost'
IDENTIFIED BY 'YOUR_STRONG_PASSWORD';

Vervang de tijdelijke aanduiding door een sterk, uniek wachtwoord. Houd het geheim en werk de bijbehorende databasegegevens in de configuratiebestanden bij.

Sluit MySQL af:

EXIT;

AzerothCore bevat een automatische database-updater die de benodigde tabellen initialiseert en bijwerkt wanneer de betreffende serverprocessen starten.

Je hoeft niet elk database-updatebestand handmatig te importeren.

Stap 4: Bereid de benodigde gamegegevens voor

AzerothCore heeft gamewereldgegevens nodig die compatibel zijn met de 3.3.5a-omgeving.

Deze gegevens staan los van de opensource-servercode. Ga daarom zorgvuldig om met bedrijfseigen bestanden en licenties.

De belangrijkste gegevensmappen zijn:

MapDoel
dbcGameconfiguratie en referentiegegevens
mapsTerrein- en kaartinformatie
vmapsGegevens over botsingen en zichtlijnen
mmapsNavigatie- en bewegingsgegevens

AzerothCore biedt extractieprogramma’s om deze gegevens voor te bereiden vanuit een compatibele clientinstallatie waarvoor je over de benodigde rechten beschikt.

Het extractieproces gebruikt programma’s zoals map_extractor, vmap4_extractor, vmap4_assembler en mmaps_generator. Volg de officiële instructies voor het opzetten van een Linux-server voor het extractieproces dat bij jouw omgeving past.

Plaats na de extractie de benodigde mappen op de geconfigureerde locatie voor gamegegevens.

Bij de standaardconfiguratie worden ze doorgaans verwacht naast het geïnstalleerde binaire bestand worldserver in:

~/azerothcore/env/dist/bin/

Controleer of de benodigde mappen bestaan voordat je de worldserver start.

Let op: De licentie van de opensource-emulator geeft geen toestemming om bedrijfseigen World of Warcraft-clientbestanden te downloaden, te delen of opnieuw te verspreiden.

Stap 5: Configureer Authserver en Worldserver

AzerothCore biedt voorbeeldconfiguratiebestanden voor beide diensten.

Ga naar de configuratiemap:

cd ~/azerothcore/env/dist/etc/

Maak werkkopieën aan:

cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf

Open de configuratiebestanden met de teksteditor van je voorkeur.

Bijvoorbeeld:

nano worldserver.conf

Zoek de instellingen voor de databaseverbinding.

Ze hebben de volgende indeling:

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"

Vervang YOUR_PASSWORD door het eerder aangemaakte databasewachtwoord.

Configureer ook LoginDatabaseInfo in authserver.conf.

Elke vermelding bevat de MySQL-host, poort, gebruikersnaam, het wachtwoord en de databasenaam.

Controleer vervolgens de optie DataDir in worldserver.conf.

Als de benodigde mappen met gamegegevens naast het geïnstalleerde binaire bestand van de worldserver staan, is het standaard relatieve pad mogelijk al geschikt. Stel anders DataDir in op de juiste map.

Sla de configuratiebestanden op voordat je verdergaat.

Stap 6: Start de worldserver en authenticatieserver

AzerothCore bevat opstartscripts voor het beheren van de serverprocessen.

Voor een interactieve test kun je tmux gebruiken om elk proces in een aparte terminalsessie te laten draaien.

Maak eerst een sessie aan voor de worldserver:

tmux new -s wow-world

Voer binnen die sessie het volgende uit:

cd ~/azerothcore
./acore.sh run-worldserver

Bij de eerste start kan AzerothCore je vragen om databasetabellen aan te maken of te vullen. Volg de aanwijzingen en laat de initialisatie voltooien.

Controleer de uitvoer op problemen met de databaseverbinding of ontbrekende bestanden met gamegegevens.

Om de tmux-sessie te verlaten zonder het proces te sluiten, druk je op Ctrl+B en vervolgens op D.

Start een tweede sessie:

tmux new -s wow-auth

Voer daarna het volgende uit:

cd ~/azerothcore
./acore.sh run-authserver

Beide serverprocessen zouden nu in aparte sessies moeten draaien.

Je kunt je sessies weergeven met:

tmux ls

Gebruik voor langdurige implementaties de gedocumenteerde opties van AzerothCore voor servicebeheer, in plaats van uitsluitend op interactieve terminalsessies te vertrouwen.

Stap 7: Maak een testaccount aan

Zodra de worldserver met succes is gestart, kun je via de console een account aanmaken.

Maak opnieuw verbinding met de worldserver-sessie:

tmux attach -t wow-world

Voer in de worldserver-console het volgende in:

account create testuser YOUR_STRONG_PASSWORD

Vervang de voorbeeldgebruikersnaam en het voorbeeldwachtwoord door de door jou gekozen inloggegevens.

AzerothCore ondersteunt ook verschillende machtigingsniveaus voor accounts.

Met de opdrachten voor accountbeheer kun je bijvoorbeeld beheerdersrechten toewijzen:

account set gmlevel testuser 3 -1

Niveau 3 geeft beheerdersrechten, terwijl -1 de instelling op alle realms toepast.

Geef verhoogde rechten alleen aan accounts die ze echt nodig hebben.

Dit zijn consoleopdrachten van AzerothCore, geen gewone Linux-shellopdrachten.

Stap 8: Begrijp de netwerkinstellingen voor realms

AzerothCore gebruikt standaard twee TCP-poorten:

PoortDienst
3724Authenticatieserver
8085Worldserver

AzerothCore bewaart ook verbindingsgegevens voor realms in de tabel realmlist binnen acore_auth.

Voor lokale tests kan het adres 127.0.0.1 blijven. Voor een geautoriseerde externe testomgeving moet het realm-adres overeenkomen met het adres dat voor de toegestane client bereikbaar is. Ook moet de netwerktoegang daarop zijn ingesteld.

Je kunt de bestaande realm-configuratie bekijken via MySQL:

sudo mysql

Vervolgens:

USE acore_auth;
SELECT id, name, address FROM realmlist;

De netwerkdocumentatie van AzerothCore legt uit hoe realm-adressen en netwerkinstellingen werken.

Stel je databasepoort niet bloot aan het openbare internet. Als externe toegang nodig is voor een geautoriseerde omgeving, beperk die dan met geschikte firewallregels of regels voor een privénetwerk.

AzerothCore is gericht op het historische WoW 3.3.5a-clientprotocol. Moderne World of Warcraft-clients zijn niet uitwisselbaar met die versie. Compatibiliteit van een client betekent op zichzelf niet dat je toestemming hebt om verbinding te maken met een niet-officiële server.

Veelvoorkomende problemen bij het opzetten van een World of Warcraft-server

Zelfs als de software met succes is gecompileerd, kunnen configuratieproblemen verhinderen dat de diensten starten.

ProbleemWat je moet controleren
Databaseverbinding misluktMySQL-status, databasegegevens, gebruikersrechten
Worldserver kan kaarten niet ladenOntbrekende of verkeerd geplaatste bestanden in dbc, maps of vmaps
Realm niet beschikbaarStatus van Authserver en configuratie van realmlist
Verbinding geweigerdServerproces, luisterpoort, firewall
Compileren misluktCompilerversie, afhankelijkheden, beschikbaar RAM
Onverwachte crashesOpstartlogboeken, compatibiliteit van softwareversies, resourcelimieten

Controleer bijvoorbeeld het beschikbare geheugen en de opslagruimte met:

free -h
df -h

Als je een compileerfout onderzoekt, voer de betreffende opdracht dan opnieuw uit en lees de eerste relevante foutmelding, in plaats van je alleen op de laatste melding over het mislukken te richten.

Raadpleeg bij aanhoudende problemen de documentatie over veelvoorkomende fouten van AzerothCore.

AzerothCore bijgewerkt en veilig houden

AzerothCore ontvangt voortdurend ontwikkelupdates. Daardoor kunnen de installatievereisten en configuratieopties veranderen.

Voordat je een bestaande omgeving bijwerkt:

  1. Maak een back-up van je MySQL-databases en aangepaste configuraties.
  2. Bekijk de nieuwste installatie- en update-instructies van het project.
  3. Stop de betreffende diensten op een gecontroleerde manier.
  4. Werk de broncode bij en compileer de software opnieuw wanneer dat nodig is.
  5. Laat de gedocumenteerde database-updates volledig uitvoeren.
  6. Controleer de serverprocessen en bekijk hun logboeken.

Installeer ook beveiligingsupdates voor het besturingssysteem, bescherm de inloggegevens van beheerders, beperk onnodige netwerktoegang en test herstelprocedures.

Schakel automatische beveiligingsupdates niet volledig uit. Plan in plaats daarvan onderhoudsvensters en stem updates af die MySQL of andere diensten opnieuw kunnen opstarten.

Veelgestelde vragen

Kan ik een WoW-server op Linux opzetten?

Ja. AzerothCore ondersteunt Linux en biedt documentatie voor het compileren en configureren van de opensource-serversoftware. Voor het gebruik van bedrijfseigen gamebestanden of het verbinden van een WoW-client gelden aanvullende rechten en licentievoorwaarden.

Ondersteunt AzerothCore het moderne World of Warcraft?

Nee. Het AzerothCore WotLK-project is gericht op de historische World of Warcraft 3.3.5a-omgeving. Moderne clients van de reguliere gameversie zijn niet rechtstreeks compatibel.

Ondersteunt AzerothCore MariaDB?

Nee. AzerothCore heeft de ondersteuning voor MariaDB in september 2024 beëindigd. De actuele documentatie beveelt MySQL 8.4 LTS aan.

Heb ik een dedicated server nodig?

Niet per se. Een ontwikkel- of testomgeving kan draaien op een voldoende krachtige virtuele machine. De benodigde resources hangen af van het compileren, de geïnstalleerde modules, de actieve diensten en de belasting.

Is het legaal om een privéserver voor World of Warcraft te exploiteren?

De eindgebruikerslicentieovereenkomst van Blizzard beperkt ongeautoriseerde serveremulatie en verbindingen. Opensource-serversoftware geeft geen rechten op de gameclient, illustraties of andere bedrijfseigen content van Blizzard. Wie overweegt een emulatoromgeving op te zetten, moet de relevante licenties controleren en de benodigde toestemmingen verkrijgen.

Conclusie

Bij het opzetten van een World of Warcraft-server met AzerothCore komt veel meer kijken dan een emulator downloaden en twee opdrachten uitvoeren.

Een werkende technische omgeving vereist compatibele software, een MySQL-configuratie, geschikte gamegegevens, correct geconfigureerde authenticatie- en worldserver-diensten en passende netwerkinstellingen.

Door de actuele documentatie van het project te volgen en elke stap te controleren voordat je verdergaat, krijg je meer inzicht in de werking van MMORPG-serverinfrastructuur en voorkom je veel veelvoorkomende installatiefouten.

Maak altijd onderscheid tussen opensource-servertechnologie en de bedrijfseigen content en toestemmingen die nodig zijn om deze te gebruiken.

Table of Content

Hosting that grows with you

Give your next website or application the resources and control it needs.

Explore VPS hosting →

VPS reseller hosting allows hosting companies to sell virtual private servers under their own brand

Je kunt met AI een WordPress-website bouwen zonder te kunnen programmeren of een professionele webdesigner

Fedora versus Ubuntu is een veelvoorkomende vergelijking onder ontwikkelaars, Linux-liefhebbers en bedrijven die een besturingssysteem

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Scroll naar boven