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, spelgegevens 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 op Linux, Windows en macOS draaien. In deze handleiding richten we ons op de installatie op Ubuntu 26.04 LTS, volgens de huidige installatieprocedure van het project op basis van de broncode.

We behandelen de belangrijkste commando’s, 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 technisch onderwijs en voor omgevingen waarvoor je over de benodigde rechten en toestemmingen beschikt. De handleiding biedt geen gameclients of bedrijfseigen bestanden en verleent geen toestemming om een ongeautoriseerde dienst te exploiteren.

Wat is AzerothCore?

AzerothCore is een opensource-MMO-serveremulator 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 spelwereld.

De software gebruikt drie hoofdonderdelen:

  • Authserver: Verzorgt de authenticatie bij het inloggen en de selectie van realms.
  • Worldserver: Beheert de activiteit in de spelwereld, personages en gameplay-systemen.
  • MySQL-database: Slaat authenticatiegegevens, personages en informatie over de spelwereld 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 verder te verspreiden.

Wat is AzerothCore

Systeemvereisten voor een World of Warcraft-server

De vereisten voor AzerothCore hangen af van je installatiemethode en de belasting. Voor het compileren van de software zijn doorgaans meer resources nodig dan voor het draaien van een kleine testomgeving.

Voor een ontwikkel- of testomgeving op Linux kun je uitgaan van de volgende 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 garanties voor het aantal spelers.

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

Voor de installatie heb je ook beheerderstoegang en kennis van eenvoudige Linux-commando’s 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 aan de huidige vereisten van AzerothCore voldoen.

Gebruik een gewone Linux-gebruikersaccount 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 map voor het compileren aan:

cd ~/azerothcore
mkdir build
cd build

Configureer het compilatieproces 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. Dat vermindert de druk op het geheugen vergeleken met het gebruik van alle beschikbare CPU-threads.

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

Installeer de uitvoerbare 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 tools.

Stap 3: Configureer de MySQL-database

AzerothCore gebruikt drie databases:

  • acore_auth — authenticatie- en accountgegevens.
  • acore_characters — personage- en spelergegevens.
  • acore_world — informatie over de spelwereld.

Voor een nieuwe installatie biedt AzerothCore een SQL-script waarmee je de databases en de databasegebruiker kunt aanmaken.

Voer het volgende uit:

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

Gebruik dit initialisatiescript alleen voor 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 dit 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 waarde door een sterk, uniek wachtwoord. Houd dit geheim en werk de bijbehorende databasegegevens in de configuratiebestanden bij.

Sluit MySQL af:

EXIT;

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

Je hoeft niet elk bestand met database-updates handmatig te importeren.

Stap 4: Bereid de benodigde spelgegevens voor

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

Deze staan los van de opensource-servercode. Voor bedrijfseigen bestanden en licenties is extra zorgvuldigheid vereist.

De belangrijkste gegevensmappen zijn:

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

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

Bij het extraheren worden tools gebruikt zoals map_extractor, vmap4_extractor, vmap4_assembler en mmaps_generator. Volg de officiële instructies voor het opzetten van een Linux-server voor de extractieprocedure die bij jouw omgeving past.

Plaats na het extraheren de vereiste mappen op de geconfigureerde locatie voor spelgegevens.

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

~/azerothcore/env/dist/bin/

Controleer of de vereiste 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 verder 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:

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.

Deze 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 databasewachtwoord dat je eerder hebt ingesteld.

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 spelgegevens naast het geïnstalleerde uitvoerbare bestand van de worldserver staan, is het standaard relatieve pad mogelijk al geschikt. Stel DataDir anders in op de juiste map.

Sla de configuratiebestanden op voordat je verdergaat.

Stap 6: Start de Worldserver en Authserver

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

Wanneer AzerothCore voor het eerst start, wordt je mogelijk gevraagd om databasetabellen aan te maken of te vullen. Volg de aanwijzingen en wacht tot de initialisatie is voltooid.

Controleer de uitvoer op problemen met de databaseverbinding of ontbrekende spelgegevens.

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

Start een tweede sessie:

tmux new -s wow-auth

Voer vervolgens het volgende uit:

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

Beide serverprocessen zouden nu in afzonderlijke sessies moeten draaien.

Je kunt je sessies weergeven met:

tmux ls

Gebruik voor langdurig draaiende omgevingen 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 succesvol 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 gebruikersnaam en het wachtwoord uit het voorbeeld door je eigen inloggegevens.

AzerothCore ondersteunt ook verschillende machtigingsniveaus voor accounts.

Met de commando’s voor accountbeheer kun je bijvoorbeeld beheerdersrechten toekennen:

account set gmlevel testuser 3 -1

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

Ken uitgebreide rechten alleen toe aan accounts die ze echt nodig hebben.

Dit zijn consolecommando’s van AzerothCore, geen gewone Linux-shellcommando’s.

Stap 8: Begrijp de netwerkinstellingen voor realms

AzerothCore gebruikt standaard twee TCP-poorten:

PoortDienst
3724Authenticatieserver
8085Worldserver

Daarnaast bewaart AzerothCore 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 de toegestane client kan bereiken. De netwerktoegang moet daarop worden afgestemd.

Je kunt de bestaande realm-configuratie bekijken via MySQL:

sudo mysql

Voer vervolgens het volgende uit:

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

In de netwerkdocumentatie van AzerothCore lees je 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 firewall- of privénetwerkregels.

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 onofficiële server.

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

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

ProbleemWat je moet controleren
Databaseverbinding misluktStatus van MySQL, databasegegevens, gebruikersrechten
Worldserver kan kaarten niet ladenOntbrekende of verkeerd geplaatste dbc-, maps– of vmaps-bestanden
Realm niet beschikbaarStatus van Authserver en configuratie van realmlist
Verbinding geweigerdServerproces, luisterende poort, firewall
Compilatie misluktCompilerversie, afhankelijkheden, beschikbaar RAM
Onverwachte crashesOpstartlogboeken, compatibiliteit van softwareversies, resourcebeperkingen

Controleer bijvoorbeeld het beschikbare geheugen en de opslagruimte met:

free -h
df -h

Als je een mislukte compilatie onderzoekt, voer dan het betreffende commando opnieuw uit en lees de eerste relevante foutmelding, in plaats van je alleen op de laatste melding te richten.

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

AzerothCore bijgewerkt en veilig houden

AzerothCore wordt voortdurend verder ontwikkeld. Daardoor kunnen installatievereisten en configuratieopties veranderen.

Voordat je een bestaande omgeving bijwerkt:

  1. Maak een back-up van je MySQL-databases en aangepaste configuraties.
  2. Lees de nieuwste installatie- en update-instructies van het project.
  3. Stop de betreffende diensten op de juiste manier.
  4. Werk de broncode bij en compileer de software opnieuw als dat nodig is.
  5. Wacht tot de gedocumenteerde database-updates zijn voltooid.
  6. Controleer de serverprocessen en bekijk hun logboeken.

Houd ook het besturingssysteem up-to-date met beveiligingsupdates, bescherm beheerdersgegevens, 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 mogelijk opnieuw starten.

Als je gameserver op Ubuntu draait, gebruik dan UFW om de serverfirewall te configureren. Sta alleen toegang tot de benodigde spelpoorten en SSH toe en houd onnodige diensten gesloten voor verbindingen vanaf het openbare internet.

Veelgestelde vragen

Kan ik een WoW-server op Linux opzetten?

Ja. AzerothCore ondersteunt Linux en biedt documentatie voor het compileren en configureren van zijn opensource-serversoftware. Voor het gebruik van bedrijfseigen spelbestanden of het verbinden van een WoW-client moet je ook rekening houden met rechten en licenties.

Ondersteunt AzerothCore moderne versies van World of Warcraft?

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

Ondersteunt AzerothCore MariaDB?

Nee. AzerothCore heeft de ondersteuning voor MariaDB in september 2024 stopgezet. De huidige documentatie beveelt MySQL 8.4 LTS aan.

Heb ik een dedicated server nodig?

Niet per se. Een ontwikkel- of testomgeving kan op een voldoende krachtige virtuele machine draaien. De benodigde resources hangen af van het compileren, de geïnstalleerde modules, 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. Als je overweegt een emulatoromgeving te gebruiken, moet je de relevante licenties doornemen en eventuele vereiste toestemmingen verkrijgen.

Conclusie

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

Voor een werkende technische omgeving heb je compatibele software, een geconfigureerde MySQL-database, geschikte spelgegevens, correct geconfigureerde authenticatie- en worldserverdiensten en passende netwerkinstellingen nodig.

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

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

Table of Content

Een WordPress-stagingwebsite is een privékopie van je live website waarop je updates, plugins, thema’s en

Zo werk je PHP veilig bij voor WordPress: controleer je huidige PHP-versie, maak een back-up

Door de Ubuntu-firewall met UFW (Uncomplicated Firewall) te configureren, help je je VPS te beschermen:

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