stringtranslate.com

Recreación del motor del juego

La recreación de un motor de juego es un tipo de proceso de remasterización de un motor de 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 , 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 suele ser 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 de motores de 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 juego ).

Motivación

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

Métodos

De arriba hacia abajo

Cuando se realizan recreaciones de motores de juegos con una metodología de desarrollo descendente , 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, 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 desensamblar el ejecutable original, lo que da como resultado motores de juegos cuyo comportamiento difiere del original. [2] Otro ejemplo es el remake del motor Total Annihilation Spring Engine , que resultó ser utilizado para muchos más juegos. Por lo general, este enfoque da como resultado una aproximación del comportamiento original solamente y no un comportamiento idéntico " en términos de ciclos de reloj ". En el lado positivo, el código que se ejecuta existe más rápido y el código fuente resultante final está menos vinculado específicamente a un juego único específico y se puede reutilizar como un motor de juego general para otros juegos.

De abajo hacia arriba

A diferencia de las recreaciones de motores de juego 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 desensamblado original , instrucción de CPU por instrucción. En la fase de desarrollo, esto tiene la desventaja de que durante mucho tiempo no existe un prototipo en funcionamiento. 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 llama "motor de juego", sino "recreación de juego" o "clon de juego". MAME es un ejemplo de un proyecto de emulación de motor de videojuegos que también sigue esta filosofía para la representación precisa de los juegos.

Puertos de código fuente

Ocasionalmente, como fue el caso con algunos de los motores/núcleos de juego en ScummVM , los desarrolladores originales ayudaron a los proyectos al proporcionar el código fuente original (a estos se los puede llamar puertos fuente ). Este es el mejor caso, óptimo para la precisión y minimizando 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 una recreación del motor; por ejemplo, DOSBox es un notable emulador 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 de 2014 de StarCraft para Pandora . [7] [8] [9] Otra alternativa son los source ports para los raros casos en los 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 ).

Véase 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 puedes ver, no se ve muy diferente del desensamblado x86, la única diferencia es que puedes compilarlo para otras arquitecturas 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 "Unas 120.000 líneas de lenguaje pseudoensamblador. Una locura, pero funciona".
  5. ^ "Últimos avances". 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 original en ensamblador!
  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. ^ notaz (4 de marzo de 2014). "StarCraft". repo.openpandora.org . Consultado el 26 de marzo de 2014 .
  9. ^ notaz (4 de marzo de 2014). "Starcraft". openpandora.org. Archivado desde el original el 10 de diciembre de 2015. Consultado el 29 de marzo de 2014. La regla "sin código fuente, no hay puerto" no es completamente cierta, puedes obtener algo similar (pero no lo mismo) como puerto a través de una 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 bastante similar.
  10. ^ Burnes, Andrew (25 de febrero de 2004). "El código fuente de Jagged Alliance 2 se incluirá en Wildfire". ign.com. Archivado desde el original el 8 de enero de 2013. Consultado el 23 de diciembre de 2012 .
  11. ^ Largent, Andy (8 de octubre de 2003). "Homeworld Source Code Released". Inside Mac Games . 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}}: CS1 maint: 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 lanzado de HomeworldSDL. [...] permite que tu Pandora experimente el excelente trabajo realizado por los chicos de HomeworldSDL.