Skip to content

Installation

SylvaniaCore deploy edited this page Aug 31, 2026 · 1 revision

Installation

Cette page complète la section « Compilation » du README avec ce qui pose réellement problème : les dépendances exactes, l'extraction des données client, et les pièges du premier démarrage.


1. Prérequis

Composant Version Remarque
CMake 3.31+ plus récent que la plupart des dépôts de distribution
Boost 1.84.0 version imposée par l'amont
MySQL / MariaDB MySQL 8.0 ou MariaDB 10.6+ le royaume tourne sur MariaDB 11.4
OpenSSL 3.x
Compilateur GCC, Clang ou MSVC Visual Studio 2022 recommandé sous Windows
libcurl any lié directement par src/server/game/CMakeLists.txt (module Mercenaires)

Plateformes supportées : Linux, Windows, macOS.

Debian / Ubuntu

sudo apt install build-essential cmake git libboost-all-dev libssl-dev libmysqlclient-dev \
                 libreadline-dev libncurses-dev zlib1g-dev libbz2-dev libcurl4-openssl-dev

⚠️ Si CMake de votre distribution est < 3.31, installez-le depuis cmake.org ou via pip install cmake.


2. Compilation

git clone https://github.com/BlaMacfly/SylvaniaCore.git
cd SylvaniaCore
cmake -S . -B build -DTOOLS=ON
cmake --build build -j$(nproc)

-DTOOLS=ON construit en plus mapextractor, vmap4extractor, vmap4assembler, mmaps_generator et dbcextractor — indispensables à l'étape 3.

Compiler sur une machine modeste

Sur un VPS 4 cœurs / 7 Go, ne pas dépasser -j3 pendant que le serveur de jeu tourne : la compilation d'un core TrinityCore consomme facilement 2 Go par processus de compilation, et l'OOM killer abat le worldserver avant le compilateur. Un build incrémental du seul worldserver :

make -C build -j3 worldserver

Le code source conserve volontairement les noms internes hérités de l'amont (DestinyCore, cibles CMake, chemins de configuration) pour rester compatible avec les mises à jour amont et ne pas casser les scripts de déploiement existants. Ne les renommez pas.


3. Extraire les données client

À faire une seule fois, depuis le dossier d'un client 7.3.5 build 26972. Copiez-y les binaires d'extraction, puis :

./mapextractor        # -> dbc/  maps/  cameras/  gt/
./vmap4extractor
./vmap4assembler Buildings vmaps
./mmaps_generator     # long : plusieurs heures

Déplacez ensuite dbc/, maps/, vmaps/, mmaps/, cameras/, gt/ dans le dossier pointé par DataDir de worldserver.conf.

Locale. Le serveur du royaume ne sert que la locale enUS (DBC.Locale = 0, seul dbc/enUS présent). Conséquence importante pour la traduction : GetSessionDbcLocale() retombe sur enUS pour tous les clients, donc le texte français va dans la colonne de base, pas dans les tables _locale. Voir Localisation francaise.

Pour extraire une locale supplémentaire : ./mapextractor -e 2 -l frFR.


4. Bases de données

Voir la page dédiée : Bases de donnees.

Le point à ne pas rater :

⚠️ N'importez jamais les fichiers de sql/base/dev/. Ce sont des structures vides destinées aux développeurs de l'amont. Les importer donne une base world creuse : le worldserver démarre, mais le client reste bloqué sur l'écran de chargement.


5. Premier démarrage

./bin/bnetserver
./bin/worldserver

Le premier lancement applique les ~330 fichiers de sql/updates/ : comptez plusieurs minutes avant que la console réponde. Le boot d'un serveur déjà à jour prend environ 25 secondes.

Deux messages qui ne sont PAS des erreurs

Ils apparaissent à chaque connexion sur tous les serveurs de cette lignée :

Client tried to call not implemented method ResourceService.GetContentHandle
Received not handled opcode [CMSG_GET_ACCOUNT_CHARACTER_LIST ...]

ResourceService est un service Battle.net resté à l'état d'ébauche en amont, et CMSG_GET_ACCOUNT_CHARACTER_LIST (liste des personnages inter-royaumes) est délibérément déclaré STATUS_UNHANDLED dans src/server/game/Server/Protocol/Opcodes.cpp.

Si le client reste bloqué au chargement, la cause est ailleurs → FAQ Depannage.

Clone this wiki locally