Mundo continuo, adiós a los cambios de mapa en el AO

En una entrada previa expuse la estructura de datos que se utiliza en dinasty para almacenar los datos, tanto en ficheros para el cliente como en una base de datos SQL para el servidor. De esta forma nos alejamos, y de largo, de los formatos habituales que encontramos en el Argentum Online(o mods como el ImperiumAO).

A la hora de diseñar el sistema reparamos en que necesitaremos dividir el mundo en regiones para poder suscribir al jugador a aquellas en las que esté interesado. Después del proceso anterior las regiones del mapa quedaron de un tamaño de 82 de ancho por 86 de alto. Esto implicaría que si queremos que el usuario se suscriba a las «regiones de interés» en cada momento tendría que recibir la información actualizada de la región en la que está y las adyacentes. Esto supondría tenerlo al día de la información de 82*86*9=63468 tiles. Sin duda una cantidad excesiva e inútil en su mayoría.

Continuar leyendo «Mundo continuo, adiós a los cambios de mapa en el AO»

Estructura de datos del mundo de DinastyAO

Tal y como traté de explicar en la entrada anterior, el formato de datos del Argentum Online original no parece el optimo.

Aún así puedo afirmar que este formato ha mejorado sustancialmente desde las primeras versiones. Sin embargo, a pesar de todas las evoluciones que ha sufrido a lo largo del tiempo, nunca se ha llegado a profundizar en ellos con el objetivo de optimizarlo de verdad.

En el post anterior revelé la información innecesaria o redundante de la que directamente se podía prescindir. Sin embargo, más allá de esto, cierta información como la correspondiente a zonas bloqueadas o navegables, por ejemplo, puede no estar almacenada de la forma mas conveniente.

Imagen generada a partir de los mapas de los recursos del IAO
Imagen generada a partir de los recursos del cliente del IAO

Más concretamente, en el caso mas extremo, si tenemos en cuenta la cantidad de agua que hay en el mundo no parece la estructura mas apropiada para almacenarlo guardar todos y cada uno de los tiles de forma individual. También hay que tener en cuenta que lo más habitual será, tanto para el agua como para los tiles bloqueados, que estos no se encuentren de forma aislada o separados entre si.

Continuar leyendo «Estructura de datos del mundo de DinastyAO»

Un mundo para DinastyAO

Al iniciar el proyecto nos dimos cuenta de que necesitaríamos un mundo del que partir. Deberíamos analizar los datos de los que se compone y decidir cuales debían estar en el cliente, en el servidor o en ambos.

Mapa original del Argentum Online
Mapa discontinuo y con vacíos del AO

La información que encontramos habitualmente en los ficheros de mapas de un cliente de Argentum Online (ImperiumAO en ficheros .CSM por ejemplo) es la siguiente:

  • Nombre y descripción
  • Musica de ambiente y otros…
  • 4 layers de GRHs
  • Tiles bloqueados
  • Triggers (mascara para representar cosas como zonas de paso, bajo techo, seguras, u  otros…)
  • Tiles con particulas y luces
  • Objetos y NPCs
  • Teleports

Continuar leyendo «Un mundo para DinastyAO»