- Desde
- 21 Feb 2020
- Mensajes
- 77
- Reacciones
- 100
- 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
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:
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.
Para TrinityCore utilizaremos este repositorio:
Entramos en la carpeta y creamos un directorio para la compilación:
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:
En TrinitCore prepararemos los archivos con:
Si al lanzar el comando no nos devuelve ningún error, ya estamos preparados para compilar el emulador. La orden será:
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.
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:
Creamos el fichero de configuración y lo editamos:
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:
Una vez lo tengamos editado, ejecutamos el script para que cree nuestras bases de datos y les escriba todos los datos.
Aquí seleccionaremos el opción nº5 : import-all: Assemble & Import all
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
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.
Descomprimimos el archivo, y lo copiamos en la carpeta que tenemos los binarios del emulador:
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:
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:
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:
Descarga data TrinityCore:
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:
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:
Ahora editaremos lo necesario. Empezamos con el authserver.conf. Lo abrimos para editar y buscamos el texto LogsDir = “” y lo modificamos con:
Luego buscamos la siguiente línea y la editamos con nuestros datos:
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:
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):
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.
Recuerda cambiar por tus datos:
Puesta en marcha del servidor:
Abrimos un terminal, vamos a la carpeta de nuestro servidor y entramos en el directorio bin.
Aquí ejecutamos el comando para arrancar el servidor del reino:
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:
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:
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:
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:
En este caso, vamos a utilizar un emulador de
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
, pero esta guía es aplicable a
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
, 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

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.

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:

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

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
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
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.
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:
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
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:
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
Descarga data TrinityCore:
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
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)
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.
- IP local: En caso de conectarte desde tu misma red interna. Ejemplo
192.168.1.x)
- Localhost: Si vas a jugar con el mismo equipo que aloja el servidor. también puede ser: 127.0.0.1
- IP externa: La ip del router para poder conectar desde el exterior.
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:
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
Necesitas,
Acceder
o
Registrarse
para ver el contenido.
Necesitas,
Acceder
o
Registrarse
para ver el contenido.