Motores de juego 2d que admiten la lectura de recursos externos

He estado tratando de volver a implementar algunos títulos 2D simples y antiguos de una manera más moderna y compatible con varias plataformas, al igual que Gigalomania vuelve a implementar el marco MegaLoMania, cargando los gráficos originales si están disponibles. Mis pensamientos iniciales fueron usar algo como libgdx, ya que he estado trabajando mucho con las API de Java y sentí que podía crear prototipos con bastante rapidez. Sin embargo, la mayoría de los motores que he examinado exigen que las imágenes y el audio se presenten en formatos muy específicos, o que se incluyan en el proyecto como un todo (como Monogame, por dar un ejemplo). Como mi intención detrás de este proyecto es ser un reemplazo directo del ejecutable original, el tiempo de ejecución necesitaría poder llamar y procesar los datos de la instalación original, lo que limita los tipos de motores estándar que puedo usar.

¿Existen motores 2D (independientemente del idioma base) sin estas restricciones? Me sería útil tener algo extensible que pudiera hacer al menos parte del trabajo pesado del lado de la implementación y facilitar la portabilidad, en lugar de que tener que codificar todo desde cero y dejarme concentrarme en agregar las pocas funciones que necesitaría para hacer el resto.

Aprecio que este sea un conjunto de solicitudes particularmente extraño, por lo que para que sea un poco más fácil de comprender, aquí está el tipo de lista de funciones de la que estoy hablando:

  • Capacidad para proporcionar un analizador para un formato de recurso para comparar los datos de texto y audio de sprites que se mencionan a continuación.
  • Buen rendimiento 2D (hará mucho texto animado y capas de sprites)
  • Capacidad para transmitir ADPCM y PCM desde archivos externos.
  • Capacidad para usar formatos de sprites personalizados (por ejemplo, mapas de bits RLE en archivos)
  • Configuración externa y guardado de puntajes (idealmente con fecha y hora)

NOTA: En mi caso, era aceptable extender un motor existente, su millaje puede variar. He dejado la pregunta en su contexto completo para aquellos que la deseen.

Ese es mi plan en última instancia, por lo que estaba buscando un motor que lo soportara: en mis estudios de libgdx y Monogame antes mencionados, parecían tomar sus datos directamente de sus propios proyectos sin poder agregar otros. Ya tengo el código escrito para las interconversiones de una herramienta de exploración de recursos, solo estoy buscando algo razonablemente simple para unirlo.

Respuestas (2)

¿Por qué no convertir los archivos según sea necesario, quizás en la memoria, con una biblioteca para la conversión de formato de archivo?

¿No es esto más un comentario que una respuesta?
En mi caso, fue suficiente como respuesta, ya que el caso de uso que señalé fue más que adecuado: libgdx admite la carga de recursos externos a través de complementos de terceros, por lo que lo acepté como 'worksforme'

He usado LibGDX, y también algunos otros marcos populares ( Cocos2d-x y Haxe Flixel son los más destacados), pero siempre se reduce a tener buenas herramientas y un buen ecosistema con el que trabajar, es decir, editores de niveles, complementos/extensiones, soporte de la comunidad. , y si no tiene un gran presupuesto, también es imprescindible que sea de código abierto y gratuito. Es por eso que siempre sigo regresando a Unity , Unreal Engine y el nuevo chico en el bloque Godot Engine .

Aunque recientemente me he inclinado más hacia Godot Engine porque es gratuito con una licencia permisiva que permite el uso comercial y de código abierto con un gran apoyo de la comunidad.

En su caso, puede escribir un complemento para que Godot importe sus activos en C ++ o GDScript , y habrá más idiomas en el futuro.