Allods Online Addons (10/10): Recapitulando

Juan Mellado, 9 Octubre, 2010 - 10:50

Allods OnlineEl último capítulo de esta serie dedicada a los addons de Allods coincide con la actualización a la versión 1.1.02.58.1 del juego. Así, con todos esos numericos. Más conocida por "Rise of Gorluxor".

Llegado este punto no me queda mucho por decir. He cubierto todos los apartados que me había propuesto, completando los 10 artículos que calculé que podía llevarme la tarea. Aunque en este último post es bueno echar la vista atrás y repasar lo aprendido, que no ha sido poco.

Lua es sin lugar a dudas una de las piezas claves de todo este invento de los addons. Ya lo conocía de antes, pero como otra más de esas tecnologías que uno va encontrando por el camino y a la que nunca acaba de dedicar todo el tiempo que debería. En particular me llamó mucho la atención que Allods levantara una máquina virtual de Lua independiente para cada addon. Gracias a que Lua es un proyecto de código abierto me animé a bajarme los fuentes y echarles un vistazo para comprobar lo liviano que resulta todo el sistema, gracias a un lenguaje que en el fondo es bastante simple pero que cumple con creces las necesidades que se le plantean.

Otro factor clave desde el punto de vista del código de los addons es la programación orientada a eventos. A día de hoy sigue pareciendo una de las formas más naturales de informar de la ocurrencia de determinados sucesos externos a un programa, evitando tener que consumir recursos haciendo polling sobre algún tipo de estructura global. La contrapartida por supuesto es el número de eventos, que puede llegar a ser realmente grande si se pretende abarcar el enorme número de sucesos que pueden llegar ocurrir en el juego.

Un API bien definido que permita acceder y manipular todos los componentes principales del juego es otro punto importante a tener en cuenta. Aunque al igual que ocurre con los eventos, el número de funciones públicas se dispara. Afortunadamente, gracias al tipo table de Lua, que no deja de ser una tabla hash en los que sus elementos se referencian por su nombre, no es necesario definir múltiples estructuras o clases de datos, ya que se puede añadir cualquier atributo sin tener que modificar el código ya existente. Todo un acierto.

El hecho de que el código fuente interno de Allods, al menos en la parte que está escrita en Lua, utilice las mismas funciones del API que se exponen de forma pública es bastante interesante. Eso permite reemplazar funcionalidades completas del juego por las nuestras propias de forma bastante elegante.

La interface de usuario en Allods está resuelta mediante ficheros XML donde se describen las ventanas, los controles que contienen, y su aspecto en general. Esto es bastante común en muchas arquitecturas, y aunque tienden a generar muchos ficheros a veces dificiles de mantener manualmente, permite separar claramente la capa de presentación de la lógica de negocio. Aunque en este punto se echa en falta sin lugar a dudas algún tipo de editor visual que facilite la construcción de las interfaces.

Y hablando de echar en falta, donde más naufraga Allods en este asunto de los addons es en la falta de documentación. De acuerdo, el traductor de Google es nuestro amigo, pero aún así resulta complicado navegar por la documentación del API que se encuentra única y exclusivamente publicada en ruso. Y por no mencionar la diferencia entre las distintas versiones del juego, la rusa y las demás, con cambios en el API que hacen que los addons no funcionen correctamente en unas versiones y otras.

En cualquier caso, siempre hay que tener presente que Allods es un MMORPG gratuíto, aunque con un planteamiento del juego que invita en todo momento al jugador a pasarse por la tienda de items a realizar un micropago para conseguir algún tipo de mejora, o evitar las odiosas maldiciones que hacen que los objetos inviertan el valor de sus estadísticas. Cualquier característica que los desarrolladores incorporen al juego, como la posibilidad de escribir addons, se tendría que valorar en su justa medida teniendo en cuenta su gratuidad.

Happy coding!

¿No encontró lo que buscaba?

Utilice el buscador para encontrar más páginas en esta web o en toda Internet.
 
Web www.inmensia.com