[HoMM2] Modding & Remake

Iniciado por Balder, Noviembre 09, 2008, 01:25:27 AM

Balder

-Lunes 05 de Enero del 2009-

AVANCES EN EL PROYECTO: ¡Disponible la pre-alpha de la herramienta para su descarga!

He estado metiéndole caña al proyecto estas navidades y os traigo la pre-alpha de la herramienta de modding. Esta nos permitirá hacer el remake en el futuro. A vosotros os permitirá extraer los recursos del juego, convertirlos a formatos estándar editables (.wav, .tga), volver a convertirlos a los formatos del heroes, y reinsertarlos ya modificados en el archivo AGG (¡entre otras cosas que se os ocurran!).


HISTORIAL DE CAMBIOS:

0.1.0.0
(+)Iniciada la aplicación: añadida la interfaz gráfica, principales menús, principales diálogos y cuestiones de diseño en general.

0.2.0.0
(+)Implementación del lector y el "muestra-listas" de archivos .AGG del heroes 2. Ahora se pueden visualizar sus contenidos en un cuadro de selección.
(+)Implementado el comando "Cerrar fichero" para limpiar el cuadro de selección del archivo cargado.
(*)Solución de múltiples bugs de lectura de carateres, etc.

0.3.0.0
(+)Implementación del comando "Exportar", que nos da una carpeta a elegir donde meter los archivos que seleccionamos en el cuadro de selección.
(*)Arregladas ciertas excepciones, por ejemplo el infame error al pulsar exportar sin seleccionar nada.
(*)Solucionados problemas de activación y desactivación de controles que no hacían falta en ciertos contextos, como por ejemplo el del comando cerrar archivo cuando no hay nada abierto.

0.3.1.0
(*)Retrabajado el código de la barra de progreso (+preciso, -consumo de recursos).
(*)Solucionado problema por el que no se actualizaba la barra de progreso al exportar.
(+)Añadido el último comando de la interfaz gráfica ("Convertir")

0.3.2.0
(+)Añadido un enlace web clickable que abre la página de la torre de marfil y mi página personal.


POR HACER:
0.4.0.0
(+)Implementar Filtro de extensiones, para mostrar en el cuadro de selección sólo los elementos de determinada extensión, como por ejemplo .icn
(+)Implementar Ordenación, para mostrar en el cuadro de selección los elementos en orden alfabético.
(*)Arreglar el bug al abrir un archivo que no es de tipo AGG.

0.5.0.0 (Primera ALPHA)
(+)Implementar la importación de archivos al fichero AGG y el guardado de tales modificaciones.

0.6.0.0
(+)Implementar la creación de aggs personalizados.

0.7.0.0
(+)Implementar conversores integrados

0.8.0.0
(+)Implementar retro-conversores integrados

0.8.0.0 (Primera BETA)
(+)Añadir cualquier función o arreglo que considere o considereis preciso.
(*)Arreglar todo error que se cace y testear intensivamente.

0.9.0.0 (Segunda BETA)
(*)Todo arreglo de fallos.

1.0.0.0 (Estable/RC)
(*)Todo arreglo de fallos.


BUGS CONOCIDOS:

Al abrir un archivo que no es del tipo .AGG el programa muestra una excepción y se cerrará.


REQUISITOS:

Windows Vista:
Debería arrancar sin instalar nada. En caso contrario, seguir el paso indicado para usuarios de windows anteriores en función de si tienes la versión de 32 o 64 bits.

Windows anterior a Vista (32 BITS, SI NO SABES LO QUE BUSCAS, VA A SER ESTO):
Requiere .NET Framework 2.0 o posterior. Descargar el runtime aquí:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=en

Windows anterior a Vista (64 BITS):
Requiere .NET Framework 2.0 o posterior. Descargar el runtime aquí:
http://www.microsoft.com/downloads/details.aspx?FamilyID=b44a0000-acf8-4fa1-affb-40e78d788b00&DisplayLang=en

Linux/Macintosh:
Requiere la librería MONO. Descarga a continuación:
http://www.go-mono.com/mono-downloads/download.html

Hardware: Muy bajos, debería correr en cualquier ordenador que corra un sistema operativo de los mencionados (He intentado optimizar el código).


DESCARGA:
HoMM2_ResEditor.zip


¡REPORTAD CUALQUIER BUG/ERROR QUE ENCONTREIS, POR FAVOR!

INSTRUCCIONES:

Descargar el .zip de arriba, descomprimir con alguna utilidad tipo winrar o winzip y ejecutar el .exe que os sale en cualquier lugar.


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 -Domingo 09 de Noviembre del 2008-
Hola a todos! No hace mucho Lepastur me informó de un tema en el que se trataba la traducción y el modding del Heroes2, como llevo un tiempo trabajando en ello (desde antes de la partida de Namerutan) pensé que sería  buena idea hacer algunos anuncios y explayarse en la explicacion del asunto.

Pues bien, a día de hoy existen varias versiones del Heroes2, que a nosotros nos incumban: el Heroes 2 original en inglés para msdos, el Heroes 2 original en castellano para msdos y el Price of Loyalty que es un paquete de expansión que incluye el original, en inglés.

Respecto a las versiones de msdos, decir que no funcionan en equipos modernos, es más, el sonido en concreto es problemático en muchos sistemas. La española, además, goza de una traducción bastante deficiente, y ni siquiera incluye tildes en las palabras.

La idea original que surgió fue la traducción del Price of Loyalty al castellano, pero al profundizar en el asunto se descubrió (gracias a un .exe desprotegido del Price) que todo el texto estaba en el ejecutable. Para mayor desgracia, su modificación provocaba en ocasiones que el juego tuviera errores fatales, si se sobrepasaba el número de caracteres de la palabra inglesa.

Desde entonces se trabajó en el modding que abriría las puertas a una futura versión open source del Heroes 2. A pesar de que Namerutan tenía textos descriptivos de los formatos de Heroes1, Heroes2 supuso un gran trabajo de ingeniería inversa a la hora de describir sus formatos internos. Poco a poco se lograron algunos avances. Programé un extractor de recursos para los ficheros .AGG (ya existçia algun tool arcaico para este cometido) y además conseguí hacer una herramienta para transformar archivos .82m a .wav estándar. Recientemente extraje todos los valores de la paleta y los descodificamos, y estamos trabajando en una herramienta para convertir imágenes .icn a .tga estándar. Incluso logré convertir la música .xmi a midi.

Como se ha comentado en el otro tema, existe un motor opensource del Heroes2 en desarrollo, del que llevo siguiendo su evolución desde hace tiempo (FHEROES). Está programado en C++ y librería SDL, lo que lo hace multiplataforma, gran elección. Sin embargo, la cantidad de errores en el código y herramientas es ingente, aunque se han ido corrigiendo con el tiempo muchos y con la habilidad de Afletdinov estoy seguro de que antes o después tendrán una versión plenamente funcional.

Por mi parte, cuando termine las herramientas para el modding y les haga una interfaz gráfica, seguramente me ponga también con el tema del remaking. En principio sin usar para nada código de afletdinov, que, sin ánimo de ofender, ni a mi ni a Nam nos gustó nada.


¿Por qué hacer modding o remaking?

Porque, sin lugar a dudas, Heroes2 es mi juego favorito de la saga y a día de hoy, casi podría decir de mi vida. ¡Pero eso es sólo una razón personal! Veamos las generales:

-Tener el juego en perfecto castellano.
-Que el juego se ejecute en todas las plataformas imaginables (windows de 64 bits, linux, mac...)
-Arreglar errores gráficos / adaptar el juego al hardware actual.
Y... una vez que se tenga el juego "tal cual" pero con esos arreglos externos o de presentación, se tendría también un código para modificar y añadir características:
-Balancing
-Nuevas características de otros Heroes.
-Personalización total del juego.
-Creación de una versión para pda's, gpx, psp y otros dispositivos portátiles.
-Lo que se te ocurra.


Concluyendo ya este tocho, el proyecto es muy ambicioso, el proyecto no es una chorrada de la que se tendrán resultados espectaculares en poco tiempo, pero el proyecto sigue adelante pasito a pasito. Os mantendré informados, es posible que pronto haga pública alguna de las herramientas de modding.

Interesados en aportar dotes de programación, ideas o participar en la futura traducción, que lo indiquen en este mismo post, que es lo más cómodo. Responderé aquí también cualquier duda planteada en cuanto tenga tiempo.

Eso es todo a día de hoy, greetings![/url]
[:Balder:]

Lepastur

Perfecto, si surgen voluntarios como para formar un equipo de trabajo os habilitaremos un foro privado para ello.

¡Suerte con todo esto!
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Kartabon

Yo ya estaba informado de esto :D Ayudaré en lo que pueda con mis escasos conocimientos XDDDDD
La voluntad de un hombre puede más que la fuerza de 100.

Krator

Hola.

Creo que algo no me ha quedado claro. Estás trabajando con el equipo de fheroes 2 del que hemos estado hablando hace poco, o estás en otro desarrollo. Personal o con equipo?

Con todo lo que dices haber desarrollado ya, entiendo que te manejas muy bien en programación. ¿En que lenguaje lo has desarrollado?
¿Qué tipo de personas necesitas o buscas?
Pienso que si necesitas colaboración deberias dar más detalles sobre el perfil que buscas, tipos de tareas, como lleváis el proyecto, gestión, etc...

A mi solo me falta, recordar C++ (o aprender, pq solo lo vi en el módulo de programación y la profe era de fisicas y sabia menos que nosotros...), y tiempo, jeje.

Un saludo.

PD: No es "ingente", es INDIGENTE!!!  :tongue:
Doble cruzado, cuadruple placer.

Balder

-ACLARACIÓN FHEROES FRENTE A NUESTRO PROYECTO-
Como expliqué en el post, estoy codificando mis propias herramientas y aplicaciones, sin usar para nada el código de FHEROES. Ese proyecto lo lleva un ruso que se llama (o se hace llamar) Afletdinov, que parece que tiene idea del tema y que actualiza algo de código casi todas las semanas. Pero repito: su código a día de hoy tiene más errores que la beta del windows vista (sus herramientas de conversión ni funcionan).

-DESARROLLO-
Respecto a lo que TENGO desarrollado, hay un pequeño problema de lenguajes, algunas herramientas están en C++ y otras en C#. He decicido que para las herramientas de modding C# irá mejor, no generará aplicaciones tan "rápidas" pero para esto es indiferente y, teniendo en cuenta que no se necesita renderizado 2D ni 3D para hacer una interfaz gráfica de usuario... conseguiremos con C# hacer en un día lo que se hace en 3 o 4 con C++. Y eso sí que está comprobado.
Resumen:
-.82m to .WAV => Finalizado y testado para C# 3.5 SP1
-GUI para abrir .AGGS y usar las herramientas programadas => Finalizado y testado para C# 2.0, dejó de funcionar con C# 3.5 SP1, revisión pendiente.
-Descifrador de paleta KB.PAL => Finalizado y testado para C# 3.5 SP1
-Descifrador de grupos de imágenes .icn => Escritas unas 100 líneas, está implementada toda la mecánica y sólo falta indicar las sentencias a ejecutar para cada "codigo" que vamos encontrando en la imagen (el bucle y las funciones están casi ultimadas). EN C++.

El juego ya es otro cantar. Para hacerlo realmente portable y de rápida ejecución no queda otro remedio que pelear con C++ y librería gráfica SDL, que donde no tira eso, no tira NADA.

-PERSONAL A INCORPORARSE-
Y por último el personal... este tema si que lo dejé bastante "abstracto" en el post inicial, pues todavía no tengo muy claro como organizar esto (ultraindividualista xD) Aun no teniendo experiencia en proyectos colectivos, está claro que hay que repartir entre los programadores distintas tareas, cada uno diseñará determinada clase, por poner un ejemplo: Se te asigna la creación de una clase "monstruos" que contenga los atributos de los monstruos de cada castillo y que incluya determinados métodos para trabajar con ellos, por ejemplo una función que nos genere un monstruo aleatorio de nivel 1.
Terminada la clase esta será revisada, y se podrá asignar otro trabajo a esa persona, por supuesto que si hay algo en especial que le apetezca programar pos se intentará ponerle al mando de eso.
Conocimientos y Condiciones:
-Tener una idea de programación en C/C++/C# o incluso java o similares, pues con un cursillo acelerado por msn podemos ponerte al día.
O bien: Tener cierta habilidad en el diseño gráfico/retoque/dibujo.
O bien: Dominar la lengua castellana y otra extranjera, cuando llegue el momento de buscar traductores.
O bien: Estar dispuesto a escribir documentación, informar en los foros, dar a conocer el proyecto, etc. Resumiendo, actuar como "relaciones públicas".
O bien: Ganas de testear aplicaciones, hacer o probar mapas, aportar consejos sobre posibles mejoras o si eres todo un experto, darnos tu sabia visión de como mejorar la IA o corregir bugs/exploits que sólo tú conoces.
-Ser consciente que este trabajo será publicado bajo licencia creative commons con las condiciones: Reconocer a todos sus autores, No comercializar, no modificar sin permiso expreso de los autores, Distribuir gratuítamente al libre albedrío el trabajo "tal cual".
-Ser consciente de que participar no es contraer ningún tipo de compromiso, si se te asigna un trabajo y no puedes hacerlo tan sólo dilo, ya lo haremos nosotros. No problemo, ya volverás en otro momento si te lo permite tu agenda.
-Ser digno de confianza. No andar creando bulos, alardeando del proyecto con avances irreales o fantasiosos, diseminando información o código a terceros.
-Y lo más importante: ¡que te guste el juego hasta tal punto de estar dispuesto a currar por revivirle!

P.D: Iba editar el post pero con la sarta de cosas que me faltaban por tratar casi que lo dejo aquí de "anexo".


:cheers:
[:Balder:]

Krator

Hola.

Ahora creo que ha quedado mucho más claro todo el tema, y ya solo te queda esperar que alguien se te una a tan gran proyecto.
Yo mismo lo intentaría, pero no tengo capacidad para unirme al proyecto por mis ocupaciones, sin embargo, siempre puedo daros alguna idea, informar sobre algo y demás.
Aunque la Torre puede ofrecerte cuanto necesites, solo pidenoslo  :thumbsup:
Doble cruzado, cuadruple placer.

jamematennnnn

me podríais decir la página web del fheroes? esque no la encuentro por el google

Balder

No tiene web, pero está listado como proyecto en sourceforge, así que te dejo el link desde el que puedes acceder al código, a unos mini foros y alguna chorrada más:

http://sourceforge.net/projects/fheroes2/

Por cierto, si es con afán de desarrollo, no te fíes de ningún codigo que no compilaras y  testearas antes. (hay mucho error como ya especifiqué)

EDITO:

-PARA PREGUNTAS AJENAS A NUESTRO PROYECTO  ABRIR OTRO TEMA-
[:Balder:]

Lepastur

:shock: ¡Parece que el mensaje de Cabecera se ha actualizado con nuevos cambios! :worthy:
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Krator

Alaaaaa, estas cosas hay que avisarlas hombre, que las ediciones de los temas no "se ven" así como así, jejeje.
Doble cruzado, cuadruple placer.

Balder

Con tanto curro de documentación (que no es que sea mi hobbie escribir un tocho después de tar picando código durante horas...) se me olvidó postear para que vierais que hay más chicha.

Pues eso, cada momento que tenga picaré código para que tengais esto completo y niquelado cuanto antes. Si no tuviera que estudiar lo acababa en dos días como quien dice xD

Disfrutadlo! Y no olvideis reportar problemas y sugerencias en este tema!
[:Balder:]

Balder

Os dejo en el mismo enlace un archivo de prueba, HoMM2_ResEditor_TestFile.zip, que pueden usar para abrir con el programa aquellos que no tengan a  mano el Heroes2 (Se trata del fichero AGG que contiene los recursos de la expansión "The Price of Loyalty").

Un saludo, y que os lleve todo el día desempaquetar los regalos xD
[:Balder:]

Lepastur

Gracias a ti, Baldazar :biggrin:  :cheers:
http://www.rae.es / :worthy: para Krator ¡por ser un campeón! / www.TorredeMarfil.es / Presidente de la plataforma de los Archimagos y Liches flanqueadores de títulos de web.

Balder

Actualizo para informar de que estos días le he vuelto a meter algo de caña al proyecto: tengo ya una versión primitiva del motor gráfico del juego.

De momento no cuelgo ejecutables, pues en esta versión sólo probé el motor para emular el viejo juego del tetris, y requiere bastante más trabajo para poder mostrar gráficos del Heroes2.

De cualquier forma que sepais que estoy en ello. Espero poner pronto a vuestra disposición material más suculuento.


P.D: Voy abandonar un poco lo del modding de momento, pues hice un conversor para consola que me pasa .icn a .tga y así puedo cargar estos .tgas directamente con el motor del juego, sin necesitar el código de las herramientas por el momento. Creo que a los foreros les impresionará más ver gráficos y sonido que lo que es la capacidad de modding. (No os preocupeis si estais más interesados en el modding que en el remake, lo retomaré en cuanto termine estos trabajines actuales).


Hasta pronto :thumbsup:
[:Balder:]

Balder

Info de última hora: http://www.josriweb.co.cc/descargas/apps/fheroes2.zip

Mirror 1: http://www.fileden.com/files/2006/12/25/553903/fheroes2.zip
Mirror 2: http://rapidshare.com/files/192499339/fheroes2.zip

(Descomprimís el zip en cualquier lugar y, en la carpeta que os sale, vereis que hay una subcarpeta DATA, ahí debeis meter el HEROES2.AGG de vuestro juego original. Tras hacer esto, volveis a la carpeta principal y ejecutais el ejecutable. Sólo he incluido un mapa, pero podeis copiar más si quereis, deberían funcionar)


¿De qué se trata?

Esta es una compilación llevada a cabo por mi de el proyecto FreeHeroes, nuestra competencia en el remake por así decirlo jejeje. Ya sabeis que la competencia es productiva.

¡Disfrutadlo! Y no olvideis comentar que os parece :tongue:
[:Balder:]