Como han demostrado los a帽os, pr谩cticamente no tenemos oportunidad de ver el c贸digo fuente original, o al menos un remake, de la primera parte de Diablo (el evento
The Darkening of Tristram en
Diablo III en honor del 20 aniversario del lanzamiento de la primera parte es, por supuesto, bueno, pero a煤n un poco no lo que esperaban los fan谩ticos). Y deje que la 煤ltima actualizaci贸n del juego salga en 2001, y la propia Blizzard ha dejado de apoyarla y venderla: el recuerdo todav铆a est谩 vivo en nuestros corazones. Lo que una vez m谩s fue confirmado por cierto GalaXyHaXz, que decidi贸 realizar ingenier铆a inversa del juego.
El c贸digo fuente est谩 disponible
en Github . El proyecto Devilution, que su autor GalaXyHaXz denomin贸 "Diablo Devolution", tom贸 m谩s de 1,200 horas - 4 meses de trabajo. Adem谩s, no te pierdas los voluminosos comentarios del autor que arrojan luz sobre el c贸digo fuente del juego y que se encuentran en
otro repositorio . El c贸digo en s铆 no parece importar hasta ahora, pero continuar谩 en orden a medida que avance el trabajo en otros m贸dulos del juego.
La idea de la ingenier铆a inversa de un proyecto tan grande al principio parec铆a una tarea fant谩stica, si no fuera por un accidente afortunado, o, en otras palabras, un peque帽o descuido que sucedi贸 hace 20 a帽os.
En 1998, Blizzard entreg贸 el c贸digo fuente de Diablo a dos estudios: Synergestic Software, que estaba desarrollando el complemento Hellfire, y Climax Studios, que trabaj贸 en el puerto de Playstation. Esta
no es
la primera vez que el departamento de control de calidad de Sony en Jap贸n
est谩 "contento" con sus filtraciones , tambi茅n se distinguieron esta vez: en la versi贸n japonesa del puerto, se olvid贸 accidentalmente
un archivo simb贸lico , que inclu铆a funciones, datos, tipos y mucho m谩s. Esto nos permiti贸 restaurar las funciones originales, las variables globales, las estructuras de datos y m谩s. La versi贸n beta del puerto para Playstation tambi茅n se filtr贸, y conten铆a otro archivo similar, lo que simplific贸 enormemente la tarea.
Para colmo, la versi贸n de depuraci贸n de la versi贸n para PC del juego siempre se encuentra directamente en los discos del juego, ocultos en el archivo DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE. La compilaci贸n contiene herramientas de depuraci贸n que no est谩n disponibles en la versi贸n de lanzamiento, as铆 como una gran cantidad de aserciones de l铆nea, gracias a las cuales fue posible recrear nombres de archivos, funciones, incluso los n煤meros de l铆nea del c贸digo est谩n lo m谩s cerca posible del original.
El desarrollo de Diablo comenz贸 en el momento en que sali贸 Windows 95. En consecuencia, el juego fue optimizado para ello. Para compilar el juego, se utiliz贸 Microsoft Visual C ++ 4.20, que
en parches posteriores se actualiz贸 a la versi贸n 5.10 . Para reproducir con precisi贸n el c贸digo original, el proyecto mantuvo la compatibilidad con estas versiones de compiladores, sin embargo, los Makefiles est谩n disponibles para los compiladores modernos. Los binarios ejecutables resultantes de la compilaci贸n, seg煤n los informes, se ejecutan en Windows 7, Linux-WINE y Windows 10.
Es un hecho bien conocido que el juego estaba cambiando seriamente durante todo el proyecto, y muchas ideas se eliminaron justo antes del lanzamiento, y el multijugador se agreg贸 r谩pidamente.
Muchos creadores de modificaciones para el juego (por ejemplo, los autores del mod The Hell)
ya han ido bastante lejos en su investigaci贸n sobre la
investigaci贸n de c贸digos, incluso a trav茅s de la implementaci贸n de una memoria de proceso; sin embargo, no publicaron los resultados de su trabajo, y muchas de estas modificaciones fueron abandonadas a la mitad. Si se puede llevar a Devilution a un cierto grado de preparaci贸n, se puede evitar un problema similar, adem谩s de aprender algo nuevo sobre el juego en s铆.
Por el momento, ingenier铆a inversa Diablo.exe. Todav铆a hay algunas bibliotecas con las que lidiar: Battle.snp (protocolo Battle.Net desactualizado), DiabloUI.dll (c贸digo del men煤 principal para el juego, completamente basado en Windows y mal escrito), Standard.snp (c贸digo multijugador local, desactualizado, similar al utilizado) en Starcraft) y un par de m贸dulos m谩s.
Te贸ricamente, en el futuro cercano (despu茅s de revertir
DiabloUI.dll ), el juego puede convertirse en multiplataforma, a menos que, por supuesto, Blizzard se apresure a cerrar la tienda antes de que el autor pueda atraer suficientes entusiastas para resolver este problema.
PD: En cuanto a Diablo II, todo no est谩 tan claro: el juego contin煤a siendo vendido y respaldado por Blizzard, su c贸digo base es aproximadamente 8 veces m谩s grande que el original, y hay rumores de que el remaster oficial est谩 a la vuelta de la esquina, por lo que es completamente inverso La ingenier铆a en el futuro previsible no tiene que esperar.