La recreación del motor de juego es un tipo de proceso de remasterización del motor de videojuego mediante el cual se escribe un nuevo motor de juego desde cero como un clon del original con la capacidad de cargar los archivos de datos del juego original, como música , texturas , scripts , sombreadores , niveles., y más. El nuevo motor debería leer estos archivos de datos y, en teoría, cargarlos y comprenderlos de una manera que sea indistinguible del original. El resultado de un clon de motor adecuado es a menudo la capacidad de jugar un juego en sistemas modernos en los que el juego anterior ya no podía ejecutarse. También abre la posibilidad de colaboración comunitaria, ya que muchos proyectos de remake de motores tienden a ser de código abierto. La recreación del motor del juego puede ser beneficiosa para los editores de juegos porque el uso legal de una recreación aún requiere los archivos de datos originales, ya que un jugador aún debe comprar el juego original para poder jugar legalmente al juego recreado (como se detalla en esta lista de recreaciones de motores de juegos ).
Motivación
Las recreaciones del motor de juegos están diseñadas para permitir el uso de juegos clásicos con versiones más nuevas del sistema operativo , hardware reciente o incluso sistemas operativos completamente diferentes a los que se pretendía originalmente. Otra motivación es la capacidad de corregir errores del motor, que a menudo es difícil o imposible con los motores originales (con notables excepciones, ver parche de la comunidad ) una vez que un software se ha convertido en abandonware sin soporte , con el código fuente no disponible.
Métodos
De arriba hacia abajo
Cuando las recreaciones del motor del juego se realizan en una metodología de desarrollo de arriba hacia abajo , en el primer paso se programa la funcionalidad general del juego y se define la estructura. Luego, en pasos posteriores, el motor resultante se adapta al comportamiento de detalle específico del juego original, a menudo mediante ingeniería inversa, depurando y perfilando el original. Un ejemplo es OpenRA basado en especificaciones aportadas por la comunidad mediante reimplementaciones de sala limpia [1] sin desmontar el ejecutable original, lo que da como resultado motores de juego cuyo comportamiento difiere del original. [2] Otro ejemplo es el remake Spring Engine del motor Total Annihilation , que resultó en ser utilizado para muchos más juegos. Típicamente, este enfoque da como resultado una aproximación del comportamiento original solamente y no un comportamiento idéntico "en el sentido de las agujas del reloj ". En el lado positivo, el código de ejecución existe más rápido, y el código fuente resultante finalmente está menos vinculado específicamente a un solo juego específico y se puede reutilizar como un motor de juego general para otros juegos.
De abajo hacia arriba
A diferencia de las recreaciones del motor de juego de arriba hacia abajo , las versiones de abajo hacia arriba desmontadas / descompiladas para un juego específico a menudo pueden replicar exactamente el comportamiento del original. En estos casos, el núcleo del juego se recrea de abajo hacia arriba con ingeniería inversa del ejecutable binario original desmontado , instrucción de CPU para instrucción. En la fase de desarrollo, esto tiene la desventaja de que durante mucho tiempo no existe ningún prototipo en ejecución. También en el lado negativo, el código resultante está muy específicamente vinculado a este único juego, a menudo feo (" código pseudoensamblador " [3] [4] ), y difícilmente se puede reutilizar como motor de juego general. Algunos ejemplos son CSBWin u OpenTTD . La mayoría de las veces, el resultado tampoco se denomina "motor de juego", sino "recreación del juego" o "clon del juego". MAME es un ejemplo de un proyecto de emulación de motor de videojuegos que también sigue esta filosofía para una representación precisa de los juegos.
Puertos de código fuente
De vez en cuando, como fue el caso con algunos de los motores / núcleos de juegos en ScummVM , los desarrolladores originales han ayudado a los proyectos al proporcionar el código fuente original (esos pueden luego llamarse puertos de origen ). Este es el mejor de los casos, óptimo para la precisión y minimizar el esfuerzo. Un ejemplo es Beneath a Steel Sky . [5] [6]
Alternativas
La emulación de sistemas clásicos o sistemas operativos es una alternativa a la recreación de un motor; por ejemplo, DOSBox es un emulador notable del entorno PC / MS-DOS . La recompilación estática es otro enfoque basado en el ejecutable binario original , que potencialmente conduce a un mejor rendimiento que la emulación; un ejemplo es la versión de arquitectura ARM 2014 de StarCraft para Pandora . [7] [8] [9] Otra alternativa son los puertos de origen para los raros casos en que el código fuente está disponible; ejemplos son Jagged Alliance 2 [10] o Homeworld [11] [12] [13] (más ejemplos en la Lista de videojuegos comerciales con código fuente disponible ).
Ver también
- Lista de recreaciones del motor del juego
Referencias
- ^ "OpenRA / OpenRA" . GitHub . Consultado el 30 de agosto de 2018 .
- ^ Objetivos de desarrollo openra en github.com
- ^ Lanzamiento: Starcraft en pyra-handheld.com "Como puede ver, no se ve muy diferente del desmontaje x86, la única diferencia es que puede compilarlo para otros arcos de 32 bits (no hay forma de que funcione en 64 bits. . "
- ^ Chaos Strikes Back para Windows (y Linux, MacOS X, Pocket PC) en Dungeon Master Encyclopedia "Aproximadamente 120.000 líneas de lenguaje pseudo-ensamblador. Es una locura. Pero funciona".
- ^ "Últimas novedades" . ScummVM.org . 2 de agosto de 2012 . Consultado el 14 de julio de 2013 .
¡Soporte para Beneath a Steel Sky, posible gracias a Revolution Software que nos proporcionó el código fuente de ensamblaje original!
- ^ Código fuente "Código fuente de Beneath a Steel Sky en lenguaje ensamblador (415,225 bytes) xxxx" (2005)
- ^ Steinlechner, Peter (10 de marzo de 2014). "Starcraft für ARM-Handheld kompiliert" (en alemán). golem.de . Consultado el 25 de marzo de 2014 .
- ^ notaz (4 de marzo de 2014). "StarCraft" . repo.openpandora.org . Consultado el 26 de marzo de 2014 .
- ^ notaz (4 de marzo de 2014). "Starcraft" . openpandora.org . Consultado el 29 de marzo de 2014 .
La regla "sin fuente, sin puerto" no es completamente cierta, puede obtener algo similar (pero no lo mismo) que un puerto a través de la recompilación estática. M-HT hizo varias veces cosas similares para algunos juegos de DOS. El juego también se convirtió para Android con un enfoque algo similar.
- ^ Burnes, Andrew (25 de febrero de 2004). "Código fuente de Jagged Alliance 2 para ser incluido con Wildfire" . ign.com . Consultado el 23 de diciembre de 2012 .
- ^ Largent, Andy (8 de octubre de 2003). "Lanzamiento del código fuente de Homeworld" . Dentro de los juegos de Mac . Archivado desde el original el 12 de octubre de 2013 . Consultado el 10 de enero de 2011 .
- ^ "Copia archivada" . Archivado desde el original el 4 de agosto de 2012 . Consultado el 30 de marzo de 2014 .CS1 maint: copia archivada como título ( enlace )
- ^ personal de pandorapress (23 de junio de 2011). "Juego de la semana n. ° 3 - Homeworld SDL" . pandorapress.net . Consultado el 24 de abril de 2013 .
[...] liberado puerto de HomeworldSDL. [...] permite que Pandora experimente el excelente trabajo realizado por los chicos de HomeworldSDL.