[Beta] ArcOS evoluciona: MMOSERV v1.0b

Iniciado por Ariath, 19 Noviembre 2009, 20:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Ariath

Bueno, lo primero decir, que el hilo que habla de ArcOS lo mantendré todavía un tiempo, hasta que el nuevo proyecto esté concluido. Pasado ese tiempo, el hilo de ArcOS será cerrado.

Bueno, para empezar, para los que no sepan que es ArcOS... que miren su hilo xD, bueno, guasas a parte, voy a resumir un poco lo que era este proyecto, y a continuación hablaré del nuevo.

ArcOS, para empezar, viene de Arcemu y MaNGOS, solo esto ya indica con qué está relacionado. Era un script, programado en Perl, que facilitaba y automatizaba el proceso de montar un servidor para el MMORPG World of Warcraft usando uno de los 2 emuladores antes mencionados (para los que empiecen, ArcEmu y MaNGOS eran los emuladores ;) ).

El script además contaba con unas aplicaciones en Java, que cumplían la función de aplicar en las bases de datos las diversas actualizaciones disponibles.

Se lanzaba por línea de comandos, y presentaba un interfaz de texto (por no llamarlo menú a secas) en el que podías elegir diversas opciones para montar un servidor (MaNGOS para 3.13, ArcEmu para 3.0.9, extracción de mapas, etc ... ).


El nuevo proyecto, MMOSERV, va a ser en realidad un conjunto de proyectos, entre los que se van a encontrar aplicaciones para el montaje de servidores, y utilidades varias (pasando por elementos dedicados a la personalización de servidores, etc ...).

Todos estos proyectos van a estar programados en C#, y se podrán lanzar en Linux mediante el proyecto Mono (las pruebas las estoy realizando en Ubuntu y openSUSE), y a parte, todos van a contar con interfaz gráfica.


El nuevo ArcOS, va a ser el proyecto MaNGOS Setup (uno de los que conforman MMOSERV), y va a permitir montar este emulador usando 2 bases de datos a elegir: UDB e YTDB (UDB es la base de datos oficial de MaNGOS).

Para MaNGOS, en lugar de usar su repositorio oficial GIT, el programa va a usar un mirror creado por mí, en un repositorio Subversion. El porqué de esto, es que he visto que GIT se comporta de manera un tanto rara al capturar su salida de información (los mensajes que va mostrando, y que se capturan para mostrar el progreso al usuario). Como con Subversion no ocurre esto, voy a usar este mirror, que se actualiza aproximadamente cada 3 días, y contiene 3 versiones de MaNGOS (cada versión tiene una carpeta con el número de la versión del juego que soporta: 3.0.9, 3.1.3, etc ... )una última, de nombre "latest", que siempre va a tener la última revisión disponible.

He de decir que, dado como me ha decepcionado el proyecto ArcEmu, va a dejar de ser soportado totalmente en MMOSERV, no habrá aplicación para montar servidores con ArcEmu.

En lo que a World of Warcraft se refiere, se podrá contar con los siguientes proyectos: MaNGOS Setup (desde el nacimiento del proyecto), Trinity Setup (vendrá más adelante) y por último, y no es todavía seguro que se incluya, Aspire Setup (que vendría a ser la versión "buena" de ArcEmu).


Luego, dejando a un lado World of Warcraft, tengo pensado en darle soporte a otros 2 MMORPGs, Aion y Ragnarok Online (y quizás, según vaya viendo el emulador, Final Fantasy XI), pero estos vendrán también más adelante.

De momento el proyecto va a entrar en una base beta, para que lo vaya probando la gente. Y también de momento no va a arrancar en Linux.

Esto último, es porque necesito depurar unos errores raros que estoy teniendo con Linux, relacionados con la ejecución de unos scripts.

En cuanto el soporte de Linux esté disponible, lo avisaré.

El proyecto va a estar alojado en SourceForge, aquí tenéis el repositorio (necesitais usar TortoiseSVN u otro cliente de Subversion para bajarlo):
https://mmoserv.svn.sourceforge.net/svnroot/mmoserv

Me ha faltado añadir la documentación, que todavía no la tengo preparada (pero tampoco es algo realmente necesario, pues he diseñado las aplicaciones para que resulte suficientemente intuitivo usarlas), y también me he fijado en que falta un programa para realizar la extracción fácil de maps, VMaps y DBCs.

Voy a tratar de hacerla entre hoy y mañana.

Salu2, iré actualizando.


P.D: Ser tolerantes con el proyecto, que el pobrecito solo es una beta y acaba de salir del huevo :) .

Ariath

He hecho limpieza general del hilo, para que solo quede la información útil correspondiente al proyecto.

El proyecto inicialmente va a contar con lo siguiente:


- MaNGOS Setup (ya sabemos lo que es)

- MaNGOS Database Updater (proyecto extra, para el que le guste montar MaNGOS por su propia mano, pero sin embargo, sea perezoso a la hora de aplicar todas las actualizaciones disponibles a las bases de datos. Este proyecto solamente hace eso, actualizar las bases de datos. Ni más, ni menos.)

- MySQL Helper (otro extra, permite realizar con suma comodidad 2 tareas relativas a MySQL: realizar un backup completo de una base de datos a un script SQL, y lo segundo, ejecución (o importación) en masa de varios scripts SQL en una base de datos.)

Salu2

Ariath

Buff... bueno, llevo un poco de tiempo sin actualizar aquí. Quiero decir que, como suelo postear noticias del proyecto fundamentalmente en mi foro (en donde tengo su hilo oficial), si alguna vez no actualizo esto durante mucho tiempo, echad un vistazo por esta URL: http://anotherwow.webcindario.com/foro/viewtopic.php?f=33&t=126

No necesitáis registraros para ver esa sección del foro en concreto. De todas formas, trataré de actualizar también esta parte con cierta frecuencia, para que no haga falta que os paséis por el otro hilo.

También, por supuesto, recordaros que la información más reciente de todas, siempre estará en el registro (log) del repositorio SVN del proyecto.

Para verla, los que uséis TortoiseSVN, basta conque hagáis clic derecho sobre la carpeta donde alojáis vuestra copia de MMOSERV, y en el menú contextual pincháis en Tortoise SVN -> Show log (o sea, menú Tortoise SVN y dentro de el, en Show log).

De momento, sobretodo he estado reestructurando un poco el proyecto, aparte de solucionando diversos bugs.

La reestructuración la he hecho, en parte para facilitarme a mí la vida, y por otro lado, para que cada proyecto de MMOSERV (MaNGOS Setup, MySQL Helper, etc ...) sea independiente (es decir, que podéis tener perfecta y únicamente la carpeta de MaNGOS Setup, por ejemplo, y funcionará sin problemas).

Y bueno, se me olvidaba, también he incluido un nuevo proyecto: WoW Data Extractor. Esto es más que nada una interfaz para las aplicaciones oficiales de MaNGOS destinadas a extraer los Maps, VMaps y DBCs.

Iré actualizando.

Salu2


P.D: Cómo siempre, os recuerdo que las versiones del cliente de juego con las que es compatible el proyecto, son únicamente las que aparecen en la lista desplegable de versiones, y también aprovecho para mencionar, que solo voy a hostear en mi mirror SVN (el que usa MaNGOS Setup para trabajar) 3 versiones del servidor más la última disponible.

Actualmente, a fecha de esta edición son las siguientes: 3.0.9, 3.1.3, 3.2.2a y 3.3.0a .

Cuando salgan nuevas, las más antigua de las versiones desaparecerá, con lo que quedaría así (si por ejemplo la siguiente fuera la 3.3.2):

3.1.3, 3.2.2a, 3.3.0a y 3.3.2 .

anonimo12121

#3
tu eras el admin de algun server de wow , verdad? me suena este nick.

saludos.

gran proyecto el tuyo.

P.D: por que no te pasas por GPLP(guerreros por la paz) = podrias ayduar en lo script ya que tan con la beta de wotlk ultima version.

no se que emulador ni nada...

pasate si te apetece.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

Ariath

Los nicks dan mil vueltas, seguro que encontrarás muchos Ariath por ahi ...

Yo no he sido nunca admin de servidores, y no tengo pensado serlo. Más que nada, porque peligraría mi salud mental (basta con que cualquier persona se pase por el foro de un servidor cualquiera, para que se le quiten las ganas de pertenecer al staff de dicho servidor, y lamentablemente, eso seguirá así mientras que un porcentaje de la población del servidor lo pueblen los típicos egoistas/llorones/maleducados/inmaduros que tiene por desgracia todo servidor).

Si en los servidores solo hubiese gente, que fuera como mínimo madura y educada, habría más ganas de hacer cosas por ellos, pero hasta que llegue ese momento ...

Seguramente esta respuesta chocará un poco, puesto que éste proyecto, y todos los que voy haciendo relacionado con los MMORPGs están pensados para facilitar la tarea del montaje, administración, personalización, etc ... de los servidores, y dichos proyectos los estoy poniendo a disposición de la gente (entre los que se encuentran también los que conforman el porcentaje que cité antes).

Estos proyectos, inicialmente no los empecé con la idea de compartirlos en mente, sino para, una vez que yo ya sabía de sobra montarlos, ahorrarme una serie de tareas que considero repetitivas, mecánicas, y por ende aburridas. Si estas cosas las puedo automatizar, pues que las haga el PC.

Ya más adelante decidí compartir mi trabajo, porque se que hay gente que aprecia estas cosas, las agradece, y por supuesto son todos personas con la cabeza en su sitio y respetuosas.

Tengo en mente hacer otras muchas cosas que irán saliendo poco a poco con el tiempo, como es un traductor sencillo (lo justo para traducir todo lo posible lo básico para hacer misiones, los items y NPCs del juego), un sistema de personalización de la base de datos (algo parecido a lo que es WoW-V), e incluso un programa que haga cómoda la configuración de los servidores.

Salu2


P.D: A ver si alguna vez dejas de hacer publicidad de ese servidor, ya sabéis de sobra cómo van las cosas en este foro en concreto. Y parece mentira que haya que repetirlo.

anonimo12121

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

sebastudios

Hola gen te saben porque cuando ejecuto MaNGOS DB Updater.exe me tirar error al querer configurar el Mysql? Me baje todos los archivos necessarios pero me tira este error siempre. Bueno un saludo para todos

Ariath

#7
Mmm... miraré eso, de todas formas, ¿Puedes dar más detalles sobre el error?

Yo, siempre que ejecuto las aplicaciones sin el Visual Studio de por medio, al toparme con un error, la ventana suele tener un botón de Detalles o similar, en el que se puede ver un texto detallando el error con el que se ha topado.

Mira a ver si me puedes pegar ese texto, si te sale. Mientras, miraré yo mismo qué puede pasar.

Salu2


P.D: Como ya habréis visto, si vais viendo el log del SVN, he desactivado temporalmente el soporte para montar servidores con la última versión del juego (la 3.3.2). Esto se debe a que me he encontrado con un problema importante en el código del actualizador de las bases de datos (un problema que no tuve en cuenta en su momento, pero que, al buscarse las actualizaciones en una única carpeta, al ser movidas algunas a otra carpeta diferente desde la última actualización del emulador, ya no se encuentran, y por ende, no funcionan correctamente las actualizaciones de Mangos).

En cuanto pueda corregiré ese problema. Tengo que reunir todas las actualizaciones existentes en todas las carpetas, eliminar las cosas innecesarias, y aparte, ordenar la lista de actualizaciones para que se puedan actualizar bien las bases de datos.

P.D 2: No me he metido todavía con el código fuente, pero acabo de probar el MaNGOS DB Updater y me deja configurado MySQL sin problemas.

Ariath

#8
Bueno, como siempre hago doble post para que no se mezclen demasiado las cosas, aparte de para reflotar un poco el hilo y que no caiga en el olvido.

Tras bastante tiempo sin actualizar ni el proyecto ni el mirror de MaNGOS, volvemos a actualizar.

Lo que voy a decir aquí es básicamente lo que puede ver cualquiera en el log del SVN, pero como hay gente que no sabe verlo, o simplemente no lo mira, lo pongo aquí mas o menos.


He reescrito por completo el código del actualizador de UDB, y como está ahora, debería poderse actualizar cualquier versión de la base de datos desde las que son compatibles con la versión 3.0.9 del juego hasta las más modernas (aunque habrá que hacer un ligero retoque para las más más modernas).

Luego, aunque esto no tiene repercusión en el funcionamiento de los proyectos... he movido todo el código de las bibliotecas AppLauncher, OS, MySQL y ArrayTools (bibliotecas de cosecha propia) a DLLs . Antes, si alguien abría las soluciones de los proyectos, podía ver que en casi todos habían varias carpetas iguales (sobretodo las correspondientes al AppLauncher), y claro, ello repercutía en que si hacía un cambio en alguna biblioteca, tenía que ir proyecto tras proyecto cambiándolo.

He comprendido que ese es un fallo que he cometido desde el principio, y ahora todos los proyectos acceden a las librerías por medio de sus correspondientes DLLs.


Bueno, y lo más importante, una vez reescrito y mejorado el actualizador de UDB, ya vuelve a estar habilitada la capacidad de crear servidores compatibles con la versión 3.3.2 del juego.

Salu2 y seguiremos actualizando :) .


P.D: Una cosa que se me ha olvidado comentar. Esto solo les interesa a los que quieran tener montados varios servidores en la misma máquina:

De momento, el MaNGOS Setup solo puede gestionar un servidor. De modo que, si después de montar un servidor, queréis montar otro adicional, necesitáis otra copia del MaNGOS Setup, configurada de manera que no os borre los datos del servidor ya creado.

Esto, aparte de eligiendo una carpeta distinta para la instalación del nuevo servidor, lo conseguís poniéndoles a las bases de datos del nuevo servidor nombres distintos. Yo por ejemplo, mis bases de datos las nombro siempre de esta manera: nombreEstandard_version (por ejemplo: mangos_322a, characters_313, etc ... ).

Estoy trabajando para que desde una única copia del MaNGOS Setup se puedan gestionar varios servidores, pero tardaré un poco en implementarlo.