stringtranslate.com

Recreación del motor de juego.

La recreación del motor de juego es un tipo de proceso de remasterización del motor de un videojuego mediante el cual se reescribe 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 , guiones , 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 no se pueda distinguir del original. El resultado de una clonación adecuada del motor suele ser la posibilidad de jugar un juego en sistemas modernos en los que el juego antiguo 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 el juego recreado (como se detalla en esta lista) . de recreaciones de motores de juegos ).

Motivación

Las recreaciones de motores de juegos están diseñadas para permitir el uso de juegos clásicos con versiones de sistemas operativos más nuevas , hardware reciente o incluso sistemas operativos completamente diferentes a los previstos originalmente. Otra motivación es la capacidad de corregir errores del motor , lo que a menudo es difícil o imposible con los motores originales (con excepciones notables, consulte el parche de la comunidad ) una vez que un software deja de ser compatible y el código fuente no está disponible.

Métodos

De arriba hacia abajo

Cuando las recreaciones del motor del juego se realizan con 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 detallado específico del juego original, a menudo mediante ingeniería inversa, depuración y creación de perfiles del original. Un ejemplo es OpenRA basado en especificaciones aportadas por la comunidad mediante reimplementaciones en 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 del motor Total Annihilation, Spring Engine , que resultó en su uso para muchos más juegos. Normalmente, este enfoque da como resultado una aproximación del comportamiento original únicamente y no un comportamiento idéntico "en el sentido del reloj ". En el lado positivo, el código se ejecuta más rápido y el código fuente finalmente resultante está menos vinculado específicamente a un juego único y específico y puede reutilizarse como motor de juego general para otros juegos.

De abajo hacia arriba

A diferencia de las recreaciones de motores de juegos de arriba hacia abajo , las versiones desensambladas/descompiladas de abajo hacia arriba 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 desensamblado , 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 funcionamiento. También en el lado negativo, el código resultante está vinculado muy específicamente a este único juego, a menudo feo (" código pseudoensamblador " [3] [4] ), y difícilmente puede reutilizarse como motor de juego general. Algunos ejemplos son CSBWin u OpenTTD . En la mayoría de los casos, el resultado tampoco se denomina "motor de juego", sino "recreación de juego" o "clon de juego". MAME es un ejemplo de proyecto de emulación de motor de videojuego que también sigue esta filosofía para una representación precisa de los juegos.

Puertos de código fuente

Ocasionalmente, como fue el caso con algunos de los motores/núcleos de juegos en ScummVM , los desarrolladores originales han ayudado a los proyectos proporcionando el código fuente original (a estos se les puede llamar puertos fuente ). Este es el mejor caso, óptimo para la precisión y minimizar el esfuerzo. Un ejemplo es Debajo de un cielo de acero . [5] [6]

Alternativas

La emulación de sistemas o sistemas operativos clásicos 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 fuente 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

Referencias

  1. ^ "OpenRA/OpenRA". GitHub . Consultado el 30 de agosto de 2018 .
  2. ^ Objetivos de desarrollo openra en github.com
  3. ^ 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). ".
  4. ^ Chaos Strikes Back para Windows (y Linux, MacOS X, Pocket PC) en Dungeon Master Encyclopedia "Aproximadamente 120.000 líneas de lenguaje pseudoensamblador. Es una locura. Pero funciona".
  5. ^ "Últimos desarrollos". ScummVM.org . 2 de agosto de 2012 . Consultado el 14 de julio de 2013 . ¡Soporte para Beneath a Steel Sky, posible gracias a que Revolution Software nos proporcionó el código fuente ensamblador original!
  6. ^ Código fuente "Código fuente de Beneath a Steel Sky en lenguaje ensamblador (415,225 bytes) xxxx" (2005)
  7. ^ 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 .
  8. ^ nota (4 de marzo de 2014). "Barco de estrellas". repositorio.openpandora.org . Consultado el 26 de marzo de 2014 .
  9. ^ nota (4 de marzo de 2014). "Barco de estrellas". openpandora.org. Archivado desde el original el 10 de diciembre de 2015 . Consultado el 29 de marzo de 2014 . La regla "sin fuente, sin puerto" no es del todo cierta; puede obtener algo similar (pero no igual) a un puerto mediante la recompilación estática. M-HT hizo cosas similares varias veces para algunos juegos de DOS. El juego también se convirtió para Android con un enfoque algo similar.
  10. ^ Burnes, Andrew (25 de febrero de 2004). "El código fuente de Jagged Alliance 2 se incluirá con Wildfire". ign.com. Archivado desde el original el 8 de enero de 2013 . Consultado el 23 de diciembre de 2012 .
  11. ^ Grande, Andy (8 de octubre de 2003). "Se publica el código fuente de Homeworld". Juegos internos de Mac . Archivado desde el original el 12 de octubre de 2013 . Consultado el 10 de enero de 2011 .
  12. ^ "Copia archivada". Archivado desde el original el 4 de agosto de 2012 . Consultado el 30 de marzo de 2014 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  13. ^ 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 . [...] puerto liberado de HomeworldSDL. [...] permite que Pandora experimente el excelente trabajo realizado por los chicos de HomeworldSDL.