FR EN DE ES IT PT
Les traigo un articulo bastante interesante de nuestro desarrollador de client

Introducción:

Cuando se ha creado DOFUS 2, se ha querido dejar la posibilidad a los jugadores de crear sus propias interfaces y de agregar nuevas funciones al juego. Este tema se ha abordado incluso antes de la salida de DOFUS 2 y luego nunca más se supo sobre la evolución de este sistema.

Para recordarles, DOFUS se basa sobre un sistema de Modulos externos para la visualización y la gestión de todas las interfaces de juego. Este sistema de Modulos ya esta siendo utilizado desde hace largo tiempo, pero solo internamente, para pruebas.


¡Queremos ejemplos!


Aquí les dejamos una lista de Modulos que podrían crear los jugadores:

  • Mostrar informaciones extra en combate:
    • Estimación del promedio de daños, máximos o mínimos de cada hechizo/arma en función de sus propias características y las resistencias del objetivo;
    • Estimación de los cooldown enemigos
    • Estimación de resistencias fijas, etc.
  • Gestión de una lista de compras para la realización de una receta.
  • Estadísticas avanzadas (mejor DPS del combate, kamas/XP ganadas por minutos, etc.) HARDCORE!!

¿Por qué esperar para sacar de una vez este sistema?


La primera razón es que los jugadores no pueden tener la misma confianza en un modulo creado por Ankama, que a un modulo creado por un jugador. De hecho, ¿Que les garantiza que el modulo no les borre todo el inventario o incluso quiera acceder a los ficheros de sus PCs? Por eso se deben encontrar soluciones adaptadas a los numerosos problemas de seguridad que lleva la ejecución de un código de terceros en un client oficial.

La segunda razón de esta espera es que no se tenia la posibilidad de poner a disposición de una forma simple la documentación detallada de las API.


Seguridad


Uno de los puntos bloqueantes es la distribución de los modulos. Dejar que los jugadores creen sus propios sitios de referenciamiento y de distribución de modulos incentiva probablemente a personas poco escrupulosas a crear de sitios de Pishing (estafa y robo). Por otro lado, la multiplicación de plataformas de eferenciamiento de modulos no mejora la accesibilidad a estos de parte de los jugadores.

La instalación de modulos, por lo tanto, se realizará directamente desde el juego, via una interfaz dedicada desarrollada por ankama. Los modulos serán alojados y analizados por ankama y no será posible instalar Modulos de otra forma.

En el momento que activen el modulo, DOFUS les explicará que interacciones utiliza el modulo, parecido a cuando instalas una aplicación en Android. Sabrán si el modulo puede suprimir un objeto, enviar un mensaje privado, etc.

Para evitar la creación de un bot con nuestro sistema, hay algunas acciones que no podrán ser automatizadas y necesitarán la intervención de un jugador (Hacer clic sobre un botón, o utilizar un atajo de teclado): es el caso por ejemplo, para lanzar un hechizo o validar un intercambio.

Para un mejor dominio, se ha implementado una petición de confirmación antes de la ejecución de ciertas acciones irreversibles (supresion de un objeto, validación de intercambio, pasar un turno en combate, etc.). La confirmación podrá ser puesta en memoria si el jugador desea marcar una casilla en la ventana de confirmación. Caso particular: siempre se pedirá confirmación antes de suprimir un objeto.

En fin, ultimo punto acerca de la seguridad: El acceso a la red y a los archivos locales. Se ha decidido impedir la interacción con internet y la red. Hubiese sido muy interesante poderse comunicar con un server web para recuperar informaciones o enviar (actualización automática de modulos por ejemplo, datamining, etc...) pero eso provocaría problemas de transmisión de informaciones personales sin acuerdo del jugador. Sin embargo, los modulos tendrán la posibilidad de comuinicarse con las plaicaciones locales (servidor web local con pedido HTTP o via socket) que se hagan para esto. Sera entonces, teoricamente posible, comunicarse con internet pero unicamente por una aplicación instalada conscientemente por el jugador. En el momento de la instalación del modulo, se precisará si el mismo se puede comunicar con las aplicaciones locales.

De la misma forma, no será posible leer un archivo fuera del repertorio de DOFUS.

Documentación y herramientas

Se les entrega a los desarrolladores modulos SDK que comprenden: (TODO EN FRANCÉS)

  • Una documentación listando todas las API disponibles
  • Un Modulo de ejemplo con su código fuente
  • Un tutorial para creer un modulo de la a A a la Z (basandose sobre el modulo de ejemplo)
  • Un medio via FlashDevelop de crear en un clic un proyecto Modulo DOFUS y de pode compilarlo muy simplemente.

¿Peropakienesezto?


La creación de Modulos, no es para los Yops! <--
Crear un modulo necesita nociones de programación en ActionScript 3. Sin embargo, toda persona que tengas bases en JavaScript u otro lenguaje oriantado a objetos debería poder ubicarse rápidamente. No se dará ninguna documentación sobre el lenguaje: hay numerosos sitios comunitarios que proponen tutoriales y documentación sobre este tema.


¿Peropakuando?


Se lanzará un beta-test reservado a un numero muy pequeño de desarrolladores en los próximos días. Sin embargo no anunciamos ningujna fecha de salida de un beta publico o versión final. Se tienen previstos largos meses de beta-test, el tiempo de afinar el sistema, de pulir las fallas y de mejorar la accesibilidad a la documentacion.


¿Como participar?


En los primeros tiempos el beta-test cerrado se ha reservado a los desarrolladores. Pero TU... si puedes leer estas lineas, podrías ser parte de esta especie única llamada "los desarrolladores de ActionScript"

El codigo siguiente indica un mail al que podrán enviar una petición (en ingles o francés) de participación, indicando sus motivaciones y al menos una idea del Modulo que les gustaría hacer. Por favor indiquen también su apodo Ankama (el del foro, o cuando hacen /whois...).var key : String = "Je veux participer";
var data : Array = "40,47,17,65,72,77,26,18,16,28,69,85,17,10,16,85,22,10,19,28,25,19,31,19,92,17,29,31".split(",");
var baKey : ByteArray = new ByteArray;
baKey.writeUTFBytes(key);
var decodedBa : ByteArray = new ByteArray;
for(var i : uint = 0; i < data.length; ++i)
{
baKey.position = (baKey.length - 1) % i;
decodedBa.writeByte(int(data) ^ baKey.readByte());
}

decodedBa.position = 0;
var email : String = decodedBa.readUTFBytes(decodedBa.bytesAvailable);
trace(email);

Note : Si logran encontrar el email del desarrollador, guárdenlo para ustedes. Si lo colocan públicamente el mensaje será moderado (y posiblemente sancionado).