Servidor de World of Warcraft WotLK en Linux

wowisland

Master en Linux
ULTRA VIP
Desde
21 Feb 2020
Mensajes
77
Reacciones
106
Honor
82
World of Warcraft ha sido uno de los juegos más aclamado en la historia de los videojuegos, consiguiendo un máximo de 10 millones de jugadores registrados y un acumulado a lo largo de su historia de más de 100 millones. La expansión Wrath of the Lich King, ha sido una de las más exitosas. Pues hoy vamos a aprender a crear un servidor de World of Warcraft WotLK en Linux.

En este caso, vamos a utilizar un emulador de AtherothCore, pero esta guía es aplicable a Trinitycore, ya que solo cambia la forma de aplicar las bases de datos y los repositorios de descarga.

Empecemos con los requisitos.
A pesar de ser usuario de Linux y conocer muchas distribuciones, en emulación siempre he utilizado Debian. Sé que funciona con otras como son sus derivadas, en Archlinux, Fedora y Red Hat entre otras, pero en esta guía me voy a centrar en Debian 10, que es la que conozco mejor para este fin. ¡Vamos a crear un Servidor de World of Warcraft WotLK en Linux!

Dependencias a instalar. Ejecutaremos los siguientes comandos:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Compilamos el emulador:
Necesitamos clonar el repositorio. Como siempre acabamos descargando muchos repositorios de emuladores, páginas Web, aplicaciones… Yo lo que hago es crear una carpeta en ni home llamada Repos, y ahí los guardo todos.

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Para TrinityCore utilizaremos este repositorio:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Entramos en la carpeta y creamos un directorio para la compilación:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

En Trinity, la carpeta se llamará TrinityCore.

Vamos a generar el código y prepararlo para la compilación. A continuación especificaré las opciones que utilizo:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

En TrinitCore prepararemos los archivos con:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

  • INSTALL_PREFIX : Ubicación donde instalaremos el servidor
  • {C,CXX}_COMPILER : Compilador que utilizamos y ruta
  • TOOLS : Especificamos con 0/1 si queremos las herramientas de extracción
  • SCRIPTS : Especificamos con 0/1 si queremos compilar los scripts
compila1.jpg


Si al lanzar el comando no nos devuelve ningún error, ya estamos preparados para compilar el emulador. La orden será:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Con la opción -j $(nproc) lo que hacemos es decirle que utilice todos los núcleos del procesador para realizar el proceso, por lo que puede ralentizar nuestro equipo si estamos trabajando. Si no quieres que la compilación te influya en el rendimiento del servidor, puedes sustituir la variable por el número de núcleos que quieras. Como menos núcleos, más lento el proceso de compilar, pero menos lo vas a notar en bajada de rendimiento.

compila2-1024x447.jpg


Ya tenemos el core compilado, y los archivos están en su ubicación final, tal como lo hemos especificado con las opciones de cmake.

Vamos a crear y preparar las bases de datos. El proceso en AzerothCore lo han simplificado mucho, solo se necesita configurar nuestros datos y ejecutar un script. En TrinityCore, lo que han hecho más simple es poblar las bases de datos, aunque las tenemos que crear manualmente.

Bases de datos en AzerothCore:
Vamos al directorio que está el core:

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Creamos el fichero de configuración y lo editamos:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Dentro del fichero vamos a la sección “DB EXPORTER/IMPORTER CONFIGURATIONS” y lo editamos con nuestros datos de conexión de la base de datos:
config.jpg


Una vez lo tengamos editado, ejecutamos el script para que cree nuestras bases de datos y les escriba todos los datos.

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Aquí seleccionaremos el opción nº5 : import-all: Assemble & Import all
databases_install.jpg


Hasta aquí la instalación de las bases de datos. Solo nos quedará configurar la línea del realmlist, pero esto lo haremos en el apartado de las configuraciones.

Bases de datos en TrinityCore:
Primero debemos ir a la página de descargas de las bases de datos y descargar la más reciente de la versión 3.3.5. Descargamos la que está comprimida con 7z.

desc_db.jpg


Este es el archivo más reciente que hay a fecha de la creación de la base de datos. Revisa en el anterior link si hay una versión más nueva.
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Descomprimimos el archivo, y lo copiamos en la carpeta que tenemos los binarios del emulador:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Creamos las bases de datos con los comandos de a continuación. Recuerda poner tus datos, como nombre de usuario de sql, y los nombres de las bases de datos si los quieres cambiar:
SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Del resto se encarga el emulador al arrancar. Si todo queda bien configurado, el emulador se encarga de poblar las bases de datos.

Los maps, dbc, y más archivos:
Para que funcione el emulador, se necesitan unos archivos que debemos extraer del cliente del juego. Este proceso lo tengo explicado en la guía del emulador Classic. Te dejo el enlace para ver como se hace:

Extracción de los maps

Si no los quieres extraer, te dejo unos enlaces de descarga donde están extraídos en español. Recuerda que no son compatibles de un emulador al otro. Debes escoger los correctos:

Descarga data AzerothCore: Aquí

Descarga data TrinityCore: Aquí

Los copiamos en una capeta llamada data con los datos extraídos dentro, también con cartetas cada tipo (maps, dbc, vmaps, mmaps). Esta carpeta debe estar en el directorio del servidor, es decir, dentro de ~/Servers/acore. Cuando el servidor esté completo en esta capeta deben estar:
  • bin
  • etc
  • data
  • logs (esta la creamos al siguiente paso)
Configuración de archivos:
Vamos a modificar los archivos que necesitamos para que funcione nuestro servidor. Hay muchas cosas que puedes cambiar de la configuración, pero en este post vamos a explicar lo imprescindible para que funcione tu emulados. En el mismo archivo, hay unas líneas donde explican las opciones.

Recuerda de cambiar el nombre de la carpeta si estás compilando Trinity. A continuación creamos los archivos de configuración:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Ahora editaremos lo necesario. Empezamos con el authserver.conf. Lo abrimos para editar y buscamos el texto LogsDir = “” y lo modificamos con:
LogsDir = "/logs"

Luego buscamos la siguiente línea y la editamos con nuestros datos:
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"

Guardamos y cerramos. Ahora abrimos y editamos worldserver.conf. Igualmente buscamos el texto LogsDir = “” y le ponemos el mismo que en el archivo anterior.

Seguimos buscando las líneas de las bases de datos y las configuramos de la misma forma:
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_characters"

Creamos la carpeta de logs, donde se guardarán los archivos log de nuestro emulador (recuerda cambiar el nombre de la carpeta del emulador si usas Trinitycore):
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Con esto es suficiente para arrancar el servidor. Después ya cambiarás más opciones para ajustar el servidor a tus propios gustos.

Configuración del realmlist en la base de datos:
Ahora le vamos a configurar en la base de datos nuestra conexión y el nombre de nuestro reino.

Para este paso puedes entrar a tu base de datos con tu GUI favorita, por phpmyadmin si lo tienes instalado, o directamente con un comando. Nosotros lo vamos a hacer directamente mediante un comando, que es lo más rápido.

Nos conectamos a nuestra base de datos con el usuario que tengamos. En mi caso tengo un usuario llamado catlinux.
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Recuerda cambiar por tus datos:

  • acore_auth : si utilizas AzerothCore estará bien si no lo has cambiado. En Trinity auth
  • NomreReino : El nombre que le quieras da a tu reino. Libre elección
  • TuDireccionIP : Aquí depende de como vayas a conectar. A continuación explico las 3 opciones posibles.
  1. IP local: En caso de conectarte desde tu misma red interna. Ejemplo:(192.168.1.x)
  2. Localhost: Si vas a jugar con el mismo equipo que aloja el servidor. también puede ser: 127.0.0.1
  3. IP externa: La ip del router para poder conectar desde el exterior.
Con esto ya tenemos nuestro servidor funcional. Vamos a la puesta en marcha y los últimos ajustes.

Puesta en marcha del servidor:
Abrimos un terminal, vamos a la carpeta de nuestro servidor y entramos en el directorio bin.

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Aquí ejecutamos el comando para arrancar el servidor del reino:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

En caso de tener un emulador TriniryCore poblará las bases de datos con todos los datos y las actualizaciones en este momento. Luego arrancará el emulador. Si tienes AzerothCore arranca directamente.

Abrimos otra ventana de terminal con la misma ubicación y arrancamos el archivo para el proceso de login al juego:
Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Ahora vamos a crear un primer usuario que será el admin del servidor. Volvemos a la terminal que arrancamos el servidor del reino (worldserver) y ejecutamos las siguientes líneas:
account create <user> <pass>
account set gmlevel <user> 3 -1

En la primera línea creamos el usuario con su contraseña, y en la segunda le damos permisos de administrador.

Ya solo nos queda cambiar el realmlist.wtf donde pondremos la dirección de nuestro servidor:
set realmlist logon.wowisland.es:3725

En mi caso yo tengo al final :3725 pero esto no suele ser necesario. Yo tengo el puerto del juego cambiado porque utilizo dos servidores diferentes de login.

Y con esto ya podemos jugar!

Si te interesa tener un restarter automático por si hay caidas, lo tienes disponible en el post de a continuación:
AutoRestarter para emuladores de Wow

Fuentes:
https://catlinux.es/servidor-wotlk-en-linux/
http://www.azerothcore.org/
https://www.trinitycore.org/
 

devmelh

Capataz
Desde
22 May 2020
Mensajes
13
Reacciones
6
Honor
30
Yo trabajo con servidores en Linux he compilado 3 versions WoLTK, Legión y BFA, todos sin problemas es una my buena opción, la guia completisima hubiese sido mas sencillo si llegaba antes a ver este foro
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Hola, e seguido la siguiente guía primero de todo antes de empezar a instalar el servidor, con un host vació https://catlinux.es/instalar-mariadb-en-nuestro-servidor-debian-10-buster/ que es para instalar Mariadb en tu server. y tengo problemas en el segundo paso.

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Es la primera instalacion, por lo tanto deberia de dejarlo en blanco, no poner ninguna contraseña, solo darle al enter, y salta ese error.

ideas? Gracias
 

devmelh

Capataz
Desde
22 May 2020
Mensajes
13
Reacciones
6
Honor
30
Si te sale ese error seria recomendable que veas en los logs de mysql, posiblemente se a seteado una clave por defecto normalmente esta siempre ahí
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Lo solucione con el comando mysql -u root -p y metiendo el password que viene en el servidor, se ve que se accede por superusuario o eso e leído ( que no significa que no se puedan crear otros usuarios), y que al ser Debian 10 no es necesario tirar el script mysql_secure_installation.

Gracias (y)
 
Última edición:

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Tengo el server montado en un VPS con debian 10, ya esta corriendo, pero necesito acceder a su base de datos, en este caso antes accedia desde SQLYOG, puedo seguir accediendo de alguna forma similar o tengo que acceder desde el panel (PuTTy)?
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
El problema era que puse el puerto al final de la dirección en el realm, y estaba mandando paquetes malos, quite el puerto del realm y conecto, me sale el nombre de mi servidor pero en gris, y como desconectado, no me deja entrar

edit: perfecto, se desconecto el worldserver, de hay el motivo, reconexion y ya estoy dentro
 
Desde
20 Feb 2021
Mensajes
1
Reacciones
1
Honor
3
hola,
podrías poner nuevamente los. Los maps, dbc, y más el Link está roto
 

zkhar

Explorador
Desde
23 Aug 2021
Mensajes
8
Reacciones
1
Honor
5
hola a alguienmas le salio este error?
libmariadbclient-dev : Depende: libmariadb-dev (= 1:10.3.31-0ubuntu0.20.04.1) pero no va a instalarse
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.
 

keldan

Explorador
Desde
13 May 2020
Mensajes
23
Reacciones
11
Honor
17
hola a alguienmas le salio este error?
libmariadbclient-dev : Depende: libmariadb-dev (= 1:10.3.31-0ubuntu0.20.04.1) pero no va a instalarse
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.

me pasaba hasta que cambie las repos a las actualizadas y pude compilar tranquilamente.
 

zkhar

Explorador
Desde
23 Aug 2021
Mensajes
8
Reacciones
1
Honor
5
me pasaba hasta que cambie las repos a las actualizadas y pude compilar tranquilamente.
hola me puedes pasar las repos por favor y si viste algun video tutorial tambien
 

keldan

Explorador
Desde
13 May 2020
Mensajes
23
Reacciones
11
Honor
17
hola me puedes pasar las repos por favor y si viste algun video tutorial tambien
Que Distri de linux tienes? , es relativamente facil , con una par de instrucciones te alas apañas no necesitas video :D
 

keldan

Explorador
Desde
13 May 2020
Mensajes
23
Reacciones
11
Honor
17
debian 11 y ubuntu server 18.04
1631664828013.png
Para Debian esta seria como la "guia", basicamente te dice que debes ir a /etc/apt y modificar el archivo Sources.list, En lo personal borre todo lo que contenia dicho archivo y solo pegue el que nos deja abajo y me quedo asi:
1631664965924.png


Luego guardas y corres el comando "apt update" y listo.

con respecto al ubunto 18, no lo intente pero es basicamente los mismo , busca en google el repositorio y haces lo mismo. Mucha suerte compa
 
Desde
1 Jul 2022
Mensajes
4
Reacciones
0
Honor
1
Para Debian esta seria como la "guia", basicamente te dice que debes ir a /etc/apt y modificar el archivo Sources.list, En lo personal borre todo lo que contenia dicho archivo y solo pegue el que nos deja abajo y me quedo asi:
View attachment 2595

Luego guardas y corres el comando "apt update" y listo.

con respecto al ubunto 18, no lo intente pero es basicamente los mismo , busca en google el repositorio y haces lo mismo. Mucha suerte compa

Para Debian esta seria como la "guia", basicamente te dice que debes ir a /etc/apt y modificar el archivo Sources.list, En lo personal borre todo lo que contenia dicho archivo y solo pegue el que nos deja abajo y me quedo asi:
View attachment 2595

Luego guardas y corres el comando "apt update" y listo.

con respecto al ubunto 18, no lo intente pero es basicamente los mismo , busca en google el repositorio y haces lo mismo. Mucha suerte compa
Joder, yo tengo el mismo problema, solo que en Ubuntu 20.04.2, aun no consigo solucionar eso de las dependencias incumplidas ni encontrar los repositorios que necesito
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

3,655Temas
24,082Mensajes
15,181Usuarios
ThewarlockÚltimo usuario
Top