Cambiear Engine

Estado
Cerrado para nuevas respuestas.

Shura

Dragón Ancestral Lvl 2
no es algo imposible de hacer. Barrin lo hizo con IAO (de hecho usó una versión un poco más nueva del ORE 1.0 que la 1.0a1).

Si AO hubiese respetado la modularización del ORE hasta su versión 0.4.3 el reemplazo hubiese sido muy fácil. Como no ha sido así, el cambio precisa:

- Quitar de Main el bucle principal de código del engine (que originalmente estaba en ShowNextFrame() del TileEngine.bas) y por cuestiones de "eficiencia" lo hicieron inline (no voy a discutir acá el que tan estúpido fue este cambio).
- Eliminar toda referencia al módulo de DX, que sólo inicializa y deinicializa objetos de DX7.
- Eliminar toda la basura relacionada al audio (en el cliente de Alkon coexisten 3 formas de reproducir midis y 2 de reproducir wavs, sin contar los módulos que vienen con el cliente pero no están en el proyecto que traen otras alternativas).

Además de los cambios que de por sí deberías hacer que son:

a - quitar el TileEngine.bas y agregar el clsTileEngineX.cls
b - rehacer el inventario gráfico para usar el método Grh_Render_To_hDC del ORE 1.0
c - rehacer los manejadores de superficies dinámicos y estáticos para cargar texturas.
d - editar el engine del ORE 1.0 para que utilice el manager de texturas y no su propio sistema estático.
e - editar la clase de diálogos para que utilice GUI_Text_Render() del engine para dibujar texto en pantalla o bien utilizar el sistema de chats-over-head que hice yo para ORE 1.0 y que es aprte del engine.
f - reescribir el bucle principal del cliente.
g - poner el engine de sonido del ORE 1.0 (para evitar tener 2 versiones de DX coexistiendo).
h - quitar la referencia a DX7 y agregar la referencia a DX8.
i - reemplazar los métodos generales (FieldRead, WriteVar, GetVar, etc.) por sus nuevas versiones (algunas muy similares / iguales, otras totalmente reescritas).
j - cambiar el shape que hace de "borde" de la render area por una picture box.

El trabajo es largo y no va a ser fácil si no sabés manejarte con VB 6.0 en forma fluida, pero si aún así querés intentarlo estas cosas te van a ayudar.

En cuanto al protocolo, te recomiendo usar el que hice yo para Alkon (está en el CVS) que es el que usa IAO y permite reducir el uso de ancho de banda a la mitad.

Del servidor, poco es lo del ORE 1.0 que te pueda servir. Si te interesa algún módulo en particular te debería resultar relativamente simple portarlo al server de AO pues el ORE 1.0 está bastante bien modularizado, y es sólo cuestión de llevar una clase al otro proyecto y poner las llamadas apropiadas. Igualmente, el servidor del AO tiene muchos cuellos de botella....

Agradesimientos a Maraxus por la informacion dada
 

^[GS]^

GS-Zone Admin
Administrador
shura revolutions :p
el ORE ya tiene 5 años de vida :p cuanto vas a tardar en hacer andar estos cambios en el engine? :p
 

Shura

Dragón Ancestral Lvl 2
no se todo depende del tiempo q tenga.
no me ofendo si alguno tiene intereses en ayudar :roll:
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
Shura dijo:
i - reemplazar los métodos generales (FieldRead, WriteVar, GetVar, etc.) por sus nuevas versiones (algunas muy similares / iguales, otras totalmente reescritas).
Te estas equivocando de cierto modo. Son las dos funciones exactamente iguales solo cambia el nombre (Pensa, los dos usan la kernel para leer).
Por otra parte sabemos que el MODO_API y MODO_NORMAL es ineficiente.
Che, yo no me jugaria a hacer tanto hasta que salga la 1.1.4 :)
 
Estado
Cerrado para nuevas respuestas.
Arriba